quinta-feira, 19 de fevereiro de 2015

Utilizando o gerenciador de pacotes urpm no Mageia

O urpm é o gerenciador de pacotes em modo texto padrão da distro Mageia, sua forma de uso é similar ao apt-get mas ele não é um clone do apt-get.
O urpm é compostos pelos comandos urpme, urpmi, urpmi.addmedia, urpmi.removemedia urpmi.update , urpmq e urpmf sendo que os dois últimos podem ser executados como usuário normal. Embora você possa fazer todas as operações de pacotes pelo CCM (Centro de Controle do Mageia) a administração diretamente pela linha de comando oferece um controle mais especifico do que você vai instalar e salvando a saída dos comandos sempre em uma arquivo tem uma possibilidade de fazer restauração do pacotes antigos caso as versões mais novas apresentarem algum tipo de bug que você venha notar depois de 2 dias após a instalação, já que você saberá quais pacotes foram removidos, substituídos e atualizados devido ao que você instalou.


Pesquisando um pacote para baixar

$ urpmq -y abiword

Nota o comando urpmq faz distinção de maiúscula e minuscula, para não fazer distinção use o flag -Y ( maiúsculo) no lugar do -y (minusculo)


Imprimindo a versão, 'release' e arquitetura, do pacote instalado ou não

$ urpmq -f xfce4-whiskermenu-plugin
xfce4-whiskermenu-plugin-1.2.2-1.mga4.i586

Listando os arquivos de um pacote instalado ou não 

$ urpmq -l xfce4-whiskermenu-plugin
$MIRRORLIST: media/core/release/media_info/20140129-225217-files.xml.lzma
/usr/bin/xfce4-popup-whiskermenu
/usr/lib/xfce4/panel/plugins/libwhiskermenu.so
/usr/share/doc/xfce4-whiskermenu-plugin
/usr/share/doc/xfce4-whiskermenu-plugin/CREDITS
/usr/share/doc/xfce4-whiskermenu-plugin/NEWS
---corte----

Listando as dependências do pacote instalado ou não

$ urpmq --requires xfce4-whiskermenu-plugin
--requires behaviour changed, use --requires-recursive to get the old behaviour
xfce4-panel
hicolor-icon-theme
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1.3)
libcairo.so.2
----corte---

Imprimindo um sumário do pacote

$ urpmq -S xfce4-clipman-plugin
xfce4-clipman-plugin : Clipboard history plugin for the Xfce panel ( 1.2.3-3.mga4 )


Verificando as informações de um pacote

$ urpmq -i sox
sem xml info para a mídia "Core Release", resultado parcial para o pacote sox
$MIRRORLIST: media/core/updates_testing/media_info/20141227-225832-info.xml.lzma
Name : sox
Version : 14.4.1
Release : 3.mga4
Group : Sound/Editors and Converters
Size : 210890 Architecture: i586
Summary : A general purpose sound file conversion tool
Name : sox
Version : 14.4.1
Release : 3.mga4
Group : Sound/Editors and Converters
Size : 210890 Architecture: i586
Source RPM : sox-14.4.1-3.mga4.src.rpm
URL : http://sox.sourceforge.net/
Summary : A general purpose sound file conversion tool
Description :
SoX (Sound eXchange) is a sound file format converter for Linux,
UNIX and DOS PCs. The self-described 'Swiss Army knife of sound
tools,' SoX can convert between many different digitized sound
formats and perform simple sound manipulation functions,
including sound effects.

Install the sox package if you'd like to convert sound file formats
or manipulate some sounds.

Listando os nomes de todos os pacotes disponíveis

$ urpmq --list

Para salvar em um arquivo faça: urpmq --list > pacotes.txt


Verificando para que serve um pacote

