Mostrando postagens com marcador yum. Mostrar todas as postagens
Mostrando postagens com marcador yum. Mostrar todas as postagens

domingo, 8 de julho de 2012

Atualizando as principais distros Linux

Existem dezenas de distribuições Linux, entretanto a grande maioria são baseadas nas quatro principais, Slackware, Debian, Suse e Red Hat, herdando as principais características e funcionalidades. Demonstrar o modo de operação destas quatro distros já é suficiente para abranger quase todas.

Uma das grandes características das distribuições Linux está na funcionalidade de atualização de todo o sistema. Independente do formato do pacote adotado, seja .rpm, .deb ou .txz, as distros dispõem de ferramentas que gerenciam a base de pacotes instalada. Cada distribuição, dentre as quatro base, terão ferramentas distintas para esta operação.

Apenas pela linha de comando, é possível executar esta atualização geral do sistema, substituindo os pacotes antigos por versões novas. A seguir veremos as particularidades de cada uma delas e os respectivos comandos básicos:

Red Hat, Fedora, CentOS:

Estas distribuições utilizam a ferramenta YUM no processo e usam o formato RPM nos pacotes. As configurações ficam no arquivo "/etc/yum.conf" e no diretório "/etc/yum.repos.d/". Para atualizar os pacotes instalados, execute o comando a seguir:

# yum update


Debian, Ubuntu:

Estas duas distros e suas descendentes, utilizam as ferramentas apt-get ou aptitude, em comandos semelhantes, e usam o formato DEB nos pacotes. As configurações de repositórios ficam no arquivo "/etc/apt/sources.list". Para atualizar os pacotes instalados, execute os comandos:

# apt-get update
# apt-get upgrade


openSUSE:

O openSUSE utiliza na linha de comando a ferramenta Zypper e usa o formato RPM nos pacotes. As configurações ficam no arquivo "/etc/zypp/zypper.conf". Para atualizar os pacotes instalados, execute os comandos:

# zypper list-updates
# zypper update


Slackware:

O Slackware utiliza na linha de comando a ferramenta slackpkg e usa o formato TXZ nos pacotes. As configurações de repositórios ficam no arquivo "/etc/slackpkg/mirrors". Para atualizar os pacotes instalados, execute os comandos:

# slackpkg update
# slackpkg check-updates
# slackpkg install-new
# slackpkg upgrade-all


O procedimento de atualização envolve primeiro atualizar a lista dos pacotes fornecidos pelos repositórios, para o sistema saber o que há de novo, e então atualizar os pacotes instalados por novos pacotes. Os comandos foram apresentados em ordem. A ferramenta YUM faz isto em apenas um comando, nas outras são necessários dois ou mais comandos.

Os comandos apresentados neste artigo são para uma atualização dos pacotes dentro da mesma versão da distribuição. É possível também atualizar os pacotes de modo que atualize a versão da distribuição, por exemplo de Debian 5 para Debian 6. Os comandos para este procedimento não estão demonstrados neste artigo.

Apenas o superusuário (root) tem a permissão para executar estes comandos, um usuário comum não é capaz de atualizar o sistema.

sexta-feira, 29 de junho de 2012

RPM Package Manager e Yellow dog Updater Modified

O "RPM Package Manager" é um sistema de gerenciamento de pacotes para distribuições Linux desenvolvido originalmente pela Red Hat. Um sistema de gerenciamento de pacotes tem o propósito de automatizar o processo de instalação, atualização e remoção de softwares em um sistema operacional.

Um pacote serve para distribuir um software, que pode estar compilado ou não, mas um software pode ser distribuído em mais de um pacote, ou seja, não necessariamente em um único pacote. Os softwares fornecidos para o Fedora, CentOS, RHEL e descendentes são empacotados pelo RPM Package Manager e utilizam a extensão .rpm.

O arquivo de um pacote RPM possui o seguinte formato para seu nome:

<nome>-<versão>-<lançamento>.<arquitetura>.rpm

Um software sempre é compilado para determinada arquitetura, por exemplo i386, i686, x86_64 etc. Sua extensão indica para qual arquitetura ele é compatível. Por exemplo "firefox-3.6.13-1.fc13.x86_64.rpm". O código fonte de um software também pode ser distribuído em pacote RPM, sua arquitetura recebe o nome src, como "firefox-3.6.13-1.fc13.src.rpm".

Os pacotes RPM que possuem a extensão noarch.rpm referem-se a pacotes que não dependem de determinada arquitetura de computador, ou seja, podem ser instalados em qualquer uma. Por exemplo, são os pacotes com arquivos de imagens, audio etc., ou softwares que serão interpretados, scripts etc.

