Compilação de Programas a partir do código-fonte: Descompactação do pacote com: # tar xvzf pacote.tar.gz (zipado) ou # tar xvjf pacote.tar.bz (bzipado) legenda: x: extrai (todo.tar é um saco de arquivos e pastas, sem compactação) v: mostra o processo z e j: descompactam/compactam o pacote com o unzip ou o bunzip, ou com o zip ou o bzip f: um arquivo é especificado # cd pacote/ #./configure (inicia a configuração do ambiente de compilação do pacote, e gera uma descrição para o make (o makefile)) #make (compila de acordo com as especificações do make) # make install (copia os executaveis para os diretórios corretos) Para remover: #make uninstall O auto-apt Falarei um pouco sobre o auto-apt, essa magnífica ferramenta que veio para facilitar a vida dos usuários Debian, no que se trata de compilação de pacotes. Que atire a primeira pedra quem nunca tentou compilar um pacote e, quando estava rodando alegremente seu./configure, um monte de mensagens de erro de dependências aparecem na tela! Isso realmente é uma chateação, ter que ficar procurando essas dependências pela internet para poder instalar o pacote. Com o auto-apt, esse trabalho se fará desnecessário, pois ao detectar essa dependência ele tentará resolvê-la para você. Inicialmente, vamos instalar o pacote com o seguinte comando: # apt-get install auto-apt Depois de instalado, precisaremos atualizar o banco de dados do auto-apt. Lembro que é sempre bom realizar essa tarefa para que seu banco de dados fique sempre redondo.
# auto-apt update-local # auto-apt update # auto-apt updatedb Com o banco de dados atualizado, temos apenas que utilizá-lo. Com o banco de dados atualizado, temos apenas que utilizá-lo. Sua sintaxe é a seguinte: $ auto-apt run [comando] Obs: o auto-apt deve ser executado como usuário comum, que tenha acesso ao sudo. $ auto-apt run./configure $ auto-apt run make Ao encontrar a dependência, o auto-apt perguntará se você deseja instalá-la. Caso queira permitir que o auto-apt sempre instale sem perguntar antes, utilize a opção -y, como mostrado abaixo: $ auto-apt -y run./configure Para mais informações, veja o manual: $ man auto-apt apt-cdrom Ferramenta presente em Distribuições Debian que adiciona ao arquivo sources.list uma referência a uma mídia de armazenamento, que será uma das fontes de pacotes para instalação. Uso do apt-cdrom apt-cdrom add Monta o CD/DVD no dispositivo padrão do sistema (definido no fstab) ou apt-cdrom add -m -d=/onde/o/cd/estah/montado ou apt-cdrom add -m -d /onde/o/cd/estah/montado
Onde: add adiciona uma nova mídia -m não monta -d Onde a mídia está montada Ex.: apt-cdrom add -m -d=/mnt/cdrom O arquivo sources.list Contém as informações de quais locais possuem pacotes disponíveis para instalação. Geralmente a fonte é a internet ou um servidor local, mas pode ser por exemplo um CD ou DVD da distribuição. A sintaxe de cada linha é a seguinte: deb protocolo://endereço.onde.estao.os.pacotes/diretorio-da-distro secao1 secao2 Onde: deb tipo do pacote (deb Debian) protocolo://endereço.onde.estao.os.pacotes/diretorio-da-distro endereço completo do servidor e pasta onde estão os pacotes. secao1 secao2 Os pacotes são separados por seções, referentes as suas caracteristicas. Por exemplo: main pacotes principais e essenciais do sistema básico non-free pacotes com licença não livre lenny seção específica da distribuição Debian 5 Lenny, que se refere aos pacotes preparados especialmente para essa versão. Há um exemplo de linha do apt logo abaixo: Exemplo de Instalação com o apt Antes: Adicionar no /etc/apt/sources.list: deb http://download.virtualbox.org/virtualbox/debian lenny non-free Adicionar a chave de segurança (de assinatura do pacote) ao sistema:
wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- sudo apt-key add - ou, se já tiver baixado o arquivo sun_vbox.asc: sudo apt-key add sun_vbox.asc Instalando: sudo apt-get install virtualbox-3.1 X.Org O X é o motor gráfico que une os recursos do teclado, mouse e monitor para fornecer uma interface gráfica, baseada em objetos 3D. Junto com um gerenciador de janelas, fornece um shell com funcionalidade semelhante a do Windows. A versão que será tratada neste material será a X.Org, a atualmente adotada na maioria das distribuições, pelo seu desempelho e pela licença menos restriva do que a do Xfree86. Instalação do X.Org Debian: apt-get update apt-get install xfce4 (pode ser outro ambiente qualquer, mas algum é necessário, para o xorg ser instalado adequadamente) O sistema gráfico foi instalado, por causa do ambiente gráfico (gerenciador de janelas) especificado. Configurando o Xorg: dpkg-reconfigure xserver-xorg Realiza configurações relacionadas ao suporte de framebuffer do kernel (suporte genérico de placa de vídeo) ou completo (driver normal) e do teclado. O resto é automaticamente detectado pelo Hal (Hardware Abstraction Layer) que automaticamente detecta os dispositivos relacionados e suas possíveis configurações, como a frequência do monitor e a sua resolução. - Configuração manual da resolução e profundidade de cores: Em alguns momentos, a resolução da tela não corresponde ao desejado. Editando o /etc/x11/xorg.conf, é possível resolver isso. Nesse arquivo as informações estão separadas por seções, onde cada uma se refere a alguma configuração. Normalmente, a
versão mais nova do X.Org não tem esse arquivo por padrão, mas para certas distribuições é possível recriá-lo. Os passos seguintes se referem especialmente ao problema da resolução: Acrescimo da Seção ServerLayout (para carregar as modificações feitas na Seção Screen): #Antes da Seção Screen Section "ServerLayout" Identifier "Default Layout" Screen "Default Screen" EndSection #Modificação da Seção Screen: Section "Screen" Identifier "Default Screen" Monitor "Configured Monitor" DefaultDepth 24 SubSection "Display" Depth 16 Modes "1024x768" "800x600""640x480" EndSubSection SubSection "Display" Depth 24 Modes "1024x768" "800x600""640x480" EndSubSection SubSection "Display" Depth 32 Modes "1024x768" "800x600" "640x480" EndSubSection EndSection Outra configuração é a relacionada a taxa de atualização (refresh) do monitor: #ADVERTENCIA: valores incorretos podem danificar o seu monitor(ctr), ou deformar a imagem (CRT e LCD), principalmente se ele for antigo. #Modificação da atualização de tela (para um monitor com resolução de até 1024x768,
# a 60 Hz. Consulte o manual de seu monitor para outras): Section "Monitor" Identifier "Meu Monitor" HorizSync 31.5-50.0 VertRefresh 40-90 EndSection ou: Com a Configuração da Modeline (Valores diferentes para cada resolução de tela): #ADVERTENCIA: é recomendado não mexer com essa parte, apenas se for realmente necessário. Saber o valor da modeline correta: # gtf 1440 900 60 Resolução de 1440x900 a 60 Hz. A linha retornada pode ser copiada para dentro da seção do Monitor Section "Monitor" Identifier "Meu Monitor" HorizSync 31.5-50.0 VertRefresh 40-90 #configurações específicas do monitor: Modeline "1440x900_60.00" 106.47 1440 1520 1672 1904 900 901 904 932 -HSync +Vsync EndSection Colocando programas para rodar durante a inicialização Entendendo a inicialização Os processos de inicialização do Linux são chamados de run levels, ou níveis de execução. Estes níveis vão de 0 a 6, sendo que cada nível carrega seus serviços específicos ou modificados pelo administrador do sistema. * 0: Desliga; * 1: Modo Single (monousuário);
* 2: Modo multiusuário sem NFS; * 3: Modo multiusuário com suporte a NFS; * 4: Não utilizado; * 5: Com interface gráfica; # Não é usada em algumas distribuições, pois o gerenciador #de login se encarrega da interface gráfica. * 6: Reinicializa. No arquivo /etc/inittab estão listados todos os runlevels disponíveis e qual o padrão, que pode ser alterado. Adicionado serviços na inicialização Para colocar um serviço na inicialização do Linux temos 3 formas: 1 - utilizar uma ferramenta como o ntsysv ou chkconfig (RedHat/Fedora), ou o update-rc.d (Debian): update-rc.d <serviço/script> 2 - manualmente (1). Os arquivos de inicialização de serviços do Linux ficam no diretório /etc/rc[n].d. Na inicialização os serviços localizados no diretório /etc/rc[n].d podem ser inicializados ou parados. O [n] é o número correspondente ao run level, ou seja, é só adicionar um link do serviço para este diretório com a seguinte nomenclatura: [S K]56[nomedoserviço] Sendo: * [S K]: Isto quer dizer se o serviço ou programa deve ser iniciado ou não; o S: start (iniciar); o K: kill (matar, parar). * 56: É o número da fila em que ele deverá ser executado, se o número for menor ele será executado antes que os outros serviços; * [nomedoserviço]: somente para identificação humana, não interfere em nada. Exemplo prático:
Para inicializar um script primeiro você copia (recomendável) este script para o /etc/init.d: # cp /root/rotina.sh /etc/init.d Depois crie um link simbólico para o diretório /etc/rc.d/rc.[n]d (para qual run level você quiser): # ln -s /etc/rc.d/init.d /etc/rd.c/rc3.d/s24rotina Pronto, na inicialização em run level 3 o script rotina será executado. 3 - Manualmente: Colocar o caminho do script em: /etc/rc.local Sobre o update-rc.d: Configurador que automatiza a inclusão/remoção de um serviço ou script no sistema de inicialização de serviços do Debian, em qual nível de execução e runlevel desejado. Instalação: # apt-get install file-rc update-rc.d (só faça se no sistema não já estiver instalado) Utilização: update-rc.d <nome> start NN runlevel. stop NN runlevel. Nome é o mesmo nome do arquivo contido em /etc/init.d, NN significa a ordem em que eles serão iniciados/parados e runlevel especifica em quais runlevels eles serão iniciados/parados. Exemplo com o script firewall.
NOTA: O arquivo deve estar dentro do diretório init.d. # update-rc.d firewall start 20 2 3 4 5. stop 20 0 1 6. NOTA: Se já existir uma entrada no arquivo como o nome especificado, update-rc.d não irá fazer nada. Você também pode deixar os runlevels como padrão: update-rc.d <nome> defaults [NN NN-start NN-stop] Colocando o defaults, ele irá deixar os runlevels para inicialização como: 2, 3, 4 e 5; e para finalização: 0, 1 e 6 (para saber mais, leia a manpage do init). NN indica que o arquivo terá a mesma prioridade na inicialização/finalização. Para deixar diferente, especifique NN-start para a inicialização e NN-stop para finalização. NOTA: É recomendável sempre especificar um runlevel para os serviços serem finalizados. Ex: # update-rc.d firewall defaults Já para remover um arquivo da inicialização/finalização, use: update-rc.d [-f] <nome> remove O -f pode ser usado para que o update-rc.d remova também links simbólicos. Este comando excluirá os links dos rcn.d, e conseqüentemente com que o serviço seja iniciado e parado manualmente, ou seja, você precisará usar o script em /etc/init.d/firewall <opção>. Ex: # update-rc.d -f firewall remove Uma opção que pode ser usada em ambos os 3 comandos é -n. Ela faz com que updaterc.d simule o que aconteceria. # update-rc.d -n firewall remove
Não se preocupe, ele irá mostrar a saída corretamente, porém, não haverá nenhuma alteração. Arquivo inittab Define que nível de execução do init será usado. Pode ser usado para configurar o runlevel padrão. Exemplo de uso: colocar a interface gráfica como padrão: Dê um: # vim /etc/inittab Vamos modificar o runlevel padrão, que é 3 para iniciar em runlevel 5. Runlevel 3 é o terminal e o runlevel 5 ambiente gráfico. Então no inittab encontre a linha que tenha: id:3:initdefault Mude o valor de 3 para 5. Salve o arquivo.
Referências: Como compilar programas a partir do código fonte: http://brunotorres.net/compilar-programas Facilite sua vida com o auto-apt: http://www.vivaolinux.com.br/dicas/impressora.php?codigo=6819 Utilizando o apt para gerenciamento de pacotes: http://www.vivaolinux.com.br/artigos/impressora.php?codigo=1126 Como usar o APT - Capítulo 2 - Configurações Básicas: http://www.debian.org/doc/manuals/apt-howto/ch-basico.pt-br.html Configurando o vídeo: /etc/x11/xorg.conf: http://www.gdhpress.com.br/ferramentas/leia/index.php?p=cap2-7 Configurando o xorgconfig e o inittab para iniciar o Slackware em modo gráfico: http://www.vivaolinux.com.br/artigos/impressora.php?codigo=2519 Como colocar um programa para inicializar no boot: http://www.vivaolinux.com.br/artigos/impressora.php?codigo=4319 Trabalhando com init no Debian: http://www.vivaolinux.com.br/artigos/impressora.php?codigo=4906 update-rc.d - Manipulando scripts de inicialização: http://betopena.blogspot.com/2007/06/update-rcd-manipulando-scripts-de.html Configurando o Processo de Inicialização: http://www.conectiva.com/doc/livros/online/10.0/servidor/pt_br/ch03s06.html