SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
CUSTOMIZANDO O



    HUDSON GONÇALVES MANIERI FIGUEREDO(KyNDeR)




1
CUSTOMIZANDO SLACKWARE LINUX
                         por Hudson Gonçalves Manieri Figueredo




                                         SUMÁRIO



    Capítulo 1 - Slackware
                   1.1 - Conceitos
                   1.2 - Inicialização
                   1.3 - Desenvolvedor (O quê ? Como ? Quando ? Onde ?)

    Capítulo 2 - Inicializador
                   2.1 - O que é o initrd
                   2.2 - Como abrir o arquivo initrd.img
                   2.3 - Montando a imagem initrd.img
                   2.4 - Arquivos do instalador(setup) do Slackware
                   2.5 - Recriando o arquivo initrd.img

    Capítulo 3 – Estruturas de diretórios
                  3.1 - Estruturas de diretórios de instalação do Slackware
                  3.2 - TAGs
                  3.3 - Estruturas de diretórios do Slackware Linux
                  3.4 - Arquivos de inicialização do Slackware

    Capítulo 4 – Pacotes
                  4.1 – Arquivo TGZ
                  4.2 – Alterando pacotes
                  4.3 – Diretório /install
                  4.4 – Recriando um arquivo .tgz
                  4.5 – Passando de RPM para TGZ
                  4.6 – Pacote a partir do fonte(source)

    Capítulo 5 - Imagem para o CD
                  5.1 - ISO
                  5.2 - Abrindo uma imagem ISO
                  5.3 - Criando uma ISO
                  5.4 - Gravando o CD




                               http://pqui.codigolivre.org.br



2
INTRODUÇÃO


Essa apostila, tem como principal objetivo, mostrar ao público como pode ser feita uma customização
do Linux a partir de uma distribuição muito conhecida e conceituada, o Slackware Linux.
Normalmente as pessoas confundem Linux como parte integral do Sistema Operacional em questão,
quando na verdade é uma junção do projeto GNU com o kernel Linux assim devendo ser chamado de
GNU/Linux, mesmo quem sabe esse conceito fala Linux, porque para muitos é apenas um diminutivo
do nome. No decorrer do conteúdo, mostraremos métodos de modificações de pacotes de instalação
do Slackware, as funções de cada arquivo de instalação, de cada arquivo do instalador e cada diretório
da raiz do sistema, para que o leitor possa de maneira prática saber o que, ou onde ele deve procurar
alguma alteração para a finalidade de customizar o Slackware de acordo com suas necessidades.




3
CAPÍTULO 1 – SLACKWARE


1.1 <> Conceitos

O Slackware Linux teve sua primeira versão “final” em 1993, desenvolvido por Patrick Volkerding, o
Slackware Linux tem como filosofia, manter sua semelhança com sistemas UNIX, se comprometendo
a permanecer com a estrutura padrão dos Sistemas de Arquivos Linux, considerando a simplicidade e
estabilidade como objetivo. Por isso o Slackware é uma das distribuições mais populares, estável e
amiga.

1.2 <> Inicialização

Ao inicializar o Sistema Operacional, como é o processo de inicialização ? De onde vem as linhas que
passam pela telas, as quais contém várias informações ? O que é que gera tudo isso ? Onde encontrar
o que cria essas linhas ? Quando ele é chamado ?

No diretório de boot do Slackware existe um arquivo que é uma imagem de inicialização chamado
initrd, esse initrd no Slackware está compactado na forma gzip e tem o nome initrd.img.

No próximo capítulo iremos aprender mais detalhadamente sobre ele.

1.3 <> Desenvolvedor

Como visto no ítem anterior, as perguntas são de extrema importância para um desenvolvedor, sendo
as principais perguntas: Como ? Onde ? Quando ? O quê ?

Normalmente é necessário buscar respostas a essas perguntas. Evite ficar tirando dúvidas com pessoas
pelos fóruns, chats, listas, tente buscar a resposta você mesmo, com pesquisas na internet, buscando
arquivos no sistemas, descobrindo os arquivos, qual a função do arquivo. Caso não encontre as
respostas, existem duas soluções, esperar por respostas e novas soluções ou recorrer aos fóruns, chats,
etc.

Um desenvolvedor Linux deverá saber comandos básicos para auxílio no desenvolvimento tais como
grep, find, cp, mv, ls, du, tar, mkdir, echo e outros. Também é muito importante saber dominar um
editor de textos do modo console.




                                  CAPÍTULO 2 – O INITRD.IMG


2.1 <> O que é o initrd ?

Initrd quer dizer disco de RAM inicial(initial ramdisk), um disco de RAM inicial é um sistema de
arquivos Linux bem pequeno que é carregado na memória RAM e montado como o kernel de
inicialização, sendo esse carregado antes de montar os arquivos de sistema principal da raiz(root).

2.2 <> Como abrir o arquivo initrd.img ?

Como dito no Capítulo 1, o initrd.img é um arquivo no formato gzip e será encontrado no CD1 do


4
slackware, no diretório /isolinux , para abrí-lo é necessário renomeá-lo para initrd.img.gz e então
descompactá-lo, para isso é só digitar o seguinte comando:

# mv initrd.img initrd.img.gz
# gunzip initrd.img.gz

Listando o diretório 'ls', repare que há um initrd.img, esse arquivo é a imagem já descompactada.

Obs: Dentro do mesmo diretório onde pode ser encontrado o initrd.img também podemos encontrar
alguns outros arquivos de iniciais, tais como:

isolinux.cfg – Arquivo que diz como o CD deve ser iniciado, passando parâmetros de boot para
kernel e opções de ajuda pelas teclas F1, F2,etc.
message.txt – mensagem que aparece ao pressionar a tecla F1.
f2.txt – arquivo texto para a tecla F2, normalmente ajuda sobre opções de kernel.
f3.txt – arquivo texto para a tecla F3, normalmente um texto de ajuda.

2.3 <> Montando a imagem initrd.img

A montagem da imagem é o que permitirá acesso ao interior do arquivo de imagem. Para montarmos
o initrd.img devemos digitar o comando:

mount -o loop inird.img /nome_do_diretorio_de_montagem

Exemplo prático onde criamos um diretório para ponto de montagem e montamos o initrd.img

# mkdir /mnt/initrd
# mount -o loop initrd.img /mnt/initrd

Se alterarmos o initrd.img em seu ponto de montagem, não adiantará nada, porque essa montagem
serve apenas para termos acesso ao conteúdo do arquivo, uma vez com acesso ao seu conteúdo
podemos copiá-lo para outro diretório qualquer afim de alterarmos os seus arquivos.

Exemplo:

# mkdir /tmp/INITRD
# cp -ra /mnt/initrd/* /tmp/INITRD

O comando acima cria um diretório chamado INITRD dentro do diretório /tmp e copia tudo o que está
dentro de /mnt/initrd para o diretório INITRD criado. As opções -ra faz a cópia recursiva do diretório
mantendo suas permissões.

Agora temos todo o conteúdo do arquivo initrd.img no diretório /tmp/INITRD.


2.4 <> Arquivos do instalador(setup) do Slackware.


Os arquivos que constituem o instalador do Slackware serão encontrados no diretório para onde foi
copiado o conteúdo do initrd.img no caminho usr/lib/setup/, dentro desse diretório encontraremos os
seguintes arquivos:



5
FDhelp –––––– arquivo que contém informações de ajuda do instalador do slackware.
INSCD ––––– script para localização do drive de cd para instalação.
INSdir –––––– script de instalação a partir de um diretório com estrutura do cd do slackware.
INSfd –––––– script sobre instalação por disquete.
INShd –––––– script de instalação a partir de uma partição com estrutura do cd do slackware
INSNFS ––––– arquivo sobre instalação por nfs.
installpkg –––– script para instalação dos pacotes tgz.
migrate.sh –––– script que migra o tmp para partição asap
nopartHELP –– arquivo sobre ajuda se não houver partição linux
pkgtool –––––– parte de seleção do tipo de instalação.
PROMPThelp – arquivo de ajuda para tipo de instalação.
removepkg ––– utilizado em atualização, para remover e substituir pacotes
SeTconfig –––– script de opções de configuração que chama outros scripts.
SeTDOS ––––– script que reconhece partição tipo fat, vfat, ntfs.
SeTfdHELP –– script de chamada do arquivo Fdhelp.
SeTfull –––––– avisa se a partição estiver cheia.
SeTkernel –––– script para seleção do kernel.
SeTkeymap ––– seleção do mapa de teclado.
SeTmaketag ––– script para criação de tags(opções customizadas) para instalação.
SeTmedia ––––– seleção de meio para instalação(nfs, disquete, hd, cd)
SeTnopart ––––– chamada do arquivo nopartHELP
SeTpartitions ––– script para escolha do tipo de formatação da partição.
SeTpasswd ––––– script para configuração de senha do root(administrador).
SeTPKG ––––––– script para seleção de pacotes em série.
SeTswap ––––––– localiza partição swap.
setup –––––––––– arquivo principal que faz a ordem de chamada dos scripts de instalação.
slackinstall ––––– script que instala pacotes e mostra as descrições.
unmigrate.sh ––– script que faz o link temporário do /tmp para asap.

Obs: Esses arquivos são os que vem no initrd do Slackware 10.2