$ urpmf --summary lame
libtwolame0:TwoLAME MP2 encoding library
wmfire:A dock application that display CPUs usage and more as flames
twolame:Optimized MPEG Audio Layer 2 (MP2) encoder
libtwolame-devel:Header files for TwoLAME library
libtwolame0:TwoLAME MP2 encoding library
wmfire:A dock application that display CPUs usage and more as flames
flamerobin:Graphical client for Firebird
gstreamer0.10-twolame:GStreamer plug-in for MP2 encoding support
vlc-plugin-twolame:MP2 encoder plugin for VLC
gstreamer1.0-twolame:GStreamer plug-in for MP2 encoding support
vlc-plugin-twolame:MP2 encoder plugin for VLC
libquicktime-lame:Libquicktime plugin supporting the MP3 codec
lame:LAME Ain't an MP3 Encoder
liblame0:Main library for lame
liblame-devel:Headers for developing programs that will use libmp3lame
gstreamer0.10-lame:GStreamer plug-in for encoding mp3 songs using lame
gstreamer0.10-twolame:GStreamer plug-in for MP2 encoding support
vlc-plugin-twolame:MP2 encoder plugin for VLC
gstreamer1.0-lame:GStreamer plug-in for encoding mp3 songs using lame
gstreamer1.0-twolame:GStreamer plug-in for MP2 encoding support
vlc-plugin-twolame:MP2 encoder plugin for VLC

Veja que aqui ele exibi a descrição de todos os pacotes que contenha lame na parte do nome.
Se o mesmo pacote existir em mais de um repositório, ele será exibido mais de uma vez.

Para reduzir o número de linhas que contenha lame, você deve especificar o nome mais completo possível do pacote como abaixo.

$ urpmf --summary vlc-plugin-twolame
vlc-plugin-twolame:MP2 encoder plugin for VLC
vlc-plugin-twolame:MP2 encoder plugin for VLC
vlc-plugin-twolame:MP2 encoder plugin for VLC
vlc-plugin-twolame:MP2 encoder plugin for VLC

Aqui ele listou 4 vezes o mesmo pacote especificado, porque o mesmo pacote existe em 4 repositórios diferentes que estão ativados para download.

Verificando o tamanho de um pacote de instalação

$ urpmf --size lame
libtwolame0:121524
twolame:37808
libtwolame-devel:452014
libtwolame0:121524
flamerobin:2928392
gstreamer0.10-twolame:27892
vlc-plugin-twolame:13311
gstreamer1.0-twolame:27884
vlc-plugin-twolame:13311
libquicktime-lame:15144
lame:353445
liblame0:292885
liblame-devel:963741
gstreamer0.10-lame:53516
gstreamer0.10-twolame:27892
vlc-plugin-twolame:13311
gstreamer1.0-lame:27700
gstreamer1.0-twolame:27884
vlc-plugin-twolame:13311

Verificando para que serve um pacote

$ urpmf --summary termcap
mingw64-termcap:MinGW terminal feature database
mingw32-termcap:MinGW terminal feature database
mingw64-termcap-static:Static version of the cross compiled termcap library
mingw32-termcap-static:Static version of the cross compiled termcap library

Listando os pacotes de um grupo de instalação, por exemplo games

$ urpmf --group games
libkdegames6:System/Libraries
kdegames4:Graphical desktop/KDE
libkdegames-common:Graphical desktop/KDE
gnome-games:Games/Other
libkdegamesprivate1:System/Libraries
---corte----


Procurando um arquivo em todos os pacotes

$ urpmf wine |more

Este comando procura por wine em todos os pacotes, exibindo o nome completo dele e caminho do arquivo no pacote que está instalado ou não.

Nota que o comando exibirá todos os pacotes que tiver descrição ou possuir wine em qualquer parte do nome do pacote e não somente do pacote de nome wine, e que tiver o nome wine dentro de um pacote qualquer mesmo que no nome do pacote não tenha wine.

Outro exemplo:
$ urpmf wine.png (idem acima)


Instalando um pacote

# urpmi abiword

Instalando um pacote sem fazer a limpeza automática do cache

