O sobpkg não instala as dependências de um pacote automaticamente por padrão mesmo sabendo quais são elas, pois a mesma está na base de dados do sbopkg mas somente para pacotes do Slackbuilds. Para não sofrer ter que instalar as dependências quando for acusado durante a compilação do programa pelo sbopkg, devemos utilizar o comando sqg que vem junto com o pacote do sbopkg responsável por baixar todas as dependências do programa que você especificou para instalar pelo sbopkg.
Passos para instalar o programa e suas dependências ser houver
Pesquise primeiro se o programa que você deseja baixar existe no Slackbuilds.
$ sudo sbopkg -g tuxkart
Searching for tuxkart
Found the following matches for tuxkart:
games/supertuxkart
games/tuxkart
No exemplo acima eu vou instalar o game supertuxkart, então devemos dizer ao sbopkg para baixar primeiro as dependências do pacote supertuxkart caso houver e somente depois é que será baixado o supertuxkart utilizando para isto o comando sqg que dirá ao sbopkg para baixar primeiro as dependências na ordem especificada por ele, devendo compila-las nesta ordem e somente depois baixar o programa especificado.
$ sudo sqg -p supertuxkart
Processing supertuxkart.
Done.
Pronto as dependências foram processadas, mas só por curiosidade vamos ver quais são elas antes de mandar instalar o pacote do game.
$ cat /var/lib/sbopkg/queues/supertuxkart.sqf
OpenAL
supertuxkart
Vimos que o pacote supertuxkart tem apenas uma dependência que é o pacote OpenAL que será instalado automaticamente em primeiro lugar, sendo instalado por último o pacote do game.
Agora basta executar o sbopkg para instalar o supertuxkart sem erros de dependências na compilação do supertuxkart.
$ sudo sbopkg -i supertuxkart
Both a queuefile and a package were found with the name "supertuxkart".
Use (Q)ueuefile, (P)ackage, or (A)bort?: (tecle q)
###########################################
New queue process started on:
Seg Ago 8 17:27:52 BRT 2016
###########################################
+++++++++++++++++++++++++++++++++++++++++++
PRE-CHECK LOG
Using the SBo repository for Slackware 14.2
Queue Process: Download, build, and install
OpenAL:
Checking GPG for OpenAL.tar.gz ... OK
Processing OpenAL 1.17.2-2
Using original .info file
Using original SlackBuild file
No build options selected.
supertuxkart:
Checking GPG for supertuxkart.tar.gz ... OK
Processing supertuxkart 0.9.2-1
Using original .info file
Using original SlackBuild file
No build options selected.
+++++++++++++++++++++++++++++++++++++++++++
Pre-check complete.
Do you wish to proceed based on the search results above? Packages not
found will be skipped during the process.
(P)roceed or (Q)uit?: ( tecle p e Enter)
Notas:
Se o pacote da dependência OpenAL já estiver instalado no sistema seja baixado de um repositório qualquer do Slackware pelo seu gerenciador de pacotes, baixado e instalado pelo navegador ou obtido o source diretamente da fonte o mesmo será igualmente baixado, compilado e instalado pelo sbopkg sobregravando todos os arquivos já existente deste pacote pois o mesmo não resolve dependências ele apenas usa uma lista do que é necessário para compilar o seu programa da base de dados dele, baixando todos os pacotes necessários para o mesmo.
Se mais tarde você desinstalar o game supertuxkart com o slapt-get ou qualquer outro gerenciador de pacotes ou usar o comando removepkg a dependência OpenAL continuara instalada já que a base de dados do sbopkg não é intergrada com a base de dados dos gerenciadores de pacotes do Slackware.
O sbopkg instalará todas as dependências na ordem exata que estiver listada no arquivo /var/lib/sbopkg/queues/nomedopacote.sqf antes do programa que foi especificado.
Quando não houver dependências para um pacote será retornado a seguinte mensagem abaixo:
$ sudo sqg -p pcsc-lite
pcsc-lite: empty REQUIRES line. No queuefile generated.
Uncomment SKIP_EMPTY to change this.
Done.
Significa que não há dependências para o referido pacote, portanto não será criado o arquivo /var/lib/sbopkg/queues/pcsc-lite.sqf.
Instalando outros pacotes que tem a mesma dependência no sbopkg
Os games alienarena e assaultcube tem a dependência do pacote OpenAL que também foi a dependência do supertuxkart que já estão ambos instalado no sistema.
Para evitar que o sbopkg reinstale um pacote já instalado para acelerar a instalação dos outros pacotes, evitando com isto recompilações desnecessárias, devemos passar o parametro -k.
$ sudo sbopkg -ki alienarena
Com isto o pacote OpenAL não será recompilado e reinstalado novamente no sistema deste que já existe o pacote baixado pelo sbopkg e o diretório do descompactamento do pacote OpenAL no seu sistema.
Caso você não usar o flag -k deste que você não tenha removido todo o conteudo de /var/cache/sbopkg e /tmp/SBo/ para recuperar espaço em disco, o pacote OpenAL não será baixado pois já existe o arquivo do mesmo em /var/cache/sbopkg apenas será feita uma nova descompactação e recompilação deste pacote, lembrando que algumas compilações podem ser bastante demoradas mesmo para um pacote de 1 MB de tamanho ou menos e outras podem ser bem rápidas em um pacote que tenha o tamanho de 10 MB ou mais vai depender muito da complexidade e função deste pacote.
Evitando o regravação de pacotes já instalados no sistema e que não foram baixados os pacotes pelo sbopkg
Isto é muito importante se você instalou algum programa de um outro repositório diferente do padrão que vem no Slackware, de repositórios de terceiros e de outras fontes, pois a versão que você instalou para um programa tal funcionar, se a versão da lib for diferente do pacote do Slackbuilds este programa poderá não funcionar e talvez o programa que você baixar no Slackbuilds também não funcione com esta versão já instalada mas ai é só testado mesmo para saber.
Você deve editar a fila manualmente entrando no diretório /var/lib/sbopkg/queues/ e editar o arquivo que tenha o nome do pacote que você deseja baixar como exemplo alienarena.
$ cat alienarena.sqf
ode
OpenAL (apague a linha do OpenAL, já que o mesmo está instalado no sistema)
alienarena
Com a linha OpenAL apagada, somente será baixado o pacote ode e o alienarena.
Rastreando todas dependências de uma vez, de todos os pacotes
# sqg -a
Este procedimento levou 40 minutos em uma cpu Phenom I de 2 Ghz e ficando no total 2388 arquivos de extensão sqf e totalizando 9,5 MB em /var/lib/sbopkg/queues
Sobre os diretórios do sbopkg:
/var/cache/sbopkg = contem todos os pacotes source baixados pelo sbopkg que serão descompactados para posterior compilação
/tmp/SBo/ = fica todos os diretórios de todos os pacotes baixados que foram descompactados e onde será feita a compilação dos mesmos.
/tmp = é o onde fica todos os pacotes já compilados em formato tgz e que foram instalados automaticamente.
/var/lib/sbopkg/queues = diretório que armazena o arquivo com extensão sqf que tem o mesmo nome do pacote especificado ao sqg e dentro dentro dele os nomes de todas as dependências sendo uma por linha.
Para os pacotes que não haja dependências para compilar, não será gerado um arquivo de mesmo nome do pacote neste diretório.
/etc/sbopkg = armazena o arquivo de configuração sbopkg.conf e outros diretórios e arquivos.
/etc/sbopkg = armazena o arquivo de configuração sbopkg.conf e outros diretórios e arquivos.
Listando todos pacotes que foram instalados pelo sbopkg
$ sudo sbopkg -p | nl
Checando se os pacotes já instalados tem nova update no repositório
$ sudo sbopkg -c
[ Checking for potential updates ]
This may take a few moments. Press <ESC> to abort.
100%[========================================]
Listing installed SBo repository for Slackware 14.2 packages and flagging
potential updates...
conky:
POTENTIAL UPDATE
Installed version: conky-1.9.0-i486-1_SBo (versão instalada)
Repo version: conky-1.10.4-i486-1_SBo (nova versão)
emerald-themes:
POTENTIAL UPDATE
Installed version: emerald-themes-0.8.10-i486-1_SBo
Repo version: emerald-themes-0.8.12.1-i486-1_SBo
libbluray:
POTENTIAL UPDATE
Installed version: libbluray-0.9.2-i486-2_SBo
Repo version: libbluray-0.9.3-i486-1_SBo
p7zip:
POTENTIAL UPDATE
Installed version: p7zip-16.02-i486-1_SBo
Repo version: p7zip-16.02-i486-2_SBo
Potential update list complete.
O comando acima chega as novas updates feita no repositório listando o grupo, o nome do programa e a sua nova versão em relação a anterior.
Caso queira saber se existe uma nova versão apenas para um programa específico você pode fazer um filtro como no exemplo abaixo.
$ sudo sbopkg -c | grep -i conky
conky:
Installed version: conky-1.9.0-i486-1_SBo
Repo version: conky-1.10.4-i486-1_SBo
Nenhum comentário:
Postar um comentário