Resolvendo dependências no Sbopkg

Publicado por Perfil removido em 14/04/2015

[ Hits: 6.361 ]

 


Resolvendo dependências no Sbopkg



Bem, venho aqui hoje dar uma pequena contribuição para quem, como eu, usa o Slackware diariamente.

O Sbopkg, por padrão, não resolve dependências. Às vezes, quando precisamos de um programa que possui várias dependências, como o VLC, é um sofrimento.

Para casos como esses, onde você quer compilar o programa bonitinho com todas as dependências e evitar que o pacote fique "quebrado", existe uma ferramenta ainda bem desconhecida, o SQG.

O SQG é "desconhecido" porque ele não vem pronto para usar, embora ele venha instalado junto com o Sbopkg. O SQG procura todas as dependências de um pacote e as coloca em uma lista, com um formato especial ".sqf", que o Sbopkg entende e procura por ele automaticamente, quando você pede para instalar alguma coisa.

Para começar, você precisa fazer um link para o seu diretório "bin", assim você não precisa digitar o caminho inteiro toda vez que for usar o script:

# ln -s /usr/doc/sbopkg-0.37.0/contrib/sqg /usr/bin/

Daí, o próximo passo é editar o SQG para procurar pela versão certa do seu Slackware. Vá até a linha 48, onde tem:

#QUEUEDIR=${QUEUEDIR:-/var/lib/sbopkg/queues}
REPO_ROOT=${REPO_ROOT:-/var/lib/sbopkg}
REPO_NAME=${REPO_NAME:-SBo}
REPO_BRANCH=${REPO_BRANCH:-14.0}
#SKIP_EMPTY=${SKIP_EMPTY:-NO}

E edite onde tem: "REPO_BRANCH=${REPO_BRANCH:-14.0}", com o número da versão do seu Slackware. No meu caso, é o 14.1. Então, fica assim:

REPO_BRANCH=${REPO_BRANCH:-14.1}

Depois disso está tudo pronto. Já pode sair instalando tudo o que é direito. Para buscar uma lista de dependências, você usa:

# sqg -p nomedopacote

Se for mais de um pacote, segue a regra do Sbopkg, coloque aspas:

# sqg -p "nomedopacote1 nomedopacote2"

Daí, quando você for instalar o pacote no Sbopkg com "sbopkg -i nomedopacote", ele vai perguntar se você vai querer usar a lista, mais ou menos assim:

Both a queuefile and a package were found with the name "nomedopacote".
Use (Q)ueuefile, (P)ackage, or (A)bort?:


Você também pode rastrear "todas" as dependências de uma vez, de todos os programas:

# sqg -a

Um problema que eu percebi usando o SQG, é que ele não checa se algum pacote já foi instalado no seu sistema, então, vamos dizer que você precisa instalar um SlackBuild que precise do JDK, ele vai incluir o JDK mesmo que você já tenha instalado.

Caso isso aconteça, não perca o Slack, você pode facilmente editar a fila manualmente, elas ficam no diretório /var/lib/sbopkg/queues/, todas esperando por um carinho humano.

Ah, sim! As listas também servem para instalar vários pacotes de uma vez, o que pode ser muito confortável para quem precisa instalar vários programas.

* Lembrando que isso de fato não é "resolução de dependências", ele só gera uma lista com o que você precisa para fazer o build de um programa. Se você for remover o pacote que instalou por meio de uma lista, as dependências vão continuar lá.

Agora não tem mais motivo pra não arranjar Slack! Mate o "Bob"! ieieieieieieieieie!

Outras dicas deste autor

Aplicando permissões 755 para pastas e 644 para arquivos de modo recursivo

Configurando o "kdm" para login de usuário no Fedora Core

Gerando e armazenando a chamve md5sum dos pacotes do Slackware

K3B em português no Slackware Linux 13

Backup e restauração da MBR

Leitura recomendada

Ubuntu 12.04 - Instalando VMware-Workstation-Full-8.0.2

HPLIP/CUPS - "Filter failed" ao tentar imprimir (depois de atualizar hplip)

Central de Serviços com Software Livre: Estruturando um Central de Serviços com o GLPI - Livro

Instalando Adobe Reader 7.0

Montar dispositivo Android no Funtoo

  

Comentários
[1] Comentário enviado por edps em 14/04/2015 - 17:28h


Rapaz, mal mexi no sbotools e tu me vem com essa! já tou indo testar! rsrs

[2] Comentário enviado por removido em 14/04/2015 - 19:34h

Pow, usei Slack minha vida toda e nunca ouvi falar desse script! hahaha! "Leia mais man pages!" :^P