Abra cada um deles com um editor de texto de sua preferência e repare nas suas mensagens,
traduzindo cada uma dessas mensagens teremos um instalador na língua traduzida. Ainda é possível
alterar seus scripts e ou criar outros.

Agora vai da criatividade e preferência de cada um.

2.5 <> Recriando o arquivo initrd.img

Depois de alterarmos o que quisermos no instalador do Slackware, devemos recriar o initrd.img como
imagem de inicialização, para isso usamos o comando:

mkinitrd -o destino_para_arquivo_initrd.img -s caminho_onde_deve_ser_pego_os_arquivos

Exemplo:

# mkinitrd -o /root/initrd.img -s /tmp/INITRD/

Esse comando cria o arquivo initrd dentro do diretório /root e pega como arquivos “fonte” o que está
dentro do diretório /tmp/INITRD/ onde a opção -o quer dizer “output” e -s “source”.

Depois de criado o arquivo initrd.img devemos copiá-lo para o diretório /isolinux que constitui a
estrutura do CD de instalação do Slackware.




6
CAPÍTULO 3 – ESTRUTURAS DE DIRETÓRIOS


3.1 <> Estruturas de diretórios de instalação do Slackware

Para podermos manipular melhor os pacotes e diretórios do CD de instalação do Slackware, o ideal é
copiar todo o seu conteúdo para um diretório qualquer.



Exemplo:

# mount /mnt/cdrom
# mkdir /tmp/PROJETO-slack
# cp -ra /mnt/cdrom/* /tmp/PROJETO-slack

Comando acima monta o CD para podermos acessá-lo a partir do diretório /mnt/cdrom, depois
criamos o diretório PROJETO-slack dentro do /tmp e por fim copiamos tudo o que há no /mn/cdrom
para dentro do /tmp/PROJETO-slack.

O Slackware Linux segue uma estrutura de diretórios que é a seguinte:

/a: A base do sistema Slackware.

/ap: Aplicações para o Linux(modo texto).

/d: Ferramentas de desenvolvimento de programas. Isto inclui os compiladores gcc e o Java Runtime Engine.

/e: GNU Emacs e pacotes relacionados.

/f: Diversos FAQs e HOWTOs no formato texto plano.

/k: O código fonte do Kernel do Linux.

/kde: O Ambiente Desktop K.

/kdei: Pacotes de Internacionalização para o Ambiente Desktop K.

/gnome: O Ambiente de Desktop GNOME, versão 2.2. Outro grande desktop.

/l: Bibliotecas para o sistema. É essência para um sistema desktop.

/n: aplicativos para rede (voltados para o terminal) e serviços de rede.

/t: O sistema de texto TeX

/tcl: A linguagem Tcl/Tk e ferramentas relacionadas a ela.

/t: The TeX typesetting system.

/x: O Sistema X Window.

/y: jogos BSD, o fortune, adventure e etc.

Obs: kde, kdei e gnome são normalmente encontrados no segundo CD do Slakcware, já na última
versão a 10.2 o gnome foi retirado por decisão de seu desenvolvedor Patrick Volkerding. Por isso o
segundo CD do Slackware 10.2 vem com os diretórios kde, kdei e t além do kernel 2.6.x alternativo.


7
Ao customizar o Slackware é bom que sigam as regras deixando cada pacote em seu respectivo
destino para tal finalidade.

3.2 <> TAGS

Tags são arquivos encontrados em cada um dos diretórios do /slackware que estão nos CDs de
instalação. A partir dos “tagfiles” podemos customizar uma instalação do Slackware apenas alterando
suas prioridades.

Para uma boa customização o ideal é editar cada um desses arquivos e adicionar ou remover o nome
de cada pacote que contém a nossa customização, também é possível manter o que existe e apenas
mudar as prioridades para instalação, essas prioridades são representadas por:
REC – recomendado
OPT – opcional
ADD – adicionar
SKP – pular, não instalar

Se você colocar SKP para um determinado pacote, quando for selecionada a instalação completa(full)
do Slackware esses pacotes não serão instalados. Por isso pode-se customizar uma instalação apenas
editando os “tagfiles”, ainda esses “tagfiles” podem ser copiados em um disquete e na hora da
instalação você pede para utilizar os “tagfiles” do disquete. Para editar um tagfile, entre em um
diretório qualquer, tal como /ap e edite o arquivo tagfile.

Exemplo:

# vi slackware/ap/tagfile

Alterando qualquer um dos arquivos que tem ADD, OPT ou REC por SKP, significa que esse arquivo
não será instalado quando o método de instalação completa for selecionado.
Existe também o maketag que é o arquivo com as descrições de cada pacote daquela determinada
série.

Mais uma vez para uma boa customização o ideal é editar cada um desses arquivos e alterá-los
conforme suas necessidades, se adicionar um pacote ou remover um pacote de uma série, excluá-o ou
insira-o nos arquivos tagfile e maketag.

Exemplo:

# vi slackware/ap/maketag

Após editar cada arquivo é só salvar as alterações.

3.3 <> Estrutura de diretórios do Slackware Linux

/bin - Arquivos executáveis (binários) de comandos essenciais pertencentes ao sistema e que são utilizados
com freqüência.

/sbin - Arquivos de sistema essenciais

/boot - Arquivos estáticos de boot ou inicialização.

/dev - Arquivos de dispositivos de entrada/saída.



8
/etc - Configuração do sistema da máquina local com arquivos diversos para a administração de sistema.

/lib - Arquivos de bibliotecas compartilhadas usadas com freqüência.

/mnt - Ponto de montagem de partição temporária.

/tmp - Arquivos temporários gerados por alguns utilitários.

/var - Ficam os arquivos de informação variável..

/home - Diretórios dos usuários.

/root - Diretório local do superusuário (root)

/usr - Todos os arquivos de usuários devem estar aqui (Ex: quando você instala um programa o executável
geralmente fica em: /usr/local/bin).
Esses diretórios nas formações dos pacotes também deverão seguir o padrão, onde todo e qualquer
programa que não está por padrão na distribuição deve ser colocado no /usr/local ou /opt para um
melhor controle e os usuários não ficarem perdidos procurando pelos programas.

3.4 <> Arqvuivos de inicialização do Slackware

Dentro do diretório /etc/rc.d/ ficam os scripts de inicialização do slackware o qual contém:
rc.S - Este é o script de Start do Slackware.
rc.K - Carregado quando entramos no runlevel 1, para manutenção do sistema.
rc.M - Modo multiusuário, utilizado nos demais runlevels.
rc.4 - Aciona o login gráfico (runlevel 4).
rc.0 e rc.6 - Respectivamente desliga e reinicia(reboot) o computador.

Além destes, existem vários outros que são chamados a partir destes primeiros, alguns deles setam
apenas um serviço, outros configuram o hardware da máquina, são eles:

rc.modules - Carrega os módulos do kernel.
rc.pcmcia - Suporte a dispositivos pcmcia (muito utilizados em notebooks).
rc.serial - Configura as portas seriais da máquina.
rc.cdrom - Verifica se existe um CD no drive e monta-o automaticamente;
rc.gpm - Configura e carrega o gpm (suporte a mouse);
rc.font - Carrega a fonte de console a ser utilizada;
rc.keymap - Ativa o mapa de teclado apropriado e;
rc.ibcs2 - Modo de compatibilidade binária com outro *nix para 386.

Também temos scripts especiais para a configuração das interfaces e serviços da rede:

rc.netdevice - Carrega o módulo para a placa de rede correta.
rc.inet1 - Configura IP, Gateway, etc...
rc.inet2 - Carrega vários serviços, como o rpc.portmap, ypbind, nfsd, lpd entre outros.
rc.samba - Ativa o protocolo SMB.
rc.atalk - Uso do protocolo AppleTalk.
rc.news - Carrega os news services.
rc.httpd - Ativa o Apache.

Por último, carregamos o rc.local, que contém as configurações próprias da máquina local. Algumas pessoas
colocam aqui suas regras de firewall (outras preferem colocar em um rc.firewall), outras usam o rc.local para
carregar programas como monitores de rede, etc...



9
Nesses arquivos estão algumas das mensagens que visualizamos durante a inicialização do Slackware,
portanto podem ser alterados utilizando um editor de texto qualquer.




                                     CAPÍTULO 4 – PACOTES


4.1 <> Arquivo TGZ

Os pacotes do slackware são arquivos tgz(tarball + gzip), isso facilita a manipulação desses pacotes,
porque sendo um tarball poderemos trabalhar com o comando tar.
O sistema padrão de pacotes do Slackware é o .tgz (que ao contrário do que muitos pensam, não é
igual ao .tar.gz, pois contém algumas informações adicionais sobre a instalação), e as atuais versões
do Slackware também vêem com o gerenciador de pacotes RPM, podendo assim instalar os
aplicativos já compilados em ambos os formatos.
 4.2 <> Alterando pacotes

Um pacote TGZ pode ser aberto com o comando tar da seguinte maneira:

tar -zxvf nome_do_pacote.tgz

Normalmente criamos um diretório para separarmos o conteúdo do pacote, porque se abrirmos esse
pacote em um diretório qualquer ele irá se misturar com outros arquivos e vai ficar tudo bagunçado,
por isso, criamos um diretório com o nome do pacote, para que o seu conteúdo seja descompactado
dentro desse diretório.