O pacote RPM traz, em um único arquivo, o software compactado e um rótulo com diversas informações, que incluem nome, versão e descrição. O conteúdo a seguir é o retorno do comando "rpm -qpi <pacote>":

Name        : firefox                            Relocations: (not relocatable)
Version     : 3.6.13                             Vendor: Fedora Project
Release     : 1.fc13                             Build Date: Qui 09 Dez 2010 13:04:06 BRST
Install Date: Sex 10 Dez 2010 23:42:53 BRST      Build Host: x86-17.phx2.fedoraproject.org
Group       : Applications/Internet              Source RPM: firefox-3.6.13-1.fc13.src.rpm
Size        : 18060708                           License: MPLv1.1 or GPLv2+ or LGPLv2+
Signature   : RSA/SHA256, Qui 09 Dez 2010 20:53:23 BRST, Key ID 7edc6ad6e8e40fde
Packager    : Fedora Project
URL         : http://www.mozilla.org/projects/firefox/
Summary     : Mozilla Firefox Web browser
Description :
Mozilla Firefox is an open-source web browser, designed for standards
compliance, performance and portability.



Para que um pacote possa ser instalado, o sistema deve conter os pré-requisitos para o pacote. São as dependências do pacote. Uma dependência proporciona um modo de um pacote requerer outros pacotes, instalados previamente ou simultaneamente, para ser possível sua instalação. Quando tenta-se instalar um pacote e os pré-requisitos para ele estão incompletos, o gerenciador de pacotes retorna uma mensagem e não instala o pacote.

O Fedora, o CentOS e o RHEL utilizam essencialmente duas ferramentas para gerenciar os pacotes em linha de comando, o RPM Package Manager e o YUM (Yellow dog Updater, Modified), este desenvolvido por terceiros e compatível com o sistema de gerenciamento RPM.

O RPM é uma ferramenta simples e direta, para instalar, atualizar ou remover pacotes e realizar pesquisas na base de pacotes instalados. O YUM é uma ferramenta automática, também para instalar, atualizar ou remover pacotes, porém, capaz de localizar as dependências e instalá-las quando necessário. Com o YUM é possível consultar os repositórios de softwares para procurar por determinado pacote ou até atualizar todo o sistema.

