tutorfreebr.blogspot.com.br 1/16 Gerenciamento de Pacotes no Debian
Como gerenciar de forma correta os pacotes em Debian e...
tutorfreebr.blogspot.com.br 2/16 Gerenciamento de Pacotes no Debian
cahe é extremamente útil. Ao mesmo tempo, o apt-cache ...
tutorfreebr.blogspot.com.br 3/16 Gerenciamento de Pacotes no Debian
referndo-me às ferramentas que se enquadram nesta cate...
tutorfreebr.blogspot.com.br 4/16 Gerenciamento de Pacotes no Debian
Este é o procedimento que atualizará a totalidade dos ...
tutorfreebr.blogspot.com.br 5/16 Gerenciamento de Pacotes no Debian
2.2 Instalação de Pacotes via Repositórios
Para que se...
tutorfreebr.blogspot.com.br 6/16 Gerenciamento de Pacotes no Debian
num momento posterior, devemos utilizar o “dpkg-reconf...
tutorfreebr.blogspot.com.br 7/16 Gerenciamento de Pacotes no Debian
apt-get install -f
O procedimento realizado acima vai ...
tutorfreebr.blogspot.com.br 8/16 Gerenciamento de Pacotes no Debian
bastante fácil, solucionar este problema recorrendo no...
tutorfreebr.blogspot.com.br 9/16 Gerenciamento de Pacotes no Debian
O pacote (package) serão integralmente desinstalados, ...
tutorfreebr.blogspot.com.br 10/16 Gerenciamento de Pacotes no Debian
4.1 Apresentar as Informações de um Pacote
Para ser p...
tutorfreebr.blogspot.com.br 11/16 Gerenciamento de Pacotes no Debian
que será instalado por padrão junto a uma tabela de v...
tutorfreebr.blogspot.com.br 12/16 Gerenciamento de Pacotes no Debian
O terceiro caractere é um espaço em branco, para a gr...
tutorfreebr.blogspot.com.br 13/16 Gerenciamento de Pacotes no Debian
4.9 Listagem de arquivos Instalados por Pacotes
Se fo...
tutorfreebr.blogspot.com.br 14/16 Gerenciamento de Pacotes no Debian
E tudo pronto para ser copiado para a segunda máquina...
tutorfreebr.blogspot.com.br 15/16 Gerenciamento de Pacotes no Debian
copiar ou até modificar.
6. Adicionar Repositórios e ...
tutorfreebr.blogspot.com.br 16/16 Gerenciamento de Pacotes no Debian
/etc/apt/sources.list.d.
Se formos optar pela segunda...
Como gerenciar de forma correta os pacotes em debian e distribuições derivadas
Próximos SlideShares
Carregando em…5
×

Como gerenciar de forma correta os pacotes em debian e distribuições derivadas

136 visualizações

Publicada em

Neste artigo explicamos como gerenciar de forma correta pacotes de softwares em Debian e distribuições filhas.