Exemplo:

#    mkdir /tmp/pacotes
#    mkdir /tmp/pacotes/etc
#    cd /tmp/pacotes/etc
#    tar zxvf /mnt/iso/slackware/a/etc-5.1-noarch-10.tgz

Nas linhas acima, foi criado um diretório chamado pacotes e um outro diretório dentro de “pacotes”
chamado “etc” que é o nome do pacote que iremos utilizar, depois entramos no diretório pacotes/etc/
e “descompactamos” o pacote que vem na ISO do primeiro CD do Slackware, assim agora podemos
visualizar, modificar, adicionar coisas a estrutura do pacote etc-5.1-noarch-10.tgz .
Se usarmos o comando “ls”, poderemos ver o que há no pacote etc-5.1-noarch-10.tgz já que o
“abrimos”.

Exemplo:

# ls
# etc      install       tmp    usr     var

Repare que a um diretório install, dentro desse diretório temos 2 arquivos que serão comentados no
próximo subtítulo.

Vamos alterar o arquivo etc/issue.new , esse arquivo é o responsável pela mensagem na tela de login.



10
# vi etc/issue.new

Welcome to s r (l)

Subsituiremos Welcome to s r (l) por Seja Bem Vindo ao s Kernel r (l) ficando:

Seja Bem Vindo ao s Kernel r (l)

Salve as modificações para o arquivo, no caso do editor VI é só digitar “:wq” e depois quando
remontarmos o pacote e ele for instalado pelo seu CD customizado a mensagem padrão que aparecerá
será essa que acabamos de alterar.

4.3 <> Diretório /install

O diretório install contém dois arquivos que são interpretados pelo instalador de pacotes do
slackware, o doinst.sh e o slack-desc.

O doinst.sh é um script de instalação do pacote, é ele que diz ao installpkg o que deve ser feito para
instalar aquele pacote. Claro que esse é o jeito certo de se ter um pacote, mas o pacote também pode
não ter esse arquivo, e o installpkg faz a instalação seguindo a ordem da estrutura de diretórios criada
no pacote. Se dermos uma olhada no arquivo doinst.sh do pacote etc-5.1-noarch-10.tgz iremos ver
que ele tem um script que retira a extensão .new e faz uma verificação para ver se o arquivo já existe,
caso ele exista ele é instalado com a extensão .new . Assim você pode escolher em ter ou não um
arquivo doinst.sh no seu pacote para dizer ao installpkg o que deve ser feito. Lembrando que a
maneira mais coerente e certa é ter esse arquivo.

O slack-desc é apenas um arquivo de descrição do pacote que segue algumas regras como por
exemplo:


   |-----handy-ruler------------------------------------------------------|
etc: etc (system configuration files)
etc:
etc: System configuration files. The /etc directory is traditionally the
etc: location where configuration files are found.
etc:
etc:

Cada linha deve ter o nome-base(basename) do pacote seguida de “:” e a handy-ruler que dimensiona
a janela de descrição. É essa descrição que aparece ao ser instalado um pacote .tgz no slackware.

Com isso já podemos alterar o conteúdo de um pacote, sua descrição e seu script de instalação, o
próximo passo é reconstruirmos esse pacote.

4.4 <> Recriando um arquivo .tgz

Há algumas maneiras de recriar um arquivo TGZ, vamos aprender a mais fácil e prática, mas não a
mais certa e coerente.

Anteriormente vimos que o comando tar -zxvf pode ser utilizado para abrir(descompactar) um pacote
no formato .tgz, agora vamos usar esse mesmo comando mas com outras regras. Essas regras são as
que farão o pacote ser compactado, o comando é:


