Página anterior | Voltar ao início do trabalho | Página seguinte |
Como host do repositório apt, você pode também usar os mirrors (espelhos) disponíveis, como listado na página do http://apt.freshrpms.net :
...Ou você pode criar seu próprio mirror, como explicado mais a frente neste tutorial.
Agora é hora de colocar a ferramenta pra funcionar. Antes de mais nada precisamos atualizar os índices do repositório APT, armazenando-o no nosso sistema. Para fazer isso, você só precisa de um comando:
# apt-get update |
E ele irá atualizar o índice do repositório configurado no arquivo /etc/apt/sources.list como explicado antes. Se tudo ocorrer bem, tudo ira seguir mais ou menos como mostro abaixo:
# apt-get update Get:1 http://ayo.freshrpms.ne redhat/9/en/i386 release [714B] Fetched 714B in 0s (4010B/s) Hit http://ayo.freshrpms.net redhat/9/en/i386/os pkglist Hit http://ayo.freshrpms.ne redhat/9/en/i386/os release Get:1 http://ayo.freshrpms.ne redhat/9/en/i386/updates pkglist [434kB] Hit http://ayo.freshrpms.ne redhat/9/en/i386/updates release Fetched 434kB in 2s (208kB/s) Reading Package Lists... Done Building Dependency Tree... Done |
Depois do indice atualizado no sistema, é hora de você começar a colocar as coisas pra funcionar. Vamos agora por exemplo, tentar atualizar o sistema:
# apt-get upgrade Reading Package Lists... Done Building Dependency Tree... Done The following packages will be upgraded libxml2 1 packages upgraded, 0 newly installed, 0 removed and 0 not upgraded. Need to get 584kB of archives. After unpacking 160B of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://ayo.freshrpms.net redhat/9/en/i386/updates libxml2 2.5.4-3.rh9 [584kB] Fetched 584kB in 0s (4262kB/s) Executing RPM (-Uvh)... warning: /var/cache/apt/archives/libxml2_2.5.4-3.rh9_i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e Preparing... ########################################### [100%] 1:libxml2 ########################################### [100%] |
Como você pôde ver acima, eu utilizei o comando apt-get upgrade para procurar por pacotes mais novos e atualizar o sistema com eles. Na minha configuração, eu coloquei o módulo updates no /etc/apt/sources.list, então isso quer dizer que as atualizações que estiverem neste local do repositório serão reconhecidas pelo APT. É assim que fica fácil de se atualizar o sistema.
Se eu fizer novamente o processo acima, olha o que vou conseguir:
# apt-get upgrade Reading Package Lists... Done Building Dependency Tree... Done 0 packages upgraded, 0 newly installed, 0 removed and 0 not upgraded. |
Ou seja, todos os pacotes estão atualizados no meu sistema.
Suponhamos agora que você queira instalar uns pacotes do PHP, mas não sabe ao certo como eles se chamam. Com o APT, você pode procurar no índice por pacotes que tenham em sua descrição certas palavras, como por exemplo PHP. Para fazer isso, utilizamos o comando apt-cache, veja só:
# apt-cache search php asp2php - Converts WWW Active Server Pages to PHP pages asp2php-gtk - gtk+ frontend for asp2php quanta - K Desktop Environment - core files php - The PHP HTML-embedded scripting language. (PHP: Hypertext Preprocessor) php-devel - Files needed for building PHP extensions. php-imap - An Apache module for PHP applications that use IMAP. php-ldap - A module for PHP applications that use LDAP. php-manual - The PHP manual, in HTML format. php-mysql - A module for PHP applications that use MySQL databases. php-odbc - A module for PHP applications that use ODBC databases. php-pgsql - A PostgreSQL database module for PHP. php-snmp - A module for PHP applications that query SNMP-managed devices. squirrelmail - SquirrelMail webmail client |
Viu só? Estes são os pacotes relacionados com o PHP. Que tal a gente instalar o php-manual e dar uma lida pra aprender? Veja só como se faz:
# apt-get install php-manual Reading Package Lists... Done Building Dependency Tree... Done The following NEW packages will be installed: php-manual 0 packages upgraded, 1 newly installed, 0 removed and 0 not upgraded. Need to get 13.7MB of archives. After unpacking 92.7MB of additional disk space will be used. Get:1 http://ayo.freshrpms.net redhat/9/en/i386/updates php-manual 4.2.2-17.2 [13.7MB] Fetched 13.7MB in 1s (10.9MB/s) Executing RPM (-Uvh)... warning: /var/cache/apt/archives/php-manual_4.2.2-17.2_i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e Preparing... ########################################### [100%] 1:php-manual ########################################### [100%] |
Uma coisa muito legal do APT é que se você quer instalar ou remover um pacote, e este pacote depende de outros pacotes, o APT sabe disso e resolve isso pra você: ele pergunta se você quer também instalar/remover os pacotes dependentes. Ou seja, se você não tiver o PHP instalado em sua máquina e tentar instalar o php-imap, o APT vai querer instalar também o pacote principal php, pois o php-imap é dependente dele. Teste para ver.
E agora que eu já li o manual do PHP inteiro em apenas alguns segundos, eu quero removê-lo. Você pode remover muito bem utilizando o RPM, mas aqui estamos aprendendo sobre o APT, então utilizaremos:
# apt-get remove php-manual Reading Package Lists... Done Building Dependency Tree... Done The following packages will be REMOVED: php-manual 0 packages upgraded, 0 newly installed, 1 removed and 0 not upgraded. Need to get 0B of archives. After unpacking 92.7MB disk space will be freed. Do you want to continue? [Y/n] y Executing RPM (-e)... |
E lá se vai o manual do PHP. Como eu disse acima, se algum outro pacote depender do manual do PHP, o APT perguntará a você se deseja remover o outro pacote também.
E agora como nota final de uso, você pode atualizar uma versão de distribuição inteira através do APT. Para isso você só precisa mudar a versão do seu repositório (arquivo /etc/apt/sources.list) para uma versão superior a sua e executar o comando apt-get dist-upgrade.
E pra terminar essa seção, vamos à tabelinha básica dos comandos e suas funções:
Comando |
Função |
apt-get install <pacote> |
Instala um pacote e suas dependências. |
apt-get remove <pacote> |
Remove um pacote e suas dependências. |
apt-get upgrade |
Procura por pacotes mais novos para fazer atualizações. |
apt-get dist-upgrade |
Faz uma atualização de versão da distribuição. |
apt-cache search <termo> |
Procura por termo nas descrições dos pacotes disponíveis. |
E basicamente é isso. Utilizar o APT é muito simples e não requer muito segredo, nem esforço. Mas uma coisa é certa: uma vez que você começa a usar o APT, não quer parar nunca por causa de sua praticidade.
Se você é um usuário doméstico ou tem poucas máquinas em sua mão rodando Linux, já é muito prático você utilizar o APT com os repositórios disponíveis por aí na Internet. Mas para os administradores de Rede que possuem várias máquinas Linux, seja na mesma rede ou não, pedir para cada uma delas instalar ou atualizar pacotes da Internet é um desperdício de banda, além de um péssimo favor para os servidores externos. Então por que não fazer um repositório APT local?
O método aqui utilizado criará um mirror (espelho) do FTP da RedHat no seu sistema local, e scripts irão criar os índices do APT em sua máquina. Para fazer o espelho, precisaremos do pacote lftp, então se você não o possue, o que está esperando? apt-get install lftp!
Criando o espelho da distribuição
Baixe o script make-redhat-mirror disponível nesta página e coloque-o no diretório /usr/local/bin. Então rode inicialmente o seguinte comando:
# /usr/local/bin/make-redhat-mirror full 9 |
E espere. Espere bastante. O script irá baixar todo o conteúdo do RedHat 9 (inclusive as atualizações) para o diretório /var/mirror/redhat. Este diretório de destino pode ser configurado dentro do script, editando-o. Inclusive você pode editar também o FTP onde o mirror vai tirar seus arquivos. Tente achar um mirror da RedHat mais próximo de você.
Só será necessário rodar este comando uma vez. Mas depois você vai querer se manter atualizado com os novos pacotes, então para atualizar apenas a parte de updates, utilize o seguinte comando:
# /usr/local/bin/make-redhat-mirror quick 9 |
Mais tarde iremos também colocar no crontab para rodar as atualizações de índice com o FTP da RedHat automaticamente todo dia.
Preparando o território do APT
Antes de criar os índices, você precisará primeiro de um método para os clientes do APT baixarem as coisas. O método pode ser HTTP e FTP (Pode ser CD-ROM também, mas isso não vem ao caso). Fica ao seu critério escolher o método. No meu caso eu prefiro criar um host virtual no Apache chamado de apt.meudominio.com.br. Ou se você não tem domínio, pode usar seu próprio IP.
Isto será extremamente necessário, e a configuração disto está fora do escopo deste tutorial. Se você não sabe, procure saber como configurar um servidor HTTP ou FTP. Provavelmente você sabe um pouco, senão não estaria lendo esta parte do tutorial :)
Aqui, como eu disse, o lugar do repositório APT vai ser apt.meudominio.com.br, e o diretorio real no sistema vai ser /var/www/dominios/apt.meudominio.com.br/html.
Criando o repositório APT
Agora é a hora de criar o repositório do APT em sua máquina. Para isso, baixe o script make-apt disponível nesta página e coloque-o em /usr/local/bin. Edite o script e você verá algumas variáveis no começo para serem configuradas:
# Absolute directory for top of redhat mirror MIRRORDIR=/var/mirror/redhat # Absolute directory for top of apt repository APTDIR=/var/www/dominios/apt.meudominio.com.br/html # URL of repository ORIGINURL=apt.meudominio.com.br |
Veja aí o que você precisa. A variável MIRRORDIR indica onde você colocou o mirror do RedHat (isto está configurado também no script make-redhat-mirror). A variável APTDIR indica o diretório no sistema onde vai ficar o repositório do APT, que no nosso caso ficou sendo como /var/www/dominios/apt.meudominio.com.br/html. E por último a variável ORIGINURL indica a URL onde vai estar disponível o repositório, que no nosso caso ficou sendo apt.meudominio.com.br.
Depois de configurado estas três variáveis, é hora de finalmente criar o repositório. Na primeira vez que você for fazer isso, utilize o comando:
# /usr/local/bin/make-apt full 9 |
Isso irá iniciar o processo de criação do repositório, que deve demorar um pouquinho. Depois de feito, está pronto! Agora seus usuários já podem acessar o seu repositório APT através do seu servidor HTTP.
Configurando os clientes para usar seu repositório
Tudo que você precisará fazer para configurar os clientes do APT para utilizar o seu repositório será alterar o arquivo /etc/apt/sources.list e utilizar a seguinte linha:
rpm http://apt.meudominio.com.br redhat/9/en/i386 os updates |
E pronto! Se você estiver rodando várias máquinas numa rede interna, apenas uma terá o repositório e o resto irá baixar tudo localmente :)
Atualizando o repositório diariamente
Como existem as atualizações de segurança, é sempre bom você estar sempre atualizando seu repositório. Para fazer isso diariamente, crie um arquivo chamado /usr/local/bin/mirror-apt com o seguinte conteúdo:
#!/bin/bash /usr/local/bin/make-redhat-mirror quick 9 /usr/local/bin/make-apt quick 9 |
Depois edite o arquivo /etc/crontab, e adicione as seguintes linhas:
# Atualizacao do Mirror RedHat e APT 01 1 * * * root /usr/local/bin/mirror-apt |
Isso fará com que o sistema verifique as atualizações no FTP da RedHat e crie o repositório APT caso necessário todo dia às 1:00 da manhã. Se você quiser aprender mais sobre como agendar as tarefas através do crontab, visite meu outro tutorial: Utilizando o crontab.
E pronto! Seu trabalho está feito. Experimente e modifique as coisas para aprender mais. Não é tão difícil adaptar estas informações para criar um repositório do Fedora por exemplo, ou de outra versão do RedHat. A única coisa que irá mudar será a localização do mirror, entre outras pequenas coisas.
Espero que você tenha gostado desse tutorial, e que ele possa ter te ajudado a lidar melhor com sua distribuição. Críticas e Sugestões podem ser mandadas para o meu e-mail. E agora os créditos para este tutorial:
Hugo Cisneiros
hugo[arroba]devin.com.br
Página anterior | Voltar ao início do trabalho | Página seguinte |
|
|