Use a opção --noclean
# urpmi --noclean abiword

Nota:

Os pacotes que tiverem no DVD de instalação não ficará salvo em /var/cache/urpmi/rpms sendo instalado diretamente do DVD sem fazer cache, mesmo que você instalar diretamente em linha de comando com o urpmi usando --noclean, sendo este procedimento válido apenas para os pacotes baixado da Internet.

Instalando vários pacotes para instalação em apenas uma linha de comando

# urpmi --noclean audacious audacious-skins audacious-plugins


Removendo um pacote

# urpme firefox


Removendo pacotes órfãos

# urpme --auto-orphans
Para satisfazer as dependências, os seguintes 12 pacotes serão removidos (11MB):
(pacotes órfãos)
indexhtml-1-10.1.mga4.noarch
libproxy-webkit-0.4.11-5.mga4.i586
libproxy1-0.4.11-5.mga4.i586
----corte----

Limpando o cache do urpmi manualmente

# urpmi --clean

Nota:
Se você executar o comando acima dentro do diretório /var/cache/urpmi/rpms será retornado o erro:
cannot remove path when cwd is /var/cache/urpmi/rpms for /var/cache/urpmi/rpms: at /usr/lib/perl5/vendor_perl/5.18.1/urpm/sys.pm line 361.

A solução é bem simples, basta sair do diretório /var/cache/urpmi/rpms e executar novamente o comando citado que a limpeza do cache funcionará.


Onde fica o cache dos pacotes baixado da internet pra posterior instalação ?

O cache fica em /var/cache/urpmi/rpms mas todos os pacotes baixado são excluídos automaticamente por padrão após a instalação dos mesmos seja por programa gráfico ou em linha de comando caso não seja marcado para não limpar o cache ou se não especificar a opção --noclean em linha de comando ou se você não configurou o mesmo para não deletar automaticamente os pacotes depois de instalados.

Atualizando a base dados

# urpmi.update -a

Repositórios

Listando todos repositórios disponíveis ativados ou não

$ urpmq --list-media
Core Release
Nonfree Release

No exemplo acima está somente com os repositórios da mídia de DVD de instalação pois ainda não tinha sido adicionando repositórios da internet através do CCM.


Agora no exemplo abaixo é depois que cadastrei os repositórios da internet também

$ urpmq --list-media
Core Release (os padrão da instalação que está na mídia de DVD)
Nonfree Release (os padrão da instalação que está na mídia de DVD)
Core Release (distrib1)
Core Release Debug (distrib2)
Core Updates (distrib3)
Core Updates Debug (distrib4)
Core Updates Testing (distrib5)
Core Updates Testing Debug (distrib6)
Core Backports (distrib7)
Core Backports Debug (distrib8)
Core Backports Testing (distrib9)
Core Backports Testing Debug (distrib10)
Nonfree Release (distrib11)
Nonfree Release Debug (distrib12)
Nonfree Updates (distrib13)
Nonfree Updates Debug (distrib14)
Nonfree Updates Testing (distrib15)
Nonfree Updates Testing Debug (distrib16)
Nonfree Backports (distrib17)
Nonfree Backports Debug (distrib18)
Nonfree Backports Testing (distrib19)
Nonfree Backports Testing Debug (distrib20)
Tainted Release (distrib21)
Tainted Release Debug (distrib22)
Tainted Updates (distrib23)
Tainted Updates Debug (distrib24)
Tainted Updates Testing (distrib25)
Tainted Updates Testing Debug (distrib26)
Tainted Backports (distrib27)
Tainted Backports Debug (distrib28)
Tainted Backports Testing (distrib29)
Tainted Backports Testing Debug (distrib30)


Esta lista é de todos os repositórios disponíveis, mas não necessariamente que todos eles estejam já ativados no seu banco de dados do urpmi para baixar pacotes.

Listando as mídias disponíveis e suas url's.

Opção --list-url