Publicada em: Software
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
136
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Como gerenciar de forma correta os pacotes em debian e distribuições derivadas

  1. 1. tutorfreebr.blogspot.com.br 1/16 Gerenciamento de Pacotes no Debian Como gerenciar de forma correta os pacotes em Debian e Distribuições Derivadas A gestão de pacotes em sistema GNU/Linux é uma das suas maiores virtudes, no entanto o formato do empacotamento e a sua correspondente gestão varia de distribuição para distribuição e por isso mesmo seria muito extenso falar de todos os métodos possíveis. Em Debian e distribuições derivadas, o .deb é utilizado como sendo o formato de empacotamento e o apt e dpkg são as ferramentas de trabalho. Os mais céticos pensam no Synaptic como a forma de resolução para todas as tarefas relacionadas com a gestão de pacotes, ou até numa outra GUI qualquer. Mesmo o Synaptic Package Manager como sendo uma das melhores GUIs para estes procedimentos não responde de forma satisfatória em algumas situações e por isso temos de ir para a CLI (Command Line Interface). apt-get Muito provavelmente o apt-get é um dos comandos mais utilizados no Debian e distribuições derivadas. O principal objetivo do apt-get é interagir com os repositórios remotos, os quais são mantidos pela equipe de empacotamento da distribuição e depois realizar a execução de ações sobre esses pacotes disponíveis. O apt e suas variantes realizam a pesquisa de informações nos repositórios remotamente numa cache mantida no sistema local. Também é utilizado para instalação e/ou remoção de um determinado pacote ou vários no sistema. O apt-get é largamente utilizado para atualizar a cache localmente e ao mesmo tempo realizar todas as alterações necessárias ao sistema. apt-cache O apt-cache utiliza a cache local para consultar informações sobre todos os pacotes disponíveis e as suas respectivas propriedades. Se for necessário realizar uma pesquisa por um determinado pacote ou até uma ferramenta que executa uma determinada função no sistema, o apt-
  2. 2. tutorfreebr.blogspot.com.br 2/16 Gerenciamento de Pacotes no Debian cahe é extremamente útil. Ao mesmo tempo, o apt-cache pode dar um manancial de informações sobre qual a versão do pacote exato que vai ser o alvo desse mesmo procedimento. Também devemos pensar em dependências e dependências reversas onde precisamente o apt-cache é a melhor escolha. aptitude O aptitude tem a particularidade de combinar muitas das funcionalidades quer do nosso já conhecido apt-get bem como do apt-cache. No entanto, quando o aptitude se encontra a ser executado via CLI, a maioria dos comandos vai espelhar de forma correta todas as potencialidades do apt-get e do apt-cache. Assim, devido a esta capacidade conhecida como mirroring está de momento fora dos propósitos deste artigo. dpkg As 3 ferramentas anteriormente descritas possuem o seu foco na gestão dos pacotes mantidos nos repositórios, no entanto o dpkg pode ser utilizado para operar nos pacotes .deb individuais, mas também é importante descrever, que o dpkg é o responsável pela maior parte dos acontecimentos em backgroung via os comandos descritos acima. Sendo assim, contrariamente aos comandos apt-*, o comando dpkg não possui a capacidade de resolução de dependências de forma automática. Mas então qual o trabalho do dpkg? A sua principal característica é a capacidade que possui de poder trabalhar de forma fácil com os pacotes .deb de forma totalmente direta e ainda ao mesmo tempo a capacidade de poder dissecar qualquer pacote e descobrir toda a sua estrutura. Embora seja possível ao dpkg recolher algumas informações sobre os pacotes instalados no sistema, o seu objectivo principal reside sobre o nível do pacote individualmente. tasksel O tasksel é de um tipo de classe diferente de ferramentas existentes para a gestão de software. Em lugar de exercer uma gestão de pacotes de forma individual, o tasksel, concentra-se unicamente em grupos de software necessário para a realização de tarefas específicas (tasks). Pessoalmente... não tenho muito adoração pelo tasksel, pois não permite uma abordagem cirúrgica ao que desejamos realizar, no entanto pode ser bastante útil para se iniciar o trabalho de uma forma bastante rápida. VARIAÇÕES DO APT Como alguns sabem, existem mais ferramentas para a gestão de pacotes que oferecem diferentes funcionalidades ou até informações presentes em diferentes formas. Estou claramente
  3. 3. tutorfreebr.blogspot.com.br 3/16 Gerenciamento de Pacotes no Debian referndo-me às ferramentas que se enquadram nesta categoria: apt-file, dselect e gdebi. Mais uma vez lamento, mas está totalmente fora deste artigo, detalhar estas mesmas ferramentas. Depois desta introdução, é o momento de passar às explicações práticas... 1. Atualizar a Cache de Pacotes e o Sistema 1.1 Atualizar a Cache de Pacotes Locais Os repositórios remotos que empacotam as suas ferramentas contam com as informações dos pacotes a serem atualizados em determinados intervalos de tempo. No entanto, é importante referir que a grande maioria das ferramentas destinadas para a gestão de pacotes trabalha com a informação existente previamente na cache local. Assim sendo, uma das melhores práticas é precisamente a cada início da nossa sessão, atualizar a cache de pacotes, antes de você executar outros comandos relacionados com pacotes. A nossa finalidade aqui é assegurar que temos o nosso sistema Debian o mais atualizado possível relativamente ao software disponível existente nessa máquina para evitar más surpresas. Importa ao mesmo tempo evidenciar que alguns comandos podem falhar se estivermos operando com informações de pacotes obsoletos. 1.2 Atualização de Pacotes sem a Remoção de Pacotes Vale lembrar que o apt distingue dois tipos de procedimentos diferentes de atualização. O primeiro procedimento pode e deve ser utilizado para atualizar quaisquer componentes do sistema que não necessitem de remoção de componentes. Para se atualizar a cache local, executar: sudo apt-get update No momento será apresentada uma listagem devidamente atualizada com a totalidade dos pacotes disponíveis existentes nos repositórios. Este procedimento pode ser de enorme importância quando não desejamos a remoção de quaisquer dos pacotes instalados em qualquer circunstância. A título de exemplo, posso nem estar interessado em atualizar os drivers da minha placa de vídeo, nem sempre os drivers mais novos são os que dão as maiores garantias. 1.3 Atualização / Remoção de Pacotes Algumas atualizações envolvem a substituição de componentes do sistema ou a realização da remoção de pacotes em regime de conflito. Este é por si mesmo um procedimento que vai ignorar toda e qualquer atualização ou atualizações que requerem a remoção do pacote, executar: sudo apt-get upgrade Logo após ter sido executada esta tarefa, qualquer atualização que não envolva a remoção de pacotes vais ser de imediato aplicada ao sistema no seu todo.
  4. 4. tutorfreebr.blogspot.com.br 4/16 Gerenciamento de Pacotes no Debian Este é o procedimento que atualizará a totalidade dos pacotes, mesmo aqueles que exijam a remoção de pacotes, portanto isto é muita das vezes necessário realizar relativamente às dependências que esses pacotes vão mudar / alterar. Os pacotes a serem removidos são substituídos por outros pacotes equivalentes durante o procedimento de atualização. Este é sem dúvidas um procedimento totalmente seguro de ser executado. Mas convém também recordar que é uma boa prática estarmos com a máxima atenção sobre os pacotes a serem removidos, apenas no caso de alguns componentes essenciais se encontrarem marcados para remoção. Logo devo executar: sudo apt-get dist-upgrade Agora que foi realizado o procedimento acima, a totalidade de pacotes existentes no sistema serão atualizados na íntegra. Vale lembrar que este é o procedimento de atualização mais completo, quando em comparação com o “apt-get upgrade”. 2. Download e Instalação de Pacotes Uma das principais funções existentes nas ferramentas destinadas à gestão de pacotes é facilitar o download e a instalação de um ou mais pacotes nesse sistema. 2.1 Pesquisar por Pacotes Quando estamos realizando o download e instalação de pacotes, o primeiro procedimento é a análise dos repositórios da nossa distribuição GNU/Linux para que dessa forma se pesquise por pacotes de softwares. A grande maioria dos comandos apt operam na cache de informações que é mantida na máquina local, sendo que este procedimento permite uma execução mais rápida e menos tráfego de rede. A pesquisa por pacotes é uma operação que tem o seu alvo: a cache de informações dos pacotes referentes à lista de repositórios do seu sources.list que encontra-se em “etc/apt/”. O apt-cache search é o recurso necessário para a execução de pesquisa de pacotes disponíveis. Logo é necessário garantir que a cache local se encontra devidamente atualizada antes de se iniciar a pesquisa de pacotes, portanto para pesquisar, executar: apt-cache search NomeDoPacote Então não se utiliza o sudo? Não são necessários privilégios especiais. Este procedimento apenas consultará a informação e nada mais do que isso. Utilizarei pesquisa sobre o pacote htop como exemplo demonstrativo, executar: apt-cache search htop
  5. 5. tutorfreebr.blogspot.com.br 5/16 Gerenciamento de Pacotes no Debian 2.2 Instalação de Pacotes via Repositórios Para que seja executada a instalação de um determinado pacote via repositórios, bem como ainda todas as suas dependências obrigatórias e necessárias para a sua correta execução, utilizamos o “apt-get install” + o nome do pacote, executar: sudo apt-get install NomeDoPacote É possível a instalação de vários pacotes, sendo que para se instalar múltiplos pacotes deve ser inserido sempre um espaço entre cada pacote a ser instalado, executar: sudo apt-get install package1 package2 package3 package4 package5 Vamos pensar se esses mesmos pacotes ou conjunto de pacotes a serem instalados requerem obrigatoriamente dependências adicionais, assim estas vão certamente serem apresentadas, sendo para tal necessário confirmar o procedimento. Para exemplo vou utilizar a instalação do Apache, executar: sudo apt-get install apache2 Vejamos o output com muita atenção: Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: apache2-data Suggested packages: apache2-doc apache2-suexec-pristine apache2-suexec-custom apache2-utils The following NEW packages will be installed: apache2 apache2-data 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 236 kB of archives. After this operation, 1,163 kB of additional disk space will be used. Do you want to continue [Y/n]? Embora o meu objetivo seja instalar o Apache, o pacote apache2-data, entre outros, são necessários como dependências, ou seja, é necessária a instalação destes outros pacotes para que o Apache venha a funcionar corretamente. Neste caso podemos continuar com a instalação pressionando [ENTER], existe também a possibilidade de se abortar esse mesmo processo de instalação, digitando n e teclando [ENTER]. 2.3 Instalação de uma Versão Especifica de um Pacote via Repositórios Sempre que existe a necessidade de se instalar uma versão específica de um determinado pacote, essa mesma informação pode ser fornecida com a introdução do sinal de igualdade (=), executar: sudo apt-get install NomeDoPacote=version NOTA: 'version' deve coincidir com um dos números da versão do pacote disponível nesse repositório. 2.4 Processo de Reconfiguração de Pacotes Muitos pacotes possuem os seus próprios scripts de configuração pós-instalação, os quais são sempre executados imediatamente após a instalação se encontrar completa. Estes incluem muitas das vezes prompts para que o administrador do sistema possa realizar as escolhas necessárias de acordo com as suas necessidades. Caso exista a necessidade de serem executadas estas ou outras etapas de configuração
  6. 6. tutorfreebr.blogspot.com.br 6/16 Gerenciamento de Pacotes no Debian num momento posterior, devemos utilizar o “dpkg-reconfigure”. O dpkg-reconfiure analisará o pacote em causa e depois executará todos os comandos de pós-configuração incluídos dentro da especificação desse mesmo pacote, executar: sudo dpkg-reconfigure NomeDoPacote IMPORTANTE: este procedimento apresentará uma quantidade substancial de perguntas para serem respondidas. 2.5 Simulação de Execução do Pacotes Aqui certamente vamos entrar numa das capacidades mais emblemáticas do apt. Muitas, mas muitas vezes mesmo temos a necessidade de ver quais os efeitos colaterais de um determinado procedimento, ainda antes de este ser executado para evitar o comprometimento do sistema na sua globalidade. Adicionando o parâmetro “-s”, o apt permite a simulação desse procedimento. Executar: apt-get install -s package Veremos todas as dependências e alterações no sistema. Mas tem mais, um dos benefícios deste procedimento é que podemos verificar todos os resultados de um processo que normalmente requerem privilégios de root, sem a utilização do sudo. Por exemplo, vamos novamente voltar ao Apache. Vamos avaliar o que iria ser instalado com o apache2. Executar: apt-get install -s apache2 NOTE: This is only a simulation! apt-get needs root privileges for real execution. Keep also in mind that locking is deactivated, so don't depend on the relevance to the real current situation! [...]The following extra packages will be installed: apache2-data Suggested packages: apache2-doc apache2-suexec-pristine apache2-suexec-custom apache2-utils The following NEW packages will be installed: apache2 apache2-data 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. [...] Está demonstrado que foi possível a obtenção de todas as informações sobre os pacotes e versões que seriam instalados, sem a necessidade de ser concluído o processo real. Para os usuários mais curiosos: verifiquem a saída do “apt-get -s dist-upgrade”. 2.7 Correção de Dependências Quebradas Existem situações em que uma instalação não pode ser concluída devido a dependências ou outros problemas similares. Isto pode acontecer quando o dpkg não tem a capacidade de cuidar das dependências da forma devida. Mais uma vez o apt-get pode tentar resolver estes problemas com a inclusão do parâmetro -f. Executar:
  7. 7. tutorfreebr.blogspot.com.br 7/16 Gerenciamento de Pacotes no Debian apt-get install -f O procedimento realizado acima vai apresentar quais são as dependências que não se encontram satisfeitas e tentar instalar na tentativa de resolver o problema. 2.8 Download de Pacotes dos Repositórios Existe situações em que pode ser bastante útil realizar o download de um pacote de um repositório sem a necessidade de este ser instalado, sendo que este procedimento pode ser realizado através do “apt-get download pacote”. Como trata-se apenas de um simples download de um arquivo e não terá impacto algum no sistema, os privilégios de administrador não são necessários, executar: apt-get download pacote O download vai ser realizado no diretório atual. 2.9 Download das sources via Repositório Sabemos que o apt trabalha principalmente com pacotes no formato .deb, no entanto existe a possibilidade de se obter somente o código fonte dos pacotes, desde que seu sources.list se encontre devidamente configurada com essa opção. Assim para se realizar o download da source é necessário existir a diretiva deb-src no repositório da sua sources.list. Depois de termos os repositórios das sources devidamente configurados, é possível realizar o download das sources de um pacote, para tal executar: sudo apt-get source package O procedimento executado acima realizará o download dos arquivos para o diretório atual. 2.10 Instalação de um Pacote .deb A grande maioria das distribuições GNU/Linux nos dias de hoje recomenda a instalação de software a partir de seus repositórios oficiais. Mas isto não impede que um desenvolvedor ofereça seu software para download no formato apropriado para uma fácil instalação. Para instalar um pacote .deb de terceiros vamos utilizar o dpkg. O dpkg é utilizado essencialmente para trabalhar com pacotes individuais, portanto não devemos tentar em caso algum a execução da instalação via repositórios, por isso mesmo executar: sudo dpkg --install Pacote.deb É importa lembrar que o dpkg não implementará qualquer tipo de manipulação de dependências, significando que se existirem quaisquer dependências não satisfeitas, a instalação vai falhar ou mostrar alguma mensagem de alerta. Mas nem tudo se encontra perdido, visto que o dpkg vai marcar as dependências necessárias, por isso, se todas as dependências se encontrarem disponíveis nos repositórios, podemos de uma forma
  8. 8. tutorfreebr.blogspot.com.br 8/16 Gerenciamento de Pacotes no Debian bastante fácil, solucionar este problema recorrendo novamente ao dpkg. Executar: sudo apt-get install -f O procedimento realizado acima executará a instalação da totalidade das dependências não satisfeitas, as mesmas que foram anteriormente marcadas pelo dpkg. 2.11 Tasks e Tasksel É possível executar a instalação de grandes conjuntos de grupos de pacotes de software que estabelecem um ambiente quando instalado em conjunto. Assim e para ficarem mais cientes de exemplos de tasks, estas incluem LAMP servers, ambientes desktop, servers de aplicações, etc. Caso o tasksel não se encontre instalado nessa máquina, executar (como ROOT): apt-get update apt-get install tasksel É possível selecionar diferentes grupos de pacotes de forma interativa, para tal executar: tasksel O procedimento realizado acima apresentará uma interface que permite selecionar diferentes grupos de pacotes e aplicar as alterações necessárias. Também existe a possibilidade de se visualizar uma lista de tasks disponíveis e o seu respectivo estado. Executar: tasksel --list-task Seguidamente é possível optar por instalar as tasks via CLI, executar: sudo tasksel install nome_da_task 3. Remoção de Pacotes Obviamente que a execução de operações inversas à instalação e download de pacotes também são possíveis de serem realizadas com o que se denomina por package managers. 3.1 Desinstalar um Pacote Para remover um pacote previamente instalado devemos utilizar o “apt-get remove”, sendo que este comando removerá a maioria dos arquivos desse mesmo pacote instalado no sistema, mas com uma exceção notável. IMPORTANTE: quando executamos o “apt-get remove” estamos somente removendo esses pacotes, pois serão deixados os arquivos de configuração desses pacotes no seu devido lugar, para que desse modo a configuração prévia fique sempre disponível, caso seja necessário voltar a instalar posteriormente essa mesma aplicação. Pessoalmente, acho bastante útil, porque significa que os arquivos de configuração previamente personalizados não serão removidos, mesmo que esse mesmo pacote tenha sido apagado, executar: sudo apt-get remove NomeDoPacote
  9. 9. tutorfreebr.blogspot.com.br 9/16 Gerenciamento de Pacotes no Debian O pacote (package) serão integralmente desinstalados, mas os seus arquivos de configuração continuarão perfeitamente disponíveis. 3.2 Desinstalar um Pacote e todos os arquivos de Configuração Sempre que for necessário realizar a remoção de um pacote e todos os arquivos de configuração que se encontrem associados devemos usar o “apt-get purge”. Contrariamente à utilização do 'apt-get remove', o 'apt-get purge' remove tudo, tudo mesmo, sendo este procedimento bastante útil, caso não se deseje guardar os arquivos de configuração ou executar uma instalação limpa. NOTA: Vale lembrar que uma vez estes arquivos de configuração terem sido excluídos, NÃO HÁ a hipótese destes serem recuperados (a menos que exista um backup), executar: sudo apt-get purge NomeDoPacote Agora, se for necessário novamente a reinstalação do pacote, a configuração padrão vai ser utilizada. 3.3 Remoção de Dependências Automáticas não Necessárias Quando se remove pacotes do sistema com “apt-get remove” ou com “apt-get purge”, o meta pacote também será removido. No entanto, nem todas as dependências que foram instaladas de forma automática são descartadas completamente. Com a finalidade de se remover de forma automática todos os pacotes que foram instalados como dependências, deve ser usado o “apt-get autoremove”. Executar: sudo apt-get autoremove 3.4 Apagar Pacotes Obsoletos Como alguns pacotes são adicionados, mas não são removidos pelos responsáveis por esses mesmos pacotes para essa mesma distribuição, alguns pacotes ficarão obsoletos. Existe uma outra opção que deve ser realizada conjuntamente com o apt-get, usando para tal o “autoclean”, sendo que este procedimento vai liberar espaço na máquina e ainda permitir que a cache seja atualizada. Executar: sudo apt-get autoclean 4. Obtenndo Informações dos Pacotes Cada pacote contém uma enorme variedade de metadados que podem ser acessados utilizando o conjunto apt.
  10. 10. tutorfreebr.blogspot.com.br 10/16 Gerenciamento de Pacotes no Debian 4.1 Apresentar as Informações de um Pacote Para ser possível apresentar informações detalhas sobre um pacote presente nos repositórios da nossa distribuição, podemos usar o show com o 'apt-cahe', executar: apt-cache show NomeDoPacote O comando acima informará os dados dos candidatos em questão. Assim cada candidato terá informações sobre as suas dependências, versão, arquitetura, conflitos, novo do arquivo do pacote real, o tamanho desse pacote, instalação e outras descrições mais detalhadas. Para que seja possível apresentar as informações adicionais sobre cada um dos candidatos, incluindo uma listagem completa das dependências reversas (lista de pacotes que dependem do pacote consultado), utilizamos o showpkg. Isto incluirá uma quantidade de informações sobre este pacote relativamente a outros. Executar: apt-cache showpkg NomeDoPacote 4.2 Mostrar Informações sobre um Pacote .deb Para se apresentar os detalhes sobre um pacote .deb, podemos utilizar o parâmetro --info, com o dpkg, sendo que o alvo deste comando deve ser o caminho (/path) para o arquivo .deb, executar: dpkg --info debfile.deb O procedimento realizado acima apresentará alguns metadados sobre o pacote. Isso inclui o nome do pacote e a sua versão, a arquitetura para o qual foi desenvolvido, o tamanho e as dependências necessárias, descrição e conflitos. 4.3 Apresentação das Dependências e das Dependências Reversas Para obter a lista de todas as dependências dee um determinado pacote e suas dependências reversas utilizaremos o “apt-cache depends”. Para visualizar as dependências de um determinado pacote, executar: apt-cache depends NomeDoPacote O procedimento realizado acima exibirá as informações sobre cada pacote que é apresentado como sendo uma dependência, sugestão, recomendação ou conflito. Caso seja necessário descobrir quais os pacotes dependem de um outro, devemos utilizar o rdepends. Portanto executar: apt-cache rdepends NomeDoPacote 4.4 Apresentar Pacotes Instalados e Versões Disponíveis Muitas das vezes existem várias versões de um pacote dentro do repositório com um único pacote padrão. Assim para se ver as versões de um pacote podemos utilizar o argumento policy, executar: apt-cache policy NomeDoPacote O comando acima apresentará a versão se encontra instalada (se existir), o candidato
  11. 11. tutorfreebr.blogspot.com.br 11/16 Gerenciamento de Pacotes no Debian que será instalado por padrão junto a uma tabela de versões de pacotes indicando a prioridade de cada uma delas. Mostra qual a versão vai ser instalada e quais as alternativas se encontram disponíveis. O procedimento também apresentará uma listagem sobre os repositórios onde cada versão se encontra localizada, então este pode ser usado se existir algum repositório extra ou PPA em substituição aos pacotes dos repositórios padrão. 4.5 Apresentação de Pacotes Instalados com o dpkg -l Para que seja possível apresentar os pacotes instalados no sistema existem duas opções, as quais dependem do formato e do output que iremos escolher. Podemos utilizar o dpkg ou o dpkg-query com o parâmetro -l, sendo que o output de ambos é idêntico. Sem a introdução de argumentos será apresentara uma listagem de todos os pacotes instalados no sistema. Executar: dpkg -l Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf­files/Unpacked/halF­conf/Half­inst/trig­aWait/Trig­pend |/ Err?=(none)/Reinst­required (Status,Err: uppercase=bad) ||/   Name                                                                                 Version Architecture Description +++­============================================= [...] ii  lyx            2.0.6­1build amd64        document processor ii  lyx­common     2.0.6­1build all          architecture­independent files fo ii  lyx­dbg        2.0.6­1build amd64        debugging symbols for LyX [...] Esta saída é bastante extensa. No início da saída do comando é possível visualizar o significado dos 3 primeiros caracteres em cada linha. O primeiro caractere indica o estado desse mesmo pacote, o qual pode ser: u -> desconhecido; i -> instalado; r -> removido; p -> purge executado; h -> versão realizada. O segundo caractere indica o estado atual do pacote, como ele é conhecido pelo sistema de empacotamento, os quais podem ser os seguintes: n -> não instalado; i -> instalado; c -> existem arquivos de configuração presentes, mas a aplicação está desinstalada; u -> descompactado, sendo que os arquivos estão descompactados mas não configurados ainda; f -> pacote parcialmente instalado, o que desde já significa que existe uma grande probabilidade de esse mesmo pacote, ser suspenso devido a alguma operação do sistema; w -> o pacote encontra-se à espera de um desencadeamento de um pacote em separado; p -> o pacote foi desencadeado por outro pacote.
  12. 12. tutorfreebr.blogspot.com.br 12/16 Gerenciamento de Pacotes no Debian O terceiro caractere é um espaço em branco, para a grande maioria de pacotes tendo somente, uma opção potencial: r -> reinstalação necessária, sendo que isto por norma tende a significar que se encontra quebrado e não se encontra funcional. As colunas restantes contem o nome do pacote, versão, arquitetura e uma descrição. 4.6 Apresentar o Estado da Instalação e Pacotes Filtrados Se formos adicionar um padrão de pesquisa após o -l, o dpkg apresentará todos os pacotes (instalados ou não) que contêm esse mesmo padrão. Vamos pesquisar por Iceweasel, executar: dpkg -l iceweasel* Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf­files/Unpacked/halF­conf/Half­inst/trig­aWait/Trig­pend |/ Err?=(none)/Reinst­required (Status,Err: uppercase=bad) ||/ Nome           Versão       Arquitectura Descrição +++­==============­============­============­================================= ii  iceweasel      31.8.0esr­1~ amd64        Web browser based on Firefox un  iceweasel­l10n <nenhuma>    <nenhuma>    (nenhuma descrição disponível) ii  iceweasel­l10n 1:31.8.0esr­ all          Portuguese (Brazil) language pack 4.7 Apresentar os Pacotes Instalados com dpkg --get selections Uma forma alternativa, para serem apresentados os pacotes que se encontram instalados no sistema é precisamente recorrer ao parâmetro “--get selections” junto ao dpkg. Isto fornecerá uma listagem de todos os pacotes instalados ou removidos, mas não os “purgados”, executar: dpkg --get-selections Então, para se poder diferenciar entre dois estados, vou utilizar o awk para filtrar por estado e assim para se visualizar somente os pacotes instalados, executar: dpkg --get-selections | awk '$2 ~ /^install/` Para obter uma lista de pacotes removidos que não tiveram os seus arquivos de configuração purgados, executar: dpkg --get-selections | awk '$2 !~ /^install/' 4.8 Pesquisa por Pacotes Instalados Para procurar um pacote base instalado de um pacote específico é possível adicionar uma sequência de filtros após a opção --get-selections e ainda recorrer à utilização de curingas. Novamente, este procedimento vai apresentar todos os pacotes que se encontram instalados ou que ainda possuem arquivo de configuração do sistema, executar: dpkg --get-selections libz*
  13. 13. tutorfreebr.blogspot.com.br 13/16 Gerenciamento de Pacotes no Debian 4.9 Listagem de arquivos Instalados por Pacotes Se for necessário descobrir qual pacote é responsável por um determinado pacote devemos utilizar o parâmetro “-L” com o dpkg, executar: dpkg -L NomeDoPacote Será apresentado o path (caminho) absoluto de cada arquivo que é controlado pelo pacote em causa. 4.10 Pesquisar o que um Pacote Instala Para pesquisar o que um pacote instala devemos utilizar o parâmetro “-S”, executar: dpkg -S /path/to/file 4.11 Descobrir qual Pacote é Dono de Arquivo de Instalação Para descobrir qual pacote é dono de um determinado arquivo de instalação, devemos utilizar o parâmetro “-S”. No entanto, existem momentos em que é necessário saber qual o pacote que fornece determinado arquivo ou comando, mesmo que o pacote associado não se encontre instalado. Para este procedimento é necessário a instalação do “apt-file”. Isto manterá a sua própria BD de informações, o qual inclui o path de cada arquivo controlado por um pacote nessa BD, executar: sudo apt-get update sudo apt-get install apt-file Em seguida atualize o seu BD e faça a pesquisa, executar: sudo apt-file update sudo apt-file search /path/to/file IMPORTANTE: só vai funcionar para os locais dos arquivos que são instalados diretamente por um determinado pacote. Qualquer arquivo que seja criado via scripts de pós-instalação, não será encontrado. 5. Transferência de Listas de Pacotes entre Sistemas Algumas vezes é necessário realizar um backup da lista de pacotes instalados nesse sistema e depois usar esse mesmo backup para se instalar um conjunto idêntico de pacotes numa outra máquina. 5.1 Exportação da Lista de Pacotes Para que seja possível replicar o conjunto de pacotes instalados num determinado sistema para outro é necessário que seja exportada a lista de pacotes. Para esse mesmo efeito é necessário o dpkg --get-selections, executar: dpkg --get-selections > ~/packagelist.txt
  14. 14. tutorfreebr.blogspot.com.br 14/16 Gerenciamento de Pacotes no Debian E tudo pronto para ser copiado para a segunda máquina. Também é possível realizar um backup da lista de sources e de todas as keys confiáveis, executar: mkdir ~/sources cp -R /etc/apt/sources.list* ~/sources Relativamente às keys confiáveis, o backup, deve ser realizado da seguinte forma, executar: apt-key exportall > ~/trusted_keys.txt Agora é possível transferir o arquivo packagelist.txt, o diretório das sources e o trusted_keys.txt. 5.2 Importar Lista de Pacotes Vamos imaginar que foi criado uma listagem de pacotes com “dpkg --get-selections” como o realizado acima, agora é possível importar os pacotes para outra máquina com a ajuda do dpkg. Primeiramente é necessário adicionar as keys e implementar a sources.list que foi copiada da primeira máquina. Assumindo que todos os dados dos quais foi realizado o backup foram devidamente copiados para o diretório “home” da nova máquina, executar: sudo apt-key add ~/trusted_keys.txt sudo cp -R ~sources/* /etc/apt/ Seguidamente devemos limpar todos os pacotes não essenciais nessa máquina. Este procedimento irá assegurar que se aplicarão todas alterações de uma forma completamente limpa. Para se realizar este procedimento é necessário realizar o procedimento como administrador, executar: sudo dpkg --clear-selections IMPORTANTE: todos os pacotes não essenciais vão ser marcados para serem desinstalados. É altamente recomendável a realização de um update à lista de pacotes locais para que a instalação possa ter os registros de todo o software que serão instalados. A atual instalação e o procedimento de upgrade ficará a cargo do dselect. O dselect deve estar instalado na máquina previamente. No entanto, vale lembrar que o dselect mantém a sua própria base de dados, por isso mesmo é necessário realizar o update antes, executar: sudo apt-get update Em seguida, executar: sudo apt-get install dselect sudo dselect update Seguidamente é possivel executar: sudo dpkg --set-selections <packagelist.txt> Para se aplicar as alterações é necessário realizar o dselect-upgrade, executar: sudo apt-get dselect-upgrade Será realizado o download e instalação de todos os pacotes necessários e ao mesmo tempo removerá todos os pacotes marcados como não selecionados. Por fim, a lista de pacotes tem de coincidir com a da máquina anterior, embora os arquivos de configuração devem ser necessários
  15. 15. tutorfreebr.blogspot.com.br 15/16 Gerenciamento de Pacotes no Debian copiar ou até modificar. 6. Adicionar Repositórios e PPAs Este é um tema que dá uma longa conversa e até motivo para algumas especulações, sendo que umas com mais fundamento que outras. O conjunto padrão de repositórios fornecidos pela maioria das distribuições de hoje contém no meu entendimento os pacotes suficientes para a grande maioria dos usuários exercerem um excelente trabalho. Existem momentos em que adicionar sources de “terceiros” pode ser a única opção, como no caso de drivers proprietários para algum hardware ou em alguma aplicação especial. 6.1 Adicionar PPAs Pessoalmente e para um sistema Debian like, NÃO aconselho a instalação de PPAs existentes, sem que previamente seja realizada uma análise criteriosa relacionada à equipa de desenvolvimento desse mesmo PPA. Além dos comentários de outros usuários relativos a questões de segurança e as implicações no sistema como um todo. Vale lembrar que os PPAs tiveram a sua gênese para a distribuição Ubuntu e NÃO para a distribuição Debian, apesar de o Ubuntu apresentar o mesmo formato de empacotamento (.deb), existem grandes diferenças em termos de filosofia. Para que seja possível adicionar determinado PPA é necessário o comando “add-apt-repository”, o qual tem de obedecer à sintaxe seguinte: sudo add-apt-repository endereçoDoPPA Seguidamente será solicitado que seja adicionado uma key para esse mesmo PPA e depois esse PPA será de imediato adicionado ao sistema. A partir desse momento é possível a instalação de toda e qualquer aplicação existente nesse mesmo repositório com a ajuda dos comandos normais do apt. Antes de ser realizada a pesquisa e/ou a instalação de um determinado pacote desse PPA, a cache local deve ser atualizada, para tal executar: sudo apt-get update NOTA: por norma, são sempre mais credíveis em termos de segurança as aplicações existentes nos repositórios oficiais da sua distribuição de trabalho, do que os repositórios de terceiros, ressalvando, como é obvio, todas as exceções peculiares como sejam: kernel e drivers proprietários, pois há um único fornecedor de cada um deles. Ao mesmo tempo, é importante que se diga, que nem sempre as aplicações mais recentes obedecem aos critérios reais em termos de performance e rentabilidade, mas cabe ao usuário fazer sua escolha. 6.2 Adicionar RepositóriosManualmente Neste ponto específico, até onde sei, duas abordagens diferentes e ambas válidas. A primeira dessas abordagens é precisamente editar a sources.list de forma direta, podendo ser editado o arquivo /etc/apt/sources.list ou colocar essa nova lista no diretório
  16. 16. tutorfreebr.blogspot.com.br 16/16 Gerenciamento de Pacotes no Debian /etc/apt/sources.list.d. Se formos optar pela segunda opção, o nome do arquivo a ser criado deve SEMPRE terminar em .list, executar: sudo nano /etc/apt/sources.list.d/novoRepositorio.list Dentro desse arquivo podemos adicionar a localização desse novo repositório, utilizando para tal a sintaxe seguinte, executar: deb url repositório NomeDaRelease component_names ONDE: deb (ou deb-src) -> identifica sempre o tipo de repositório, sendo que os repositórios convencionais são marcados como deb, enquanto os repositórios relativos às sources começam sempre com deb- src; url -> identifica a URL (Uniform Resource Location) principal para esse repositório, sendo esta por isso mesmo a localização desse repositório; release name (ou suite) -> por norma este é sempre o nome do código de lançamento relativo à distribuição, mas também pode ser qualquer outro nome para assim identificar um conjunto específico de pacote ou pacotes criados para a versão dessa distribuição. component names -> são as labels (man, contrib e non-free) para a seleção de pacotes que desejamos ter disponível. Muitas das vezes contém informações da equipe de manutenção desse repositório para assim informar sobre vários aspectos e como exemplo podem ser: confiança ou licenciamento restrito do software que ele contém. A segunda abordagem é via a utilização do comando add-apt-repository. Na distribuição Ubuntu se encontra definido como sendo padrão previamente. Em Debian, deve ser instalado com o pacote software-properties-common, então para Debian executar: sudo apt-get update sudo apt-get install software-properties-common O repositório deve se encontrar no mesmo formato que foi utilizado para a adição em modo manual: sudo add-apt-repository 'deb url release component' A cache local de pacotes deve ser sempre atualizada depois de ser aplicado qualquer atualização de repositórios para que dessa forma o sistema possa ter a noção dos novos pacotes disponíveis, executar: sudo apt-get update Concluindo… eu sei que existem excelentes GUIs, mas nem sempre oferecem as mais variadas funcionalidades que se deseja para os fins desejados. Mais e melhores informações neste link. Visite: tutorfreebr.blogspot.com.br

×