11
tar -zcpvf nome_do_pacote_desejado.tgz ./*

Onde “c” serve para criar um novo arquivo, “z” utiliza o compactador gzip, “p” mantém as
respectivas permissões dos arquivos, “v” mostra na tela o que está sendo feito e “f” utiliza método de
arquivamento e o ./* é para que ele construa a estrutura de diretórios a partir do diretório
atual(current), assim na hora de instalar o pacote ele instalará assumindo a estrutura a partir da raiz(/).

Exemplo:

#    cd /tmp/pacotes/etc
#    tar -zcpvf etc-5.1-noarch-10-modificado.tgz ./*
#    ls
#    etc etc-5.1-noarch-10-modificado.tgz install tmp                                   usr     var

O arquivo etc-5.1-noarch-10-modificado.tgz é o seu novo pacote, é só copiá-lo para estrutura do seu
CD que será criado.

4.5 <> Passando de RPM para TGZ

O que facilita muito trabalho no slackware é um script que faz a conversão dos pacotes no formato
RPM para TGZ utilizado no Slackware. Esse script leva o nome de rpm2tgz que do inglês rpm to tgz
quer dizer rpm para tgz. Isso é bom pelo seguinte, as vezes achamos um aplicativo interessante e
quando vamos procurá-lo no formato tgz ele não existe, mas existe no formato rpm, então
convertemos de rpm para tgz e podemos instalar esse pacote. É aconselhável abrir o pacote e dar uma
olhada na estrutura de diretórios que ele segue, apenas por garantia e dependendo para criarmos o
arquivo “doinst.sh”. O comando rpm2tgz pode ser usado da seguinte forma:

rpm2tgz nome_do_pacote.rpm

Simples assim ! Esse comando cria um novo pacote mas no formato tgz ficando de pacote.rpm para
pacote.tgz.

4.6 <> Pacote a partir do fonte(source)

Mais uma forma de criarmos um pacote é a partir do fonte do programa, você baixa o código fonte,
compila, seguindo os procedimentos de compilação daquele software, esses procedimentos de
compilação normalmente estão nos arquivos INSTALL e README que vem no código fonte do
software, mas quase sempre a seqüência de comandos para compilação é ./configure , make e make
install. Aí é que vem o detalhe, existe um script chamado “checkinstall” que faz o serviço de criação
do pacote para você. Ao invés de colocar o comando make install que faz a instalação do software
após a compilação do mesmo, você utiliza o comando checkinstall, que na verdade é um script que já
cria um pacote no formato .tgz e instala esse pacote criado a partir da sua compilação.

Claro que depois de criado o pacote, também é possível modificá-lo.




                               CAPÍTULO 5 – IMAGEM PARA O CD




12
5.1 <> ISO

ISO é um arquivo de imagem que é a cópia literal de um CD ou DVD. Um dos formatos mais
utilizados para gerar o arquivo de imagem é o ISO. Contém todos os arquivos do CD, além de
informações que permitem gerar uma cópia fiel.
Por exemplo, o Nero e o K3B, programas de gravação de CD/DVD, tem a opção quot;Gravar Imagemquot;,
que cria um CD/DVD a partir de um arquivo ISO. Pelo fato de o ISO ser um formato padrão,
independente de fabricante, a grande maioria dos programas que gravam CD/DVD podem gravar
arquivos ISO.

5.2 <> Abrindo uma imagem ISO

Para abrirmos uma imagem ISO vamos usar o mesmo comando que utilizamos para abrir o arquivo
initrd.img. A imagem ISO pode ser do slackware, do slax, do pQui ou de qualquer outra coisa.iso.
Para acessarmos o seu conteúdo, vermos o que tem dentro dessa imagem sem precisarmos gravá-la
em um CD/DVD, utilizamos o seguinte comando:

mount -o loop nome_da_imagem.iso /pornto_de_montagem

Exemplo:

# mkdir /mnt/iso
# mount -o loop slackware-10.2-install-d1.iso /mnt/iso

Ao entrarmos no diretório /mnt/iso, veremos todo o conteúdo do CD1 do Slackware 10.2

# cd /mnt/iso
# ls

Mas do que adianta vermos o conteúdo se não podemos alterá-lo ? Vamos copiar todo o seu conteúdo
para um diretório onde possamos fazer o que quisermos.

# mkdir /tmp/CD1
# cp -ra /mnt/iso/* /tmp/CD1

Depois de copiarmos todo o conteúdo do CD1, respeintando sua estrutura, vamos ao diretório
/tmp/CD1 e a partir daí podemos começar nossa customização.

5.3 <> Criando uma ISO

Após alterarmos tudo o que foi possível, retirar pacotes, modificar pacotes, acrescentar pacotes,
vamos fechar o CD para que possamos gravá-lo e levá-lo para qualquer lugar :-)

O comando de criação de uma ISO é bem extenso, por isso é aconselhável utilizarmos um script que
contenha esse comando ou anotá-lo em algum arquivo para quando precisarmos, apenas copiarmos o
comando. O comando é:

mkisofs -o /tmp/nome-da-imagem.iso -R -J -V quot;Nome que aparece quando o sistema le o CDquot;
-hide-rr-moved -v -d -N -no-emul-boot -boot-load-size 4 -boot-info-table -sort isolinux/iso.sort -b
isolinux/isolinux.bin -c isolinux/isolinux.boot .




13
Esse comando com todas essas opções, cria uma imagem a partir do diretório que você está, portanto
é necessário que esteja na parte “raiz” , na parte onde será o começo da estrutura de diretórios do seu
CD, assim sendo, a partir do exemplo deveríamos estar no /tmp/CD1 para que o comando
funcionasse.

Exemplo:

# cd /tmp/CD1
# mkisofs -o /tmp/meu-slackware.iso -R -J -V quot;Slackware Modificadoquot;
-hide-rr-moved -v -d -N -no-emul-boot -boot-load-size 4 -boot-info-table
-sort isolinux/iso.sort -b isolinux/isolinux.bin -c
isolinux/isolinux.boot .

Nesse caso, o nome da imagem é meu-slackware.iso e estará dentro do /tmp .

5.4 <> Gravando a ISO

Agora iremos gravar a ISO criada em um CD. De todo jeito o arquivo ISO que você criou já é uma
imagem completa do CD. Ele não irá funcionar se você gravar o arquivo ISO como um arquivo
comum(CD de Dados), então inicie o seu programa de gravação favorito(K3B, NERO, etc) e procure
a opção quot;Gravar/Queimar imagemquot;(inglês: Burn Image) ou quot;Gravar/Queimar imagem de CDquot;(inglês:
Burn CD iso image). Essa opção pode estar escondida em algum lugar no seu programa, porque os
usuários normalmente não precisam dessa opção. As vezes você terá que mudar o tipo de filtro dos
arquivos para *.* porque se não, você não conseguirá visualizar o seu arquivo .ISO. Se não achar a
opção para gravação da imagem, tente o arquivo de ajuda do programa, se ainda assim não conseguir
achar as opções de gravação, escolha outro programa mais fácil. O resultado dessa gravação será um
CD bootável.
Obs: Alguns programas como winrar podem associar a extensão .ISO para abrir com ele. Ele pode
achar que meu-slackware.iso é um arquivo compactado. Mas não pense assim. Não descompacte o
arquivo! Grave a ISO como descrito acima porque se não você pode perder a inicialização do CD.

Tutorial sobre isso pode ser encontrado no link:

http://www.slacklife.com.br/article.php?sid=1486




CONCLUSÃO

Após ler e entender o conteúdo desse documento, o leitor deverá estar apto a customizar um
Slackware Linux, modificando um pacote da distribuição, modificando o instalador(setup),
modificando arquivos de inicialização, criando pacotes próprios e gerando imagem ISO pronta para
ser gravada em um CD.

14
ACORDO DE LICENCIAMENTO




Atribuição-Uso Não-Comercial-Compartilhamento pela mesma licença 2.0 Brasil

Você pode:

     •   copiar, distribuir, exibir e executar a obra
     •   criar obras derivadas

Sob as seguintes condições:


                             Atribuição. Você deve dar crédito ao autor original, da forma
                             especificada pelo autor ou licenciante.


                             Uso Não-Comercial. Você não pode utilizar esta obra com
                             finalidades comerciais.

                           Compartilhamento pela mesma Licença. Se você alterar,
                           transformar, ou criar outra obra com base nesta, você somente
                           poderá distribuir a obra resultante sob uma licença idêntica a
                           esta.
     •   Para cada novo uso ou distribuição, você deve deixar claro para outros os termos da licença
         desta obra.
     •   Qualquer uma destas condições podem ser renunciadas, desde que Você obtenha permissão do
         autor.


Qualquer direito de uso legítimo (ou quot;fair usequot;) concedido por lei, ou qualquer outro direito
protegido pela legislação local, não são em hipótese alguma afetados pelo disposto acima.


                             Você pode copiar, modificar, exibir este documento, mantendo
                             os créditos do autor ou autores. Esse documento não deve ser
                             vendido e está sob a licença DE: da Creative Commons.



                       http://creativecommons.org/licenses/by-nc-sa/2.0/br/deed.pt

              Documento criado por Hudson Gonçalves Manieri Figueredo (KyNDeR)
                            http://www.securityview.com.br/~hudson
                                   e-mail: kynder1@gmail.com



15

Weitere ähnliche Inhalte

Was ist angesagt?

Linux comandos gerais e servidores de rede
Linux   comandos gerais e servidores de redeLinux   comandos gerais e servidores de rede
Linux comandos gerais e servidores de redefernandao777
 
Instalação do asterisk
Instalação do asteriskInstalação do asterisk
Instalação do asteriskVicente Nobre
 
Seguranca em Servidores Linux
Seguranca em Servidores LinuxSeguranca em Servidores Linux
Seguranca em Servidores LinuxAlessandro Silva
 
Ubuntu 8.04 LTS 2008
Ubuntu 8.04 LTS 2008Ubuntu 8.04 LTS 2008
Ubuntu 8.04 LTS 2008SergioSouza
 
Aula 2 Mini Curso de Linux
Aula 2 Mini Curso de LinuxAula 2 Mini Curso de Linux
Aula 2 Mini Curso de LinuxRogério Cardoso
 
Introdução ao Linux - aula 01
Introdução ao Linux - aula 01Introdução ao Linux - aula 01
Introdução ao Linux - aula 01Renan Aryel
 
Slide minicursocalourosufpa2011
Slide minicursocalourosufpa2011Slide minicursocalourosufpa2011
Slide minicursocalourosufpa2011Diego Damasceno
 
Apresentação OpenSUSE 11.3 para Power Users - Portuguese
Apresentação OpenSUSE 11.3 para Power Users - PortugueseApresentação OpenSUSE 11.3 para Power Users - Portuguese
Apresentação OpenSUSE 11.3 para Power Users - PortugueseKomputer
 
Quero Arch! (Parte 1)
Quero Arch! (Parte 1)Quero Arch! (Parte 1)
Quero Arch! (Parte 1)Felipe Santos
 
Aula - Administração de usuários
Aula - Administração de usuáriosAula - Administração de usuários
Aula - Administração de usuáriosLeo Amorim
 
Sistemas Operacionais - Gnu/Linux Montando e Desmontando Sistemas de Arquivos
Sistemas Operacionais - Gnu/Linux Montando e Desmontando Sistemas de ArquivosSistemas Operacionais - Gnu/Linux Montando e Desmontando Sistemas de Arquivos
Sistemas Operacionais - Gnu/Linux Montando e Desmontando Sistemas de ArquivosLuiz Arthur
 
Aula 1 sistema operacional linux
Aula 1 sistema operacional linuxAula 1 sistema operacional linux
Aula 1 sistema operacional linuxRogério Cardoso
 
Apresentação OpenSUSE 11.3 para Desenvolvedores - Portuguese
Apresentação OpenSUSE 11.3 para Desenvolvedores - PortugueseApresentação OpenSUSE 11.3 para Desenvolvedores - Portuguese
Apresentação OpenSUSE 11.3 para Desenvolvedores - PortugueseKomputer
 
Fedora Desktop - Duda Grass
Fedora Desktop - Duda GrassFedora Desktop - Duda Grass
Fedora Desktop - Duda GrassTchelinux
 

Was ist angesagt? (19)

Linux comandos gerais e servidores de rede
Linux   comandos gerais e servidores de redeLinux   comandos gerais e servidores de rede
Linux comandos gerais e servidores de rede
 
Instalação do asterisk
Instalação do asteriskInstalação do asterisk
Instalação do asterisk
 
Seguranca em Servidores Linux
Seguranca em Servidores LinuxSeguranca em Servidores Linux
Seguranca em Servidores Linux
 
Ubuntu 8.04 LTS 2008
Ubuntu 8.04 LTS 2008Ubuntu 8.04 LTS 2008
Ubuntu 8.04 LTS 2008
 
IntroduçãO Ao Linux
IntroduçãO Ao LinuxIntroduçãO Ao Linux
IntroduçãO Ao Linux
 
Aula 2 Mini Curso de Linux
Aula 2 Mini Curso de LinuxAula 2 Mini Curso de Linux
Aula 2 Mini Curso de Linux
 
Introdução ao Linux - aula 01
Introdução ao Linux - aula 01Introdução ao Linux - aula 01
Introdução ao Linux - aula 01
 
Slide minicursocalourosufpa2011
Slide minicursocalourosufpa2011Slide minicursocalourosufpa2011
Slide minicursocalourosufpa2011
 
Apresentação OpenSUSE 11.3 para Power Users - Portuguese
Apresentação OpenSUSE 11.3 para Power Users - PortugueseApresentação OpenSUSE 11.3 para Power Users - Portuguese
Apresentação OpenSUSE 11.3 para Power Users - Portuguese
 
Quero Arch! (Parte 1)
Quero Arch! (Parte 1)Quero Arch! (Parte 1)
Quero Arch! (Parte 1)
 
Linux Ubuntu
Linux   UbuntuLinux   Ubuntu
Linux Ubuntu
 
Aula - Administração de usuários
Aula - Administração de usuáriosAula - Administração de usuários
Aula - Administração de usuários
 
Sistemas Operacionais - Gnu/Linux Montando e Desmontando Sistemas de Arquivos
Sistemas Operacionais - Gnu/Linux Montando e Desmontando Sistemas de ArquivosSistemas Operacionais - Gnu/Linux Montando e Desmontando Sistemas de Arquivos
Sistemas Operacionais - Gnu/Linux Montando e Desmontando Sistemas de Arquivos
 
Namespace
NamespaceNamespace
Namespace
 
Aula 1 sistema operacional linux
Aula 1 sistema operacional linuxAula 1 sistema operacional linux
Aula 1 sistema operacional linux
 
Administração de Redes Linux - I
Administração de Redes Linux - IAdministração de Redes Linux - I
Administração de Redes Linux - I
 
Apresentação OpenSUSE 11.3 para Desenvolvedores - Portuguese
Apresentação OpenSUSE 11.3 para Desenvolvedores - PortugueseApresentação OpenSUSE 11.3 para Desenvolvedores - Portuguese
Apresentação OpenSUSE 11.3 para Desenvolvedores - Portuguese
 
Fedora Desktop - Duda Grass
Fedora Desktop - Duda GrassFedora Desktop - Duda Grass
Fedora Desktop - Duda Grass
 
Slackware Linux
Slackware LinuxSlackware Linux
Slackware Linux
 

Ähnlich wie Customizando o Slackware Linux

Arquivos de Inicialização do Linux
Arquivos de Inicialização do LinuxArquivos de Inicialização do Linux
Arquivos de Inicialização do LinuxIvani Nascimento
 
Tutorial de instalação do PlayerStageGazebo no ubuntu linux 10.10 maverick me...
Tutorial de instalação do PlayerStageGazebo no ubuntu linux 10.10 maverick me...Tutorial de instalação do PlayerStageGazebo no ubuntu linux 10.10 maverick me...
Tutorial de instalação do PlayerStageGazebo no ubuntu linux 10.10 maverick me...Danilo Ricardo
 
Redes Linux comandos gerais e servidores de redes
Redes Linux comandos gerais e servidores de redesRedes Linux comandos gerais e servidores de redes
Redes Linux comandos gerais e servidores de redesSoftD Abreu
 
Palestra 2º Café com Software Livre - David Jourdain - Receita: Aprenda a coz...
Palestra 2º Café com Software Livre - David Jourdain - Receita: Aprenda a coz...Palestra 2º Café com Software Livre - David Jourdain - Receita: Aprenda a coz...
Palestra 2º Café com Software Livre - David Jourdain - Receita: Aprenda a coz...blusolsl
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxeliezer
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxguest7a481e8
 
Funcionamento kernel
Funcionamento kernelFuncionamento kernel
Funcionamento kernelSENAC RIO
 
Linux comandosgeraiseservidoresderede-120930000057-phpapp01
Linux comandosgeraiseservidoresderede-120930000057-phpapp01Linux comandosgeraiseservidoresderede-120930000057-phpapp01
Linux comandosgeraiseservidoresderede-120930000057-phpapp01Elizabete Bahia
 
Desenvolvendo Sistemas de Arquivos no FUSE - Luis Otávio de Colla Furquim
Desenvolvendo Sistemas de Arquivos no FUSE - Luis Otávio de Colla FurquimDesenvolvendo Sistemas de Arquivos no FUSE - Luis Otávio de Colla Furquim
Desenvolvendo Sistemas de Arquivos no FUSE - Luis Otávio de Colla FurquimTchelinux
 
Linux - Instalação de Programas
Linux - Instalação de ProgramasLinux - Instalação de Programas
Linux - Instalação de Programasguest407a9
 
DESMISTIFICANDO A FSTAB - Ricardo José Maraschini
DESMISTIFICANDO A FSTAB - Ricardo José Maraschini DESMISTIFICANDO A FSTAB - Ricardo José Maraschini
DESMISTIFICANDO A FSTAB - Ricardo José Maraschini Tchelinux
 

Ähnlich wie Customizando o Slackware Linux (20)

Arquivos de Inicialização do Linux
Arquivos de Inicialização do LinuxArquivos de Inicialização do Linux
Arquivos de Inicialização do Linux
 
Tutorial de instalação do PlayerStageGazebo no ubuntu linux 10.10 maverick me...
Tutorial de instalação do PlayerStageGazebo no ubuntu linux 10.10 maverick me...Tutorial de instalação do PlayerStageGazebo no ubuntu linux 10.10 maverick me...
Tutorial de instalação do PlayerStageGazebo no ubuntu linux 10.10 maverick me...
 
Glassfish41 debian76
Glassfish41 debian76Glassfish41 debian76
Glassfish41 debian76
 
Redes Linux comandos gerais e servidores de redes
Redes Linux comandos gerais e servidores de redesRedes Linux comandos gerais e servidores de redes
Redes Linux comandos gerais e servidores de redes
 
Apostilaredeslinux
ApostilaredeslinuxApostilaredeslinux
Apostilaredeslinux
 
Palestra 2º Café com Software Livre - David Jourdain - Receita: Aprenda a coz...
Palestra 2º Café com Software Livre - David Jourdain - Receita: Aprenda a coz...Palestra 2º Café com Software Livre - David Jourdain - Receita: Aprenda a coz...
Palestra 2º Café com Software Livre - David Jourdain - Receita: Aprenda a coz...
 
Nagios+ubuntu16
Nagios+ubuntu16Nagios+ubuntu16
Nagios+ubuntu16
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Começando com o Linux.pdf
Começando com o Linux.pdfComeçando com o Linux.pdf
Começando com o Linux.pdf
 
Linux - Partições e Raid
Linux - Partições e RaidLinux - Partições e Raid
Linux - Partições e Raid
 
Curso de perl
Curso de perlCurso de perl
Curso de perl
 
Funcionamento kernel
Funcionamento kernelFuncionamento kernel
Funcionamento kernel
 
Linux comandosgeraiseservidoresderede-120930000057-phpapp01
Linux comandosgeraiseservidoresderede-120930000057-phpapp01Linux comandosgeraiseservidoresderede-120930000057-phpapp01
Linux comandosgeraiseservidoresderede-120930000057-phpapp01
 
(05)particoes, raid
(05)particoes, raid(05)particoes, raid
(05)particoes, raid
 
Desenvolvendo Sistemas de Arquivos no FUSE - Luis Otávio de Colla Furquim
Desenvolvendo Sistemas de Arquivos no FUSE - Luis Otávio de Colla FurquimDesenvolvendo Sistemas de Arquivos no FUSE - Luis Otávio de Colla Furquim
Desenvolvendo Sistemas de Arquivos no FUSE - Luis Otávio de Colla Furquim
 
Linux - Instalação de Programas
Linux - Instalação de ProgramasLinux - Instalação de Programas
Linux - Instalação de Programas
 
Asterisk
AsteriskAsterisk
Asterisk
 
Gentoo
GentooGentoo
Gentoo
 
DESMISTIFICANDO A FSTAB - Ricardo José Maraschini
DESMISTIFICANDO A FSTAB - Ricardo José Maraschini DESMISTIFICANDO A FSTAB - Ricardo José Maraschini
DESMISTIFICANDO A FSTAB - Ricardo José Maraschini
 

Customizando o Slackware Linux

  • 1. CUSTOMIZANDO O HUDSON GONÇALVES MANIERI FIGUEREDO(KyNDeR) 1
  • 2. CUSTOMIZANDO SLACKWARE LINUX por Hudson Gonçalves Manieri Figueredo SUMÁRIO Capítulo 1 - Slackware 1.1 - Conceitos 1.2 - Inicialização 1.3 - Desenvolvedor (O quê ? Como ? Quando ? Onde ?) Capítulo 2 - Inicializador 2.1 - O que é o initrd 2.2 - Como abrir o arquivo initrd.img 2.3 - Montando a imagem initrd.img 2.4 - Arquivos do instalador(setup) do Slackware 2.5 - Recriando o arquivo initrd.img Capítulo 3 – Estruturas de diretórios 3.1 - Estruturas de diretórios de instalação do Slackware 3.2 - TAGs 3.3 - Estruturas de diretórios do Slackware Linux 3.4 - Arquivos de inicialização do Slackware Capítulo 4 – Pacotes 4.1 – Arquivo TGZ 4.2 – Alterando pacotes 4.3 – Diretório /install 4.4 – Recriando um arquivo .tgz 4.5 – Passando de RPM para TGZ 4.6 – Pacote a partir do fonte(source) Capítulo 5 - Imagem para o CD 5.1 - ISO 5.2 - Abrindo uma imagem ISO 5.3 - Criando uma ISO 5.4 - Gravando o CD http://pqui.codigolivre.org.br 2
  • 3. INTRODUÇÃO Essa apostila, tem como principal objetivo, mostrar ao público como pode ser feita uma customização do Linux a partir de uma distribuição muito conhecida e conceituada, o Slackware Linux. Normalmente as pessoas confundem Linux como parte integral do Sistema Operacional em questão, quando na verdade é uma junção do projeto GNU com o kernel Linux assim devendo ser chamado de GNU/Linux, mesmo quem sabe esse conceito fala Linux, porque para muitos é apenas um diminutivo do nome. No decorrer do conteúdo, mostraremos métodos de modificações de pacotes de instalação do Slackware, as funções de cada arquivo de instalação, de cada arquivo do instalador e cada diretório da raiz do sistema, para que o leitor possa de maneira prática saber o que, ou onde ele deve procurar alguma alteração para a finalidade de customizar o Slackware de acordo com suas necessidades. 3
  • 4. CAPÍTULO 1 – SLACKWARE 1.1 <> Conceitos O Slackware Linux teve sua primeira versão “final” em 1993, desenvolvido por Patrick Volkerding, o Slackware Linux tem como filosofia, manter sua semelhança com sistemas UNIX, se comprometendo a permanecer com a estrutura padrão dos Sistemas de Arquivos Linux, considerando a simplicidade e estabilidade como objetivo. Por isso o Slackware é uma das distribuições mais populares, estável e amiga. 1.2 <> Inicialização Ao inicializar o Sistema Operacional, como é o processo de inicialização ? De onde vem as linhas que passam pela telas, as quais contém várias informações ? O que é que gera tudo isso ? Onde encontrar o que cria essas linhas ? Quando ele é chamado ? No diretório de boot do Slackware existe um arquivo que é uma imagem de inicialização chamado initrd, esse initrd no Slackware está compactado na forma gzip e tem o nome initrd.img. No próximo capítulo iremos aprender mais detalhadamente sobre ele. 1.3 <> Desenvolvedor Como visto no ítem anterior, as perguntas são de extrema importância para um desenvolvedor, sendo as principais perguntas: Como ? Onde ? Quando ? O quê ? Normalmente é necessário buscar respostas a essas perguntas. Evite ficar tirando dúvidas com pessoas pelos fóruns, chats, listas, tente buscar a resposta você mesmo, com pesquisas na internet, buscando arquivos no sistemas, descobrindo os arquivos, qual a função do arquivo. Caso não encontre as respostas, existem duas soluções, esperar por respostas e novas soluções ou recorrer aos fóruns, chats, etc. Um desenvolvedor Linux deverá saber comandos básicos para auxílio no desenvolvimento tais como grep, find, cp, mv, ls, du, tar, mkdir, echo e outros. Também é muito importante saber dominar um editor de textos do modo console. CAPÍTULO 2 – O INITRD.IMG 2.1 <> O que é o initrd ? Initrd quer dizer disco de RAM inicial(initial ramdisk), um disco de RAM inicial é um sistema de arquivos Linux bem pequeno que é carregado na memória RAM e montado como o kernel de inicialização, sendo esse carregado antes de montar os arquivos de sistema principal da raiz(root). 2.2 <> Como abrir o arquivo initrd.img ? Como dito no Capítulo 1, o initrd.img é um arquivo no formato gzip e será encontrado no CD1 do 4
  • 5. slackware, no diretório /isolinux , para abrí-lo é necessário renomeá-lo para initrd.img.gz e então descompactá-lo, para isso é só digitar o seguinte comando: # mv initrd.img initrd.img.gz # gunzip initrd.img.gz Listando o diretório 'ls', repare que há um initrd.img, esse arquivo é a imagem já descompactada. Obs: Dentro do mesmo diretório onde pode ser encontrado o initrd.img também podemos encontrar alguns outros arquivos de iniciais, tais como: isolinux.cfg – Arquivo que diz como o CD deve ser iniciado, passando parâmetros de boot para kernel e opções de ajuda pelas teclas F1, F2,etc. message.txt – mensagem que aparece ao pressionar a tecla F1. f2.txt – arquivo texto para a tecla F2, normalmente ajuda sobre opções de kernel. f3.txt – arquivo texto para a tecla F3, normalmente um texto de ajuda. 2.3 <> Montando a imagem initrd.img A montagem da imagem é o que permitirá acesso ao interior do arquivo de imagem. Para montarmos o initrd.img devemos digitar o comando: mount -o loop inird.img /nome_do_diretorio_de_montagem Exemplo prático onde criamos um diretório para ponto de montagem e montamos o initrd.img # mkdir /mnt/initrd # mount -o loop initrd.img /mnt/initrd Se alterarmos o initrd.img em seu ponto de montagem, não adiantará nada, porque essa montagem serve apenas para termos acesso ao conteúdo do arquivo, uma vez com acesso ao seu conteúdo podemos copiá-lo para outro diretório qualquer afim de alterarmos os seus arquivos. Exemplo: # mkdir /tmp/INITRD # cp -ra /mnt/initrd/* /tmp/INITRD O comando acima cria um diretório chamado INITRD dentro do diretório /tmp e copia tudo o que está dentro de /mnt/initrd para o diretório INITRD criado. As opções -ra faz a cópia recursiva do diretório mantendo suas permissões. Agora temos todo o conteúdo do arquivo initrd.img no diretório /tmp/INITRD. 2.4 <> Arquivos do instalador(setup) do Slackware. Os arquivos que constituem o instalador do Slackware serão encontrados no diretório para onde foi copiado o conteúdo do initrd.img no caminho usr/lib/setup/, dentro desse diretório encontraremos os seguintes arquivos: 5
  • 6. FDhelp –––––– arquivo que contém informações de ajuda do instalador do slackware. INSCD ––––– script para localização do drive de cd para instalação. INSdir –––––– script de instalação a partir de um diretório com estrutura do cd do slackware. INSfd –––––– script sobre instalação por disquete. INShd –––––– script de instalação a partir de uma partição com estrutura do cd do slackware INSNFS ––––– arquivo sobre instalação por nfs. installpkg –––– script para instalação dos pacotes tgz. migrate.sh –––– script que migra o tmp para partição asap nopartHELP –– arquivo sobre ajuda se não houver partição linux pkgtool –––––– parte de seleção do tipo de instalação. PROMPThelp – arquivo de ajuda para tipo de instalação. removepkg ––– utilizado em atualização, para remover e substituir pacotes SeTconfig –––– script de opções de configuração que chama outros scripts. SeTDOS ––––– script que reconhece partição tipo fat, vfat, ntfs. SeTfdHELP –– script de chamada do arquivo Fdhelp. SeTfull –––––– avisa se a partição estiver cheia. SeTkernel –––– script para seleção do kernel. SeTkeymap ––– seleção do mapa de teclado. SeTmaketag ––– script para criação de tags(opções customizadas) para instalação. SeTmedia ––––– seleção de meio para instalação(nfs, disquete, hd, cd) SeTnopart ––––– chamada do arquivo nopartHELP SeTpartitions ––– script para escolha do tipo de formatação da partição. SeTpasswd ––––– script para configuração de senha do root(administrador). SeTPKG ––––––– script para seleção de pacotes em série. SeTswap ––––––– localiza partição swap. setup –––––––––– arquivo principal que faz a ordem de chamada dos scripts de instalação. slackinstall ––––– script que instala pacotes e mostra as descrições. unmigrate.sh ––– script que faz o link temporário do /tmp para asap. Obs: Esses arquivos são os que vem no initrd do Slackware 10.2 Abra cada um deles com um editor de texto de sua preferência e repare nas suas mensagens, traduzindo cada uma dessas mensagens teremos um instalador na língua traduzida. Ainda é possível alterar seus scripts e ou criar outros. Agora vai da criatividade e preferência de cada um. 2.5 <> Recriando o arquivo initrd.img Depois de alterarmos o que quisermos no instalador do Slackware, devemos recriar o initrd.img como imagem de inicialização, para isso usamos o comando: mkinitrd -o destino_para_arquivo_initrd.img -s caminho_onde_deve_ser_pego_os_arquivos Exemplo: # mkinitrd -o /root/initrd.img -s /tmp/INITRD/ Esse comando cria o arquivo initrd dentro do diretório /root e pega como arquivos “fonte” o que está dentro do diretório /tmp/INITRD/ onde a opção -o quer dizer “output” e -s “source”. Depois de criado o arquivo initrd.img devemos copiá-lo para o diretório /isolinux que constitui a estrutura do CD de instalação do Slackware. 6
  • 7. CAPÍTULO 3 – ESTRUTURAS DE DIRETÓRIOS 3.1 <> Estruturas de diretórios de instalação do Slackware Para podermos manipular melhor os pacotes e diretórios do CD de instalação do Slackware, o ideal é copiar todo o seu conteúdo para um diretório qualquer. Exemplo: # mount /mnt/cdrom # mkdir /tmp/PROJETO-slack # cp -ra /mnt/cdrom/* /tmp/PROJETO-slack Comando acima monta o CD para podermos acessá-lo a partir do diretório /mnt/cdrom, depois criamos o diretório PROJETO-slack dentro do /tmp e por fim copiamos tudo o que há no /mn/cdrom para dentro do /tmp/PROJETO-slack. O Slackware Linux segue uma estrutura de diretórios que é a seguinte: /a: A base do sistema Slackware. /ap: Aplicações para o Linux(modo texto). /d: Ferramentas de desenvolvimento de programas. Isto inclui os compiladores gcc e o Java Runtime Engine. /e: GNU Emacs e pacotes relacionados. /f: Diversos FAQs e HOWTOs no formato texto plano. /k: O código fonte do Kernel do Linux. /kde: O Ambiente Desktop K. /kdei: Pacotes de Internacionalização para o Ambiente Desktop K. /gnome: O Ambiente de Desktop GNOME, versão 2.2. Outro grande desktop. /l: Bibliotecas para o sistema. É essência para um sistema desktop. /n: aplicativos para rede (voltados para o terminal) e serviços de rede. /t: O sistema de texto TeX /tcl: A linguagem Tcl/Tk e ferramentas relacionadas a ela. /t: The TeX typesetting system. /x: O Sistema X Window. /y: jogos BSD, o fortune, adventure e etc. Obs: kde, kdei e gnome são normalmente encontrados no segundo CD do Slakcware, já na última versão a 10.2 o gnome foi retirado por decisão de seu desenvolvedor Patrick Volkerding. Por isso o segundo CD do Slackware 10.2 vem com os diretórios kde, kdei e t além do kernel 2.6.x alternativo. 7
  • 8. Ao customizar o Slackware é bom que sigam as regras deixando cada pacote em seu respectivo destino para tal finalidade. 3.2 <> TAGS Tags são arquivos encontrados em cada um dos diretórios do /slackware que estão nos CDs de instalação. A partir dos “tagfiles” podemos customizar uma instalação do Slackware apenas alterando suas prioridades. Para uma boa customização o ideal é editar cada um desses arquivos e adicionar ou remover o nome de cada pacote que contém a nossa customização, também é possível manter o que existe e apenas mudar as prioridades para instalação, essas prioridades são representadas por: REC – recomendado OPT – opcional ADD – adicionar SKP – pular, não instalar Se você colocar SKP para um determinado pacote, quando for selecionada a instalação completa(full) do Slackware esses pacotes não serão instalados. Por isso pode-se customizar uma instalação apenas editando os “tagfiles”, ainda esses “tagfiles” podem ser copiados em um disquete e na hora da instalação você pede para utilizar os “tagfiles” do disquete. Para editar um tagfile, entre em um diretório qualquer, tal como /ap e edite o arquivo tagfile. Exemplo: # vi slackware/ap/tagfile Alterando qualquer um dos arquivos que tem ADD, OPT ou REC por SKP, significa que esse arquivo não será instalado quando o método de instalação completa for selecionado. Existe também o maketag que é o arquivo com as descrições de cada pacote daquela determinada série. Mais uma vez para uma boa customização o ideal é editar cada um desses arquivos e alterá-los conforme suas necessidades, se adicionar um pacote ou remover um pacote de uma série, excluá-o ou insira-o nos arquivos tagfile e maketag. Exemplo: # vi slackware/ap/maketag Após editar cada arquivo é só salvar as alterações. 3.3 <> Estrutura de diretórios do Slackware Linux /bin - Arquivos executáveis (binários) de comandos essenciais pertencentes ao sistema e que são utilizados com freqüência. /sbin - Arquivos de sistema essenciais /boot - Arquivos estáticos de boot ou inicialização. /dev - Arquivos de dispositivos de entrada/saída. 8
  • 9. /etc - Configuração do sistema da máquina local com arquivos diversos para a administração de sistema. /lib - Arquivos de bibliotecas compartilhadas usadas com freqüência. /mnt - Ponto de montagem de partição temporária. /tmp - Arquivos temporários gerados por alguns utilitários. /var - Ficam os arquivos de informação variável.. /home - Diretórios dos usuários. /root - Diretório local do superusuário (root) /usr - Todos os arquivos de usuários devem estar aqui (Ex: quando você instala um programa o executável geralmente fica em: /usr/local/bin). Esses diretórios nas formações dos pacotes também deverão seguir o padrão, onde todo e qualquer programa que não está por padrão na distribuição deve ser colocado no /usr/local ou /opt para um melhor controle e os usuários não ficarem perdidos procurando pelos programas. 3.4 <> Arqvuivos de inicialização do Slackware Dentro do diretório /etc/rc.d/ ficam os scripts de inicialização do slackware o qual contém: rc.S - Este é o script de Start do Slackware. rc.K - Carregado quando entramos no runlevel 1, para manutenção do sistema. rc.M - Modo multiusuário, utilizado nos demais runlevels. rc.4 - Aciona o login gráfico (runlevel 4). rc.0 e rc.6 - Respectivamente desliga e reinicia(reboot) o computador. Além destes, existem vários outros que são chamados a partir destes primeiros, alguns deles setam apenas um serviço, outros configuram o hardware da máquina, são eles: rc.modules - Carrega os módulos do kernel. rc.pcmcia - Suporte a dispositivos pcmcia (muito utilizados em notebooks). rc.serial - Configura as portas seriais da máquina. rc.cdrom - Verifica se existe um CD no drive e monta-o automaticamente; rc.gpm - Configura e carrega o gpm (suporte a mouse); rc.font - Carrega a fonte de console a ser utilizada; rc.keymap - Ativa o mapa de teclado apropriado e; rc.ibcs2 - Modo de compatibilidade binária com outro *nix para 386. Também temos scripts especiais para a configuração das interfaces e serviços da rede: rc.netdevice - Carrega o módulo para a placa de rede correta. rc.inet1 - Configura IP, Gateway, etc... rc.inet2 - Carrega vários serviços, como o rpc.portmap, ypbind, nfsd, lpd entre outros. rc.samba - Ativa o protocolo SMB. rc.atalk - Uso do protocolo AppleTalk. rc.news - Carrega os news services. rc.httpd - Ativa o Apache. Por último, carregamos o rc.local, que contém as configurações próprias da máquina local. Algumas pessoas colocam aqui suas regras de firewall (outras preferem colocar em um rc.firewall), outras usam o rc.local para carregar programas como monitores de rede, etc... 9
  • 10. Nesses arquivos estão algumas das mensagens que visualizamos durante a inicialização do Slackware, portanto podem ser alterados utilizando um editor de texto qualquer. CAPÍTULO 4 – PACOTES 4.1 <> Arquivo TGZ Os pacotes do slackware são arquivos tgz(tarball + gzip), isso facilita a manipulação desses pacotes, porque sendo um tarball poderemos trabalhar com o comando tar. O sistema padrão de pacotes do Slackware é o .tgz (que ao contrário do que muitos pensam, não é igual ao .tar.gz, pois contém algumas informações adicionais sobre a instalação), e as atuais versões do Slackware também vêem com o gerenciador de pacotes RPM, podendo assim instalar os aplicativos já compilados em ambos os formatos. 4.2 <> Alterando pacotes Um pacote TGZ pode ser aberto com o comando tar da seguinte maneira: tar -zxvf nome_do_pacote.tgz Normalmente criamos um diretório para separarmos o conteúdo do pacote, porque se abrirmos esse pacote em um diretório qualquer ele irá se misturar com outros arquivos e vai ficar tudo bagunçado, por isso, criamos um diretório com o nome do pacote, para que o seu conteúdo seja descompactado dentro desse diretório. Exemplo: # mkdir /tmp/pacotes # mkdir /tmp/pacotes/etc # cd /tmp/pacotes/etc # tar zxvf /mnt/iso/slackware/a/etc-5.1-noarch-10.tgz Nas linhas acima, foi criado um diretório chamado pacotes e um outro diretório dentro de “pacotes” chamado “etc” que é o nome do pacote que iremos utilizar, depois entramos no diretório pacotes/etc/ e “descompactamos” o pacote que vem na ISO do primeiro CD do Slackware, assim agora podemos visualizar, modificar, adicionar coisas a estrutura do pacote etc-5.1-noarch-10.tgz . Se usarmos o comando “ls”, poderemos ver o que há no pacote etc-5.1-noarch-10.tgz já que o “abrimos”. Exemplo: # ls # etc install tmp usr var Repare que a um diretório install, dentro desse diretório temos 2 arquivos que serão comentados no próximo subtítulo. Vamos alterar o arquivo etc/issue.new , esse arquivo é o responsável pela mensagem na tela de login. 10
  • 11. # vi etc/issue.new Welcome to s r (l) Subsituiremos Welcome to s r (l) por Seja Bem Vindo ao s Kernel r (l) ficando: Seja Bem Vindo ao s Kernel r (l) Salve as modificações para o arquivo, no caso do editor VI é só digitar “:wq” e depois quando remontarmos o pacote e ele for instalado pelo seu CD customizado a mensagem padrão que aparecerá será essa que acabamos de alterar. 4.3 <> Diretório /install O diretório install contém dois arquivos que são interpretados pelo instalador de pacotes do slackware, o doinst.sh e o slack-desc. O doinst.sh é um script de instalação do pacote, é ele que diz ao installpkg o que deve ser feito para instalar aquele pacote. Claro que esse é o jeito certo de se ter um pacote, mas o pacote também pode não ter esse arquivo, e o installpkg faz a instalação seguindo a ordem da estrutura de diretórios criada no pacote. Se dermos uma olhada no arquivo doinst.sh do pacote etc-5.1-noarch-10.tgz iremos ver que ele tem um script que retira a extensão .new e faz uma verificação para ver se o arquivo já existe, caso ele exista ele é instalado com a extensão .new . Assim você pode escolher em ter ou não um arquivo doinst.sh no seu pacote para dizer ao installpkg o que deve ser feito. Lembrando que a maneira mais coerente e certa é ter esse arquivo. O slack-desc é apenas um arquivo de descrição do pacote que segue algumas regras como por exemplo: |-----handy-ruler------------------------------------------------------| etc: etc (system configuration files) etc: etc: System configuration files. The /etc directory is traditionally the etc: location where configuration files are found. etc: etc: Cada linha deve ter o nome-base(basename) do pacote seguida de “:” e a handy-ruler que dimensiona a janela de descrição. É essa descrição que aparece ao ser instalado um pacote .tgz no slackware. Com isso já podemos alterar o conteúdo de um pacote, sua descrição e seu script de instalação, o próximo passo é reconstruirmos esse pacote. 4.4 <> Recriando um arquivo .tgz Há algumas maneiras de recriar um arquivo TGZ, vamos aprender a mais fácil e prática, mas não a mais certa e coerente. Anteriormente vimos que o comando tar -zxvf pode ser utilizado para abrir(descompactar) um pacote no formato .tgz, agora vamos usar esse mesmo comando mas com outras regras. Essas regras são as que farão o pacote ser compactado, o comando é: 11
  • 12. tar -zcpvf nome_do_pacote_desejado.tgz ./* Onde “c” serve para criar um novo arquivo, “z” utiliza o compactador gzip, “p” mantém as respectivas permissões dos arquivos, “v” mostra na tela o que está sendo feito e “f” utiliza método de arquivamento e o ./* é para que ele construa a estrutura de diretórios a partir do diretório atual(current), assim na hora de instalar o pacote ele instalará assumindo a estrutura a partir da raiz(/). Exemplo: # cd /tmp/pacotes/etc # tar -zcpvf etc-5.1-noarch-10-modificado.tgz ./* # ls # etc etc-5.1-noarch-10-modificado.tgz install tmp usr var O arquivo etc-5.1-noarch-10-modificado.tgz é o seu novo pacote, é só copiá-lo para estrutura do seu CD que será criado. 4.5 <> Passando de RPM para TGZ O que facilita muito trabalho no slackware é um script que faz a conversão dos pacotes no formato RPM para TGZ utilizado no Slackware. Esse script leva o nome de rpm2tgz que do inglês rpm to tgz quer dizer rpm para tgz. Isso é bom pelo seguinte, as vezes achamos um aplicativo interessante e quando vamos procurá-lo no formato tgz ele não existe, mas existe no formato rpm, então convertemos de rpm para tgz e podemos instalar esse pacote. É aconselhável abrir o pacote e dar uma olhada na estrutura de diretórios que ele segue, apenas por garantia e dependendo para criarmos o arquivo “doinst.sh”. O comando rpm2tgz pode ser usado da seguinte forma: rpm2tgz nome_do_pacote.rpm Simples assim ! Esse comando cria um novo pacote mas no formato tgz ficando de pacote.rpm para pacote.tgz. 4.6 <> Pacote a partir do fonte(source) Mais uma forma de criarmos um pacote é a partir do fonte do programa, você baixa o código fonte, compila, seguindo os procedimentos de compilação daquele software, esses procedimentos de compilação normalmente estão nos arquivos INSTALL e README que vem no código fonte do software, mas quase sempre a seqüência de comandos para compilação é ./configure , make e make install. Aí é que vem o detalhe, existe um script chamado “checkinstall” que faz o serviço de criação do pacote para você. Ao invés de colocar o comando make install que faz a instalação do software após a compilação do mesmo, você utiliza o comando checkinstall, que na verdade é um script que já cria um pacote no formato .tgz e instala esse pacote criado a partir da sua compilação. Claro que depois de criado o pacote, também é possível modificá-lo. CAPÍTULO 5 – IMAGEM PARA O CD 12
  • 13. 5.1 <> ISO ISO é um arquivo de imagem que é a cópia literal de um CD ou DVD. Um dos formatos mais utilizados para gerar o arquivo de imagem é o ISO. Contém todos os arquivos do CD, além de informações que permitem gerar uma cópia fiel. Por exemplo, o Nero e o K3B, programas de gravação de CD/DVD, tem a opção quot;Gravar Imagemquot;, que cria um CD/DVD a partir de um arquivo ISO. Pelo fato de o ISO ser um formato padrão, independente de fabricante, a grande maioria dos programas que gravam CD/DVD podem gravar arquivos ISO. 5.2 <> Abrindo uma imagem ISO Para abrirmos uma imagem ISO vamos usar o mesmo comando que utilizamos para abrir o arquivo initrd.img. A imagem ISO pode ser do slackware, do slax, do pQui ou de qualquer outra coisa.iso. Para acessarmos o seu conteúdo, vermos o que tem dentro dessa imagem sem precisarmos gravá-la em um CD/DVD, utilizamos o seguinte comando: mount -o loop nome_da_imagem.iso /pornto_de_montagem Exemplo: # mkdir /mnt/iso # mount -o loop slackware-10.2-install-d1.iso /mnt/iso Ao entrarmos no diretório /mnt/iso, veremos todo o conteúdo do CD1 do Slackware 10.2 # cd /mnt/iso # ls Mas do que adianta vermos o conteúdo se não podemos alterá-lo ? Vamos copiar todo o seu conteúdo para um diretório onde possamos fazer o que quisermos. # mkdir /tmp/CD1 # cp -ra /mnt/iso/* /tmp/CD1 Depois de copiarmos todo o conteúdo do CD1, respeintando sua estrutura, vamos ao diretório /tmp/CD1 e a partir daí podemos começar nossa customização. 5.3 <> Criando uma ISO Após alterarmos tudo o que foi possível, retirar pacotes, modificar pacotes, acrescentar pacotes, vamos fechar o CD para que possamos gravá-lo e levá-lo para qualquer lugar :-) O comando de criação de uma ISO é bem extenso, por isso é aconselhável utilizarmos um script que contenha esse comando ou anotá-lo em algum arquivo para quando precisarmos, apenas copiarmos o comando. O comando é: mkisofs -o /tmp/nome-da-imagem.iso -R -J -V quot;Nome que aparece quando o sistema le o CDquot; -hide-rr-moved -v -d -N -no-emul-boot -boot-load-size 4 -boot-info-table -sort isolinux/iso.sort -b isolinux/isolinux.bin -c isolinux/isolinux.boot . 13
  • 14. Esse comando com todas essas opções, cria uma imagem a partir do diretório que você está, portanto é necessário que esteja na parte “raiz” , na parte onde será o começo da estrutura de diretórios do seu CD, assim sendo, a partir do exemplo deveríamos estar no /tmp/CD1 para que o comando funcionasse. Exemplo: # cd /tmp/CD1 # mkisofs -o /tmp/meu-slackware.iso -R -J -V quot;Slackware Modificadoquot; -hide-rr-moved -v -d -N -no-emul-boot -boot-load-size 4 -boot-info-table -sort isolinux/iso.sort -b isolinux/isolinux.bin -c isolinux/isolinux.boot . Nesse caso, o nome da imagem é meu-slackware.iso e estará dentro do /tmp . 5.4 <> Gravando a ISO Agora iremos gravar a ISO criada em um CD. De todo jeito o arquivo ISO que você criou já é uma imagem completa do CD. Ele não irá funcionar se você gravar o arquivo ISO como um arquivo comum(CD de Dados), então inicie o seu programa de gravação favorito(K3B, NERO, etc) e procure a opção quot;Gravar/Queimar imagemquot;(inglês: Burn Image) ou quot;Gravar/Queimar imagem de CDquot;(inglês: Burn CD iso image). Essa opção pode estar escondida em algum lugar no seu programa, porque os usuários normalmente não precisam dessa opção. As vezes você terá que mudar o tipo de filtro dos arquivos para *.* porque se não, você não conseguirá visualizar o seu arquivo .ISO. Se não achar a opção para gravação da imagem, tente o arquivo de ajuda do programa, se ainda assim não conseguir achar as opções de gravação, escolha outro programa mais fácil. O resultado dessa gravação será um CD bootável. Obs: Alguns programas como winrar podem associar a extensão .ISO para abrir com ele. Ele pode achar que meu-slackware.iso é um arquivo compactado. Mas não pense assim. Não descompacte o arquivo! Grave a ISO como descrito acima porque se não você pode perder a inicialização do CD. Tutorial sobre isso pode ser encontrado no link: http://www.slacklife.com.br/article.php?sid=1486 CONCLUSÃO Após ler e entender o conteúdo desse documento, o leitor deverá estar apto a customizar um Slackware Linux, modificando um pacote da distribuição, modificando o instalador(setup), modificando arquivos de inicialização, criando pacotes próprios e gerando imagem ISO pronta para ser gravada em um CD. 14
  • 15. ACORDO DE LICENCIAMENTO Atribuição-Uso Não-Comercial-Compartilhamento pela mesma licença 2.0 Brasil Você pode: • copiar, distribuir, exibir e executar a obra • criar obras derivadas Sob as seguintes condições: Atribuição. Você deve dar crédito ao autor original, da forma especificada pelo autor ou licenciante. Uso Não-Comercial. Você não pode utilizar esta obra com finalidades comerciais. Compartilhamento pela mesma Licença. Se você alterar, transformar, ou criar outra obra com base nesta, você somente poderá distribuir a obra resultante sob uma licença idêntica a esta. • Para cada novo uso ou distribuição, você deve deixar claro para outros os termos da licença desta obra. • Qualquer uma destas condições podem ser renunciadas, desde que Você obtenha permissão do autor. Qualquer direito de uso legítimo (ou quot;fair usequot;) concedido por lei, ou qualquer outro direito protegido pela legislação local, não são em hipótese alguma afetados pelo disposto acima. Você pode copiar, modificar, exibir este documento, mantendo os créditos do autor ou autores. Esse documento não deve ser vendido e está sob a licença DE: da Creative Commons. http://creativecommons.org/licenses/by-nc-sa/2.0/br/deed.pt Documento criado por Hudson Gonçalves Manieri Figueredo (KyNDeR) http://www.securityview.com.br/~hudson e-mail: kynder1@gmail.com 15