Esse
Arch Linux cada vez me surpreendendo mais. No Debian, quando preciso instalar um pacote de uma máquina em outra, e não consta no repositório oficial por estar desatualizado ou por outro motivo, faço uso do dpkg-repack para reempacotar o programa que preciso.
No Arch Linux, onde as atualizações são frequentes, isso também é passível de acontecer. Para que não fiquemos na mão foi criado o programa "
repacman". Curioso que sou, ao adicionar o repositório onde encontra-se o yaourt dei uma checada no que ele disponibilizava e achei esta ferramenta bacana.
Para instalar o repacman adicionamos o repositório abaixo no arquivo
/etc/pacman.conf:
# i686
[archlinuxfr]
Server = http://repo.archlinux.fr/i686
# amd64
[archlinuxfr]
Server = http://repo.archlinux.fr/x86_64
E instalamos com:
$ sudo pacman -S repacman
Ou faremos à maneira clássica:
$ wget -c http://aur.archlinux.org/packages/repacman/repacman.tar.gz
$ tar -zxvf repacman.tar.gz
$ cd repacman/
$ sudo makepkg --asroot
$ sudo pacman -U repacman-0.98-1-any.pkg.tar.xz
Utilização:
A sintaxe é pra lá de simples, basta como usuário normal digitar:
$ repacman nome-do-pacote
Não é tão poderoso quanto o dpkg-repack, onde posso inserir vários pacotes num só comando, mas quebra um galhão.
Um abraço a todos!
[1] Comentário enviado por
edps em 20/05/2010 - 19:04h:
CORREÇÃO A COMENTÁRIO NA DICA:
Corrigindo o comentário: " Não é tão poderoso quanto o dpkg-repack, onde posso inserir vários pacotes num só comando, ... "
Retifico, dizendo que não só é possível como é muito prático, crie um script com o seguinte conteúdo
Nota 1: no script toda a instalação será reempacotada e todos os arquivos gerados terão o formato .tar.gz, para reinstalar use:
sudo pacman -U nome-do-pacote.tar.gz ou
sudo pacman -U *.tar.gz ### [ainda não testado]
Nota 2: os comentários são opcionais no script, remova-os se desejar.
#!/bin/bash
echo ""
echo "reempacotando os pacotes instalados no Arch Linux"
echo ""
sleep 2
echo "criarei uma pasta chamada repacman no seu diretório $HOME"
echo ""
sleep 2
echo "será gerado um arquivo chamado packages.lst dentro da pasta citada"
echo ""
sleep 2
echo "usarei o xargs e redirecionarei para o repacman!"
echo ""
sleep 2
mkdir repacman
cd repacman/
sudo pacman -Qq > packages.lst && cat $HOME/repacman/packages.lst | xargs -l1 repacman
echo "removerei agora o arquivo packages.lst"
echo ""
sleep 2
rm -f $HOME/repacman/packages.lst
echo "concluído!"
echo ""
exit 0
[2] Comentário enviado por
Nilodanx52 em 21/05/2010 - 00:07h:
muitooo show cara!!! parebéns!!! num vi isso aki hehe se soubece eu ja teria feito milagres no pc dos outros!!!! aoksaopskokp e tbm usarei o script do caro brother edps pra mandar ver no provavel arch's que instalarei nos pc's daki da cidade kkkkk isso ae viva o linux!!!!
[3] Comentário enviado por
landex em 10/06/2010 - 13:32h:
Bem legal está dica. Muito Boa...
[4] Comentário enviado por
edps em 08/11/2011 - 22:20h:
Modifiquei um pouco o script acima, separando os pacotes externos dos pacotes dos repositórios Arch:
#!/bin/bash
echo ""
echo "reempacotamento de pacotes no Arch Linux"
echo ""
sleep 2
echo "criarei um diretório chamada repacman em seu diretório $HOME"
echo ""
sleep 2
echo "dentro deste diretórios serão criados dois subdiretórios (external e repo)"
echo ""
sleep 2
echo "nos quais os arquivos de controle dos nomes dos pacotes serão salvos"
echo ""
sleep 2
echo "a seguir o reempacotamento será iniciado..."
echo ""
sleep 2
mkdir -p repacman/external
mkdir -p repacman/repo
cd repacman/external/
sudo pacman -Qmq > ext-packs.lst && cat $HOME/repacman/external/ext-packs.lst | xargs -l1 repacman
cd ..
cd repo/
sudo pacman -Qq > packages.lst && cat $HOME/repacman/repo/packages.lst | xargs -l1 repacman
echo "removerei agora os arquivos ext-packs.lst e packages.lst"
echo ""
sleep 2
rm -f $HOME/repacman/external/ext-packs.lst
rm -f $HOME/repacman/repo/packages.lst
echo "concluído!"
echo ""
exit 0