$ urpmq --list-url
Core Release cdrom://i586/media/core
Nonfree Release cdrom://i586/media/nonfree
Core Release (distrib1) http://ftp.las.ic.unicamp.br/pub/mageia/distrib/4/i586/media/core/release
Core Release Debug (distrib2)
Core Updates (distrib3) http://ftp.las.ic.unicamp.br/pub/mageia/distrib/4/i586/media/core/updates
Core Updates Debug (distrib4) http://ftp.las.ic.unicamp.br/pub/mageia/distrib/4/i586/media/debug/core/updates
Core Updates Testing (distrib5)
Core Updates Testing Debug (distrib6)
Core Backports (distrib7)
Core Backports Debug (distrib8)
Core Backports Testing (distrib9)
Core Backports Testing Debug (distrib10)
Nonfree Release (distrib11) http://ftp.las.ic.unicamp.br/pub/mageia/distrib/4/i586/media/nonfree/release
Nonfree Release Debug (distrib12)
Nonfree Updates (distrib13) http://ftp.las.ic.unicamp.br/pub/mageia/distrib/4/i586/media/nonfree/updates
Nonfree Updates Debug (distrib14)
Nonfree Updates Testing (distrib15)
Nonfree Updates Testing Debug (distrib16)
Nonfree Backports (distrib17)
Nonfree Backports Debug (distrib18)
Nonfree Backports Testing (distrib19)
Nonfree Backports Testing Debug (distrib20)
Tainted Release (distrib21)
Tainted Release Debug (distrib22)
Tainted Updates (distrib23) http://ftp.las.ic.unicamp.br/pub/mageia/distrib/4/i586/media/tainted/updates
Tainted Updates Debug (distrib24)
Tainted Updates Testing (distrib25)
Tainted Updates Testing Debug (distrib26)
Tainted Backports (distrib27)
Tainted Backports Debug (distrib28)
Tainted Backports Testing (distrib29)
Tainted Backports Testing Debug (distrib30)


As mídias que contiver o caminho completo do repositório da Internet e do DVD de instalação (cdrom://i586/caminho) são as que estão adicionados a base de dados do urpmi para baixar pacotes e as outras que não tem o caminho são apenas repositórios disponíveis mas que não foram adicionados e portanto nada será baixado deles.

Listando somente os nomes dos repositórios ativados para download

$ urpmq --list-media active
Core Release
Nonfree Release
Core Release (distrib1)
Core Updates (distrib3)
Core Updates Testing (distrib5)
Nonfree Release (distrib11)
Nonfree Updates (distrib13)
Tainted Release (distrib21)
Tainted Updates (distrib23)


Este comando lista somente os repositórios ativos que foi configurado para fazer download de pacotes.

Pesquisando a url completa dos repositórios que tem um pacote desejado

Quero saber quais repositórios tem o pacote mencoder ?

$ urpmq --sources mencoder
cdrom://i586/media/core/mencoder-1.1.1-3.r36361.1.mga4.i586.rpm
ftp://ftp.las.ic.unicamp.br/pub/mageia/distrib/4/i586/media/core/release/mencoder-1.1.1-3.r36361.1.mga4.i586.rpm
ftp://ftp.las.ic.unicamp.br/pub/mageia/distrib/4/i586/media/core/updates/mencoder-1.1.1-3.r36361.3.mga4.i586.rpm
ftp://ftp.las.ic.unicamp.br/pub/mageia/distrib/4/i586/media/tainted/release/mencoder-1.1.1-3.r36361.1.mga4.tainted.i586.rpm

Como vemos acimas 5 repositórios contém o pacote mencoder, o da mídia do DVD de instalação (core) e o (core release) na internet ambos com a mesma versão do pacote.
Já as mídias (core updates, tainted release e tainted updates) contém uma versão mais nova do pacote mencoder que normalmente contém correções de varios bugs ou pode apresentar outros tipos de bugs.

Se eu não especificar a fonte do repositório por padrão ele irá instalar de tainted updates pois este contém a versão mais recente neste caso.

Instalando um pacote de um repositório especifico

Eu quero instalar a versão original que está em core release pois eu não estou com o DVD em mãos.
Você deve especificar a url completa do repositório juntamente com o seu nome, como abaixo.

# urpmi ftp://ftp.las.ic.unicamp.br/pub/mageia/distrib/4/i586/media/core/release/mencoder-1.1.1-3.r36361.1.mga4.i586.rpm



Configurações do urpm

Desativando os repositórios do CD/DVD de instalação via linha de comando

Você nem sempre tem o CD/DVD em mãos e se os mesmos pacotes tem na Internet, para que ter o trabalho de pegar a mídia já que você está conectado. Por padrão se o mesmo pacote contiver na mídia de CD/DVD e na Internet e não existe uma nova atualização do mesmo, o urpmi somente instalará a partir da mídia de CD/DVD. Para desativar isto vamos colocar a opção ignore abaixo da mídia editando o arquivo /etc/urpmi/urpmi.cfg .
Os repositórios que tiver ignore abaixo do nome dele estão desativados na base de dados, mas continuam cadastrado, apenas não serão baixados nada deles.
Devem seguir o mesmo tipo de linha e alinhamento das outras linhas deste arquivo.

Para isto edite o arquivo /etc/urpmi/urpmi.cfg

Core\ Release cdrom://i586/media/core {
ignore
key-ids: 80420f66
}