Com as ferramentas RPM e YUM podemos realizar diversas operações com os pacotes. No artigo "Guia de referência cruzada dos gerenciadores de pacotes" (http://dan-scientia.blogspot.com.br/2009/10/guia-de-referencia-cruzada-dos.html) publiquei uma tabela comparativa dos comandos entre os principais gerenciadores de pacotes, as principais operações estão listadas lá, juntamente com os comandos.

O sistema de gerenciamento de pacotes RPM mantém no sistema operacional um banco de dados dos pacotes. Este banco, local, guarda informações sobre todos os pacotes instalados no sistema. O banco de dados RPM fica armazenado no diretório "/var/lib/rpm/" e pode conter arquivos, como a listagem a seguir:

Basenames           Packages
Conflictname        Providename
__db.001            Provideversion
__db.002            Pubkeys
__db.003            Requirename
Dirnames            Requireversion
Filemd5s            Sha1header
Group               Sigmd5
Installtid          Triggername
Name

A ferramenta YUM também utiliza o banco de dados RPM, entretanto, o YUM é capaz de consultar repositórios mantidos em servidores acessados pela Internet. Através desta consulta o YUM consegue localizar os pacotes que serão instalados no sistema local, não só o pacote principal mas também suas dependências.

As configurações para acesso à repositórios ficam no arquivo "/etc/yum.conf" ou em arquivos separados, no diretório "/etc/yum.repos.d/". Uma parte do conteúdo do arquivo "/etc/yum.repos.d/fedora-updates.repo" é exibida a seguir:

[updates]
name=Fedora $releasever - $basearch - Updates
failovermethod=priority
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch


Instalação, atualização ou remoção de um software no sistema Linux é extremamente simples, desde que o software esteja devidamente empacotado. Estas ferramentas são muito eficazes. Existem interfaces gráficas para estas ferramentas, facilitando ainda mais. O sistema de gerenciamento de pacotes é, talvez, uma das características que torna o Linux superior aos outros sistemas operacionais.

segunda-feira, 25 de junho de 2012

Prioridades entre os repositórios no Yum

Nas distribuições Linux que usam o gerenciador de pacotes Yum, isto inclui o Fedora e o CentOS, existe um plugin para o Yum que permite ordenar em prioridade os repositórios de pacotes. Esta extensão para o Yum faz com que um pacote de repositório com baixa prioridade não substitua o pacote instalado de um repositório com alta prioridade, mesmo que seja de uma versão maior.

No CentOS este plugin passa a ser bem interessante, porque nesta distribuição são necessários muitos repositórios de terceiros para complementar a oferta de softwares e é comum o conflito de pacotes entre eles. Como a distro Fedora está bem servida com o repositório RPM Fusion, não é tão necessário mais repositórios, reduzindo o risco de conflitos. O pacote yum-plugin-priorities é fornecido pelos repositórios oficiais destas duas distros.

Para instalar o pacote deste plugin, execute o comando:

# yum install yum-plugin-priorities

A configuração do plugin se dá pelo arquivo "/etc/yum/pluginconf.d/priorities.conf", basicamente com a edição da linha "enabled = 1", onde o valor 1 habilita a ação do plugin. Em seguida é preciso editar cada arquivo .repo, localizados em "/etc/yum.repos.d/", incluindo a seguinte linha em cada seção:

priority=N

No lugar de N coloca-se um valor entre 1 (maior prioridade) a 99 (menor prioridade). Usualmente classifica-se os repositórios oficiais com prioridade maior e os repositórios de terceiros com prioridade menor. O importante é não dar a mesma prioridade para repositórios que onde ocorram conflito de pacotes, principalmente entre os repositórios de terceiros. Escolha um para prevalecer, faça uma distribuição dos valores.

Um exemplo de um trecho do arquivo "/etc/yum.repos.d/CentOS-Base.repo", editado com as linhas "priority=N":

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=1

[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=1

Este controle de prioridades é importante pois o Yum sempre atualiza o pacote por uma versão maior, independente de qual repositório está vindo este novo pacote. E um pacote fornecido por terceiro pode não estar plenamente compatível com os demais pacotes instalados. Por isso a prioridade deve ser dos pacotes oficiais e de repositórios não conflitantes.

sexta-feira, 18 de fevereiro de 2011

YUM através de servidor proxy

O YUM é um gerenciador de pacotes interativo do Fedora. Por padrão, o YUM acessa repositórios de rede com HTTP. Para que o YUM, acesse a Internet através de um servidor proxy e, se for o caso, com autenticação de usuário, é necessário especificar os detalhes do servidor proxy no arquivo '/etc/yum.conf'.

Basicamente, adicione estas três opções na seção [main] do arquivo '/etc/yum.conf':

proxy=http://endereço:porta
proxy_username=usuário
proxy_password=senha

Por exemplo:

proxy=http://10.78.0.254:8080
proxy_username=fulano
proxy_password=1234

Com a configuração do proxy em '/etc/yum.conf', todos os usuários conectarão ao servidor proxy com essas informações quando usarem o YUM.

Todas as operações HTTP do YUM usam HTTP/1.1 e são compatíveis com servidores proxy que suportam esse padrão. As configurações do HTTP podem ser modificadas para compatibilidade com servidores proxy não padrões. Outra alternativa é configurar o YUM para usar um servidor proxy FTP e acessar repositórios que suportam FTP. Os repositórios do Fedora suportam tanto HTTP quanto FTP. Para configurações específicas, consulte a página manual do yum.conf.

segunda-feira, 14 de fevereiro de 2011

Adicionando o repositório Fusion no Fedora

O Fedora, em sua instalação, já traz pré-configurado os seus repositórios oficiais de pacotes originais e de atualização. Contudo, é possível adicionar repositórios extras na ferramenta YUM e assim tornar disponível outros softwares para instalação.

O principal repositório extra de software para o Fedora é o RPM Fusion (http://rpmfusion.org/), mantido por voluntários. O RPM Fusion fornece os softwares que o Projeto Fedora ou a Red Hat não tem interesse em fornecê-los. É uma extensão ao repositório oficial do Fedora.

Os softwares são fornecidos em pacotes RPM pré-compilados para todas as versões ativas do Fedora. O RPM Fusion é uma fusão dos repositórios Dribble, Freshrpms, e Livna. Seu objetivo é simplificar a localização dos softwares para um único lugar.

O RPM Fusion divide os softwares em duas categorias: gratuitos e não gratuitos. Os softwares gratuitos são os 100% livres, por exemplo os softwares com licença GPL. Os softwares não gratuitos são os softwares de licença proprietária mas que podem ser distribuídos, por exemplo alguns drivers de placas de vídeo.

Para instalar no Fedora, de uma única vez, com um único comando, as configurações do RPM Fusion no YUM, execute o comando abaixo:

# yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

sexta-feira, 30 de outubro de 2009

Guia de referência cruzada dos gerenciadores de pacotes

Cada distribuição Linux adota um gerenciador de pacotes específico, os mais utilizados são as duplas deb/apt e rpm/yum.

Segue uma tabela de equivalência dentre alguns comandos destes gerenciadores. Os espaços em branco são para indicar ou a inexistência do comando ou o comando ainda não é conhecido por mim.

Por favor, quem souber mais, poste os comandos que faltam ou a correção para algum deles. Esta postagem será atualizada com frequência, assim que eu receber algo novo.

Data da última atualização: 30/10/2009
http://dan-scientia.blogspot.com/2009/10/guia-de-referencia-cruzada-dos.html






















































 dpkgrpmaptyum
SignificadoDebian PackageRPM Package Manager Advanced Packaging ToolYellow dog Updater, Modified
Extensão do pacote*.deb*.rpm*.deb*.rpm
Distros que adotam o empacotamentoDebian, Ubuntu, Linux Mint, KnoppixRed Hat, Fedora, Suse, CentOS, Mandriva, Yellow Dog, LinpusDebian, Ubuntu, Linux Mint, KnoppixRed Hat, Fedora, Suse, CentOS, Mandriva, Yellow Dog, Linpus
Configuração dos repositórios   /etc/apt/sources.list/etc/yum.conf ou /etc/yum.repos.d/
     
TarefaComando   
Instalar pacote do localdpkg -i <pacote>rpm -i <pacote> yum localinstall <pacote>
Atualizar pacote do local rpm -U <pacote> yum localupdate <pacote>
Atualizar pacote do repo   yum update <pacote>
Atualizar pacote se estiver instalado  rpm -F <pacote>  
Instalar pacote do repo  apt-get install <pacote>yum install <pacote>
Instalar grupo de pacotes   yum groupinstall <grupo>
Reinstalar um pacote   yum reinstall <pacote>
Atualizar grupo de pacotes   yum groupupdate <grupo>
Remover pacotedpkg -r <pacote>rpm -e <pacote>apt-get remove <pacote>yum remove <pacote>
Remover pacotes órfãos   package-cleanup --orphans
Remover pacotes solitários   package-cleanup --leaves
Remover grupo de pacotes   yum groupremove <grupo>
Listar arquivos do pacote instaladodpkg -L <pacote>rpm -ql <pacote> 
Listar arquivos do pacote não instaladodpkg-deb -c <pacote> rpm -qpl <pacote>  
Mostrar informações do pacote instaladodpkg -s <pacote>rpm -qi <pacote>apt-cache show <pacote>yum info <pacote>
Mostrar informações do pacote não instalado rpm -qpi <pacote>apt-cache show <pacote>yum info <pacote>
Mostrar novidades da versão do pacote  rpm -q --changelog <pacote>apt-listchanges <pacote> 
Mostrar detalhes sobre um grupo de pacotes   yum groupinfo <grupo>
Extrair arquivo do pacotedpkg-deb --extract <pacote>rpm2cpio <pacote>|cpio -vid  
Listar todos os pacotes instaladosdpkg -lrpm -qa yum list installed
Listar todos os pacotes disponíveis  apt-cache pkgnamesyum list
Listar os grupos de pacotes disponíveis   yum grouplist
Verificar integridade do pacote rpm -K <pacote>  
Verificar integridade dos arquivos instalados do pacote rpm -V <pacote>  
Verificar integridade dos arquivos instalados de todos os pacotesdebsumsrpm -Va  
Mostrar qual pacote pertence o arquivodpkg -S <arquivo>rpm -qf <arquivo>apt-file search <arquivo>yum provides <arquivo>
Listar todos os arquivos que acompanham o arquivo no pacote rpm -qdf <arquivo>  
Mostrar as dependências do pacote rpm -qpR <pacote>apt-cache depends <pacote>yum deplist <pacote>
Mostrar os pacotes que dependem do pacote rpm -q --whatrequires apt-cache rdepends <pacote>yum resolvedep <dependência>
Procurar expressão em pacotes do repositório  apt-cache search <expressão>yum search <expressão>
Procurar pacotes nos repositórios    
Exibir os repositórios de software configurados   yum repolist
Atualizar lista de pacotes dos repositórios  apt-get update(o yum faz automaticamente a cada uso)
Verificar novas atualizações   apt-get -s upgradeyum check-update
Atualizar pacotes  apt-get upgradeyum update
Atualizar todo o sistema  apt-get dist-upgrade yum upgrade
Remover pacote do cache local  apt-get cleanyum clean packages
Remover somente pacotes obsoletos do cache local  apt-get autoclean 
Remover cabeçalhos do cache local  apt-file purgeyum clean headers
Remover cabeçalhos obsoletos do cache local   yum clean oldheaders
Remover pacotes e cabeçalhos do cache local   yum clean all
Mostrar estado do cache  apt-cache stats