How-To :: SlackBuilds com slackrepo.


Com o novo PC e seu maior poder de processamento, tive a necessidade de encontrar uma ferramenta que fizesse um melhor trabalho na utilização desse “poder”, encontrei no slackrepo essa ferramenta 😉

O slackrepo bem que poderia ser chamado de slackbuilds massive builder, pois além de eficiente no cálculo de dependências é muitíssimo rápido quanto ao uso do hardware, às vezes até exagerando rsrs, vejam o tempo tomado para compilar o horroroso qt5… que no velho PC levava quase um dia, acho que nesse PC usando Sbopkg leva umas 3 horas ou mais, já usando o slackrepo: 1 hora e 7 minutos e com o sistema em uso!

Para instalar, sem tirar nem por execute o proposto na página do projeto:

# git clone https://github.com/idlemoor/slackrepo.git
# cd slackrepo
# gitrev=git$(git log -n 1 --format=format:%h .)
# git archive --format=tar --prefix=slackrepo-$gitrev/ HEAD | gzip > SlackBuild/slackrepo-$gitrev.tar.gz
# cd SlackBuild
# VERSION=$gitrev TAG=_github sh ./slackrepo.SlackBuild
# upgradepkg --install-new /tmp/slackrepo-$gitrev-noarch-1_github.t?z

Este slideshow necessita de JavaScript.

Sincronizar/Atualizar os SlackBuilds.

Como o programa identifica corretamente qual a release utilizada, sincronize o repositório SlackBuilds com:

# slackrepo update

Mas por conveniência e segurança percebi que usando a release estável é bem melhor usar o comando abaixo:
# slackrepo update --repo=SBo -v

Isso evitará que utilize pacotes do repositório ponce, pacotes esses destinados ao Slackware Current, logo, se for esta a release que estiver utilizando, o slackrepo utilizará o repositório ponce como padrão, em vez do 14.2.

E convém relatar que nesse caso específico alguns SlackBuilds não mais serão encontrados pois já fazem parte da instalação padrão do Slackware Current e por consequência da próxima release estável, alguns exemplos: meson, libinput, libwacom, ffmpeg, lame, SDL2, entre outros.

Este slideshow necessita de JavaScript.

Instalando programas.

Agora vamos a parte que interessa, a instalação de programas (nas imagens abaixo ainda estava usando o meu velho PC, logo as jobs do make estavam setadas automaticamente para -j2.

# slackrepo build --install pogo

Se estiver usando o Slack 14.2, como já dito mais acima, utilize assim:
# slackrepo --repo=SBo -v build --install pogo

* a opção -v é opcional!

Por padrão se já houverem pacotes instalados do repositório configurado, os mesmos serão checados quanto a atualizações (deles ou de suas dependências):

Este slideshow necessita de JavaScript.

atualização disponível para a dependência “mutagen”

Removendo programas.

Agora vamos a parte que interessa, a instalação de programas (nas imagens abaixo ainda estava usando o meu velho PC, logo as jobs do make estavam setadas automaticamente para -j2.

# slackrepo remove --repo=SBo awesome-extra audioconvert fox-toolkit-devel
# slackpkg remove awesome-extra audioconvert fox-toolkit-devel
ou
# removepkg awesome-extra audioconvert fox-toolkit-devel

Assim o slackrepo removerá os pacotes de sua base de dados local (pacote criado e sources) e criará um backup disto tudo em /var/lib/slackrepo/SBo/backups/14.2/, assim se quiser reinstalá-los será bem mais rápido!

E os pacotes somente serão removidos ao utilizar o slackpkg ou o removepkg.

Ainda a respeito da remoção de pacotes, convém também avaliar o constante dos logs criados durante a instalação de cada pacote (os mesmos estarão em /var/log/slackrepo/{ponce,SBo}, procura esta destinada a remoção das dependências instaladas, como por exemplo no caso do pacote awesome-extra:

# cat /var/log/slackrepo/SBo/desktop/awesome-extra/build.log | less

Building desktop/awesome-extra (add version 2018041201) 2018-09-30 22:04:32
Downloading source files ...
Verifying source files ...
Installing dependencies ...
libxdg-basedir-1.2.0-x86_64-1_SBo is already installed
lua-5.1.5-x86_64-1_SBo is already installed
lgi-0.9.2-x86_64-1_SBo is already installed
libxkbcommon-0.8.2-x86_64-1_SBo is already installed
xcb-util-xrm-1.3-x86_64-1_SBo is already installed
awesome-4.2-x86_64-1_SBo is already installed
Running awesome-extra.SlackBuild ...                               eta ~22:05:??
env MAKEFLAGS='-j12 -l7' /usr/libexec/slackrepo/unbuffer nice -n 5 bash ./awesome-extra.SlackBuild
awesome-extra-2018041201/
awesome-extra-2018041201/bashets/
awesome-extra-2018041201/bashets/bashets.lua
awesome-extra-2018041201/bashets/bashets.lua.prev
awesome-extra-2018041201/bashets/bashets.previous
awesome-extra-2018041201/debian/
awesome-extra-2018041201/debian/changelog
awesome-extra-2018041201/debian/clean
awesome-extra-2018041201/debian/compat
awesome-extra-2018041201/debian/control
awesome-extra-2018041201/debian/copyright
lines 1-23

Ficaram instalados alguns pacotes, dentre os quais somente o lua e o libxkbcommon sei que são necessários para alguns programas (conky, qt5, etc), pro caso dos demais basta seguir a regra proposta:
# slackrepo remove libxdg-basedir lgi xcb-util-xrm awesome
# removepkg libxdg-basedir lgi xcb-util-xrm awesome

Uma forma de descobrir se algum destes pacotes são depedências de outros instalados é procurando! rsrs
# grep lua /var/lib/slackrepo/SBo/slackbuilds/*/*/*.info

No PC atual as configurações para compilação determinadas pelo programa são as seguintes:
env MAKEFLAGS = '- j12 -l7' nice -n 5

Você pode modificar a seu critério editando o arquivo /etc/slackrepo/slackrepo_SBo.conf ou copiando este mesmo arquivo para ~/.slackreporc.

Contras.

Eu só teria coisas positivas a dizer sobre o slackrepo, não fosse o fato do mesmo não ser sincronizado com a rapidez que o Sbopkg faz, vejam um exemplo de um update rodado hoje (20181013):

Este slideshow necessita de JavaScript.

Enquanto isso, o Sbopkg já encontrou updates:

Este slideshow necessita de JavaScript.

Além disso o programa não dispõe de uma opção básica como a de procura.

Para maiores detalhes acerca do uso do programa, use:

# man slackrepo
# man slackrepo.conf
# man slackrepo.hint

Ou acesse a página de introdução do programa:

slackrepo Quick start

t+

How-To :: SlackBuilds com slackrepo.

4 comentários sobre “How-To :: SlackBuilds com slackrepo.

    1. Não, eu não uso o slackrepo para fazer pacotes para o Slackware. Uso-o para instalar pacotes do SlackBuilds, visto que ele resolve dependências com eficiência e inteligente uso do hardware.

      Dá até para empacotar toda uma vasta categoria de softaware como em:

      # slackrepo build –install academic

      Ou todo o SlackBuilds (que requer mais ou menos 80GB de espaço) conforme a documentação.

      Ainda não vi ferramenta mais eficiente do que esta. No Slack 14.2 uso o Sbopkg, aui no -current uso slackrepo.

      Curtir

Deixe um comentário