Nonfree\ Release cdrom://i586/media/nonfree {
ignore
key-ids: 80420f66
}


Depois para atualizar
# urpmi.update -a



Onde configuro para que não seja limpado automaticamente o cache de pacotes instalados em /var/cache/urpmi/rpms ?

No arquivo /etc/urpmi/urpmi.cfg coloque a linha post-clean: 0 entre as 2 primeiras chaves iniciais.
Exemplo:

Antes:
{
}

Core\ Release cdrom://i586/media/core {
key-ids: 80420f66
}

Nonfree\ Release cdrom://i586/media/nonfree {
key-ids: 80420f66
}

******* Depois com a opção post-clean: 0 ********

{
post-clean: 0
}

Core\ Release cdrom://i586/media/core {
key-ids: 80420f66
}

Nonfree\ Release cdrom://i586/media/nonfree {
key-ids: 80420f66
}


Pronto, não precisa fazer nem a atualização da base de dados do urpmi ou outra atualização que quando você baixar um pacote o mesmo não mais será excluído automaticamente.



Evitando que um pacote seja atualizado pelo urpmi

Para fazer que um pacote não seja atualizado pelo urpmi, basta incluir o nome do mesmo no arquivo
/etc/urpmi/skip.list.

Por exemplo, como eu tive muitos problemas com pulseaudio, onde com as atualizações de pacotes referentes ao sistema de som, o som não funcionava, então resolvi colocar tudo referente ao drivers de som no arquivo /etc/urpmi/skip.list.

# Here you can specify the packages that won't be upgraded automatically
# for example, to exclude all apache packages :
# /^apache/
/^pulseaudio/
/^libpulse/
/^alsa/
/^libalsa/

Pronto agora posso instalar qualquer programa que utilize a placa de som como jogos, players de vídeo e áudio, sem que os drivers de som sejam atualizados quando eu instalo estes tipos de pacotes.

Comando rpm

Salvando a lista dos pacotes instalados em um arquivo:

$ rpm -qa | sort > pacotes.txt


Salvar a lista dos pacotes instalados em um arquivo sem os números de versão:

$ rpm -qa --queryformat '%{name}\n' | sort > mesrpm.txt

Procurando todos pacotes instalados que tenha racer no nome

$ rpm -qa | grep -i racer

Visualizado todos os arquivos do pacote instalado

$ rpm -qil extremetuxracer-0.6.0-2.mga4



Nenhum comentário:

Postar um comentário