Muito bacana, o que achei interessante foi o que encontrei na pasta "queuefiles";
~ $ ls -l /usr/doc/sbopkg-0.37.0/contrib/queuefiles
total 64
-rw-r--r-- 1 root root 117 Mar 17 2011 abiword.sqf.sample
-rw-r--r-- 1 root root 258 Mar 17 2011 audacity.sqf.sample
-rw-r--r-- 1 root root 647 Mar 17 2011 dvdrip_build.sqf.sample
-rw-r--r-- 1 root root 158 Mar 17 2011 enlightenment.sqf.sample
-rw-r--r-- 1 root root 164 Mar 17 2011 ffmpeg.sqf.sample
-rw-r--r-- 1 root root 328 Mar 17 2011 ffmpeg_build.sqf.sample
-rw-r--r-- 1 root root 156 Mar 17 2011 gnome-print.sqf.sample
-rw-r--r-- 1 root root 239 Mar 17 2011 gnucash.sqf.sample
-rw-r--r-- 1 root root 132 Mar 17 2011 gpodder.sqf.sample
-rw-r--r-- 1 root root 129 Mar 17 2011 mlt-openshot.sqf.sample
-rw-r--r-- 1 root root 654 Mar 17 2011 multimedia.sqf.sample
-rw-r--r-- 1 root root 99 Mar 17 2011 octave_build.sqf.sample
-rw-r--r-- 1 root root 498 Mar 17 2011 openbox-plus.sqf.sample
-rw-r--r-- 1 root root 280 Mar 17 2011 openshot.sqf.sample
-rw-r--r-- 1 root root 910 Mar 17 2011 simple-desktop.sqf.sample
-rw-r--r-- 1 root root 356 Mar 17 2011 transcode_build.sqf.sample

Carai, tem praticamente todo o necessário para uma pós-instalação do sistema nessa pasta!
Valeu, Dica super útil, favoritado já! :-)

EDIT: Um complemento para a Dica: para evitar que o sbopkg baixe e instale pacotes que já estão instalados, passe o parâmetro -k (keep) quando for instalar através do queue.
___________________________________________________________________
[i]Slackware 14.1 x86_64 [multilib] - Core2Duo, 8GB RAM - NVIDIA GeForce 9500GT[/i]

[3] Comentário enviado por edps em 14/04/2015 - 21:43h


Tanto gostei como já vou fazer uma dica no blog e indicarei sua dica como fonte de consulta, excelente!

Existem muitos pacotes chatos como o nitrogen, que tive que catar dep por dep para empacotar um minúsculo pacote? outro chato pra kcta é o navegador dwb por causa do webkitgtk.

[]'s


[4] Comentário enviado por removido em 15/04/2015 - 08:45h

Eu já estava determinado a criar um script para ler a variável REQUIRES dos scripts *.info dos SlackBuilds, para construir filas de compilação/instalação (queue). Mas esse SQG salvou a pátria! Testado e aprovado. :-)
______________________________________________________________
[i]Slackware 14.1 x86_64 - Core2Duo, 8GB RAM - NVIDIA GeForce 9500GT[/i]

[5] Comentário enviado por lcavalheiro em 15/04/2015 - 13:08h

O sbotools disponível no SlackBuilds (http://slackbuilds.org/repository/14.1/system/sbotools/?search=sbotool) resolve dependências que estejam no SlackBuilds.org automaticamente, Edinaldo :-)
--
Luís Fernando Carvalho Cavalheiro
Public GPG signature: 0x246A590B
Licenciado Pleno em Filosofia pela Universidade do Estado do Rio de Janeiro
Mestrando em Medicina (Cardiologia) pela Universidade Federal do Rio de Janeiro

[6] Comentário enviado por xerxeslins em 15/04/2015 - 15:38h


Vou favoritar! Nice.

[7] Comentário enviado por edps em 15/04/2015 - 17:12h


[5] Comentário enviado por lcavalheiro em 15/04/2015 - 13:08h

O sbotools disponível no SlackBuilds (http://slackbuilds.org/repository/14.1/system/sbotools/?search=sbotool) resolve dependências que estejam no SlackBuilds.org automaticamente, Edinaldo :-)
--
Luís Fernando Carvalho Cavalheiro
Public GPG signature: 0x246A590B
Licenciado Pleno em Filosofia pela Universidade do Estado do Rio de Janeiro
Mestrando em Medicina (Cardiologia) pela Universidade Federal do Rio de Janeiro


Valeu tô ligado, mas acho que ferrei meu Slack instalando módulos CPAN manualmente, aí o sbotools não funciona acusando a falta da Lib.pm.

[8] Comentário enviado por leonardobrasil em 22/06/2017 - 21:00h

e ai mano, tudo bem? achei seu artigo por indicacao de outro, e comecei testar, so que na hora de editar o arquivo pra colocar o numero da versao do meu slack (14.2), nao consigo achar o documento, consegui criar o link com sucesso (ln -s /usr/doc/sbopkg-0.37.0/contrib/sqg /usr/bin/ ) mas nao acho o tal documento, pode me dar uma ajuda?
vlw cara

[9] Comentário enviado por raserafim em 02/03/2018 - 00:50h

Um problema que eu percebi usando o SQG, é que ele não checa se algum pacote já foi instalado no seu sistema, então, vamos dizer que você precisa instalar um SlackBuild que precise do JDK, ele vai incluir o JDK mesmo que você já tenha instalado.


esse problema pode ser contornado pelo sbopkg ao passar o parâmetro -ki

"sbopkg -ki nomedopacote"

[10] Comentário enviado por edps em 01/04/2018 - 11:22h

Atualmente o sqg já vem disponível por padrão no SBOPKG v0.38.1, portanto não é mais necessário a criação do link simbólico, ou mesmo a edição do repositório.

Quanto ao conteúdo da dica, continua valendo!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts