Idioma
Categoria
Pesquisar

Sbopkg - Gerenciamento de pacotes no Slackware

Ferramenta que automatiza a compilação e instalação de programas a partir do repositório slackbuilds.org

Em Terminal Por Rudi Drusian Lange
Publicado em
Última atualização

O gerenciamento de pacotes no Slackware tem a reputação de ser bastante manual. Os pacotes oficiais são distribuídos como binários com o código fonte incluso e podem ser manipulados através do comando slackpkg.

Veja também: Configurando e usando Slackpkg

Em outro artigo, Instalando e configurando Slackpkg+, é apresentada uma possibilidade de ampliar as funcionalidades padrões do gerenciador de pacotes do Slackware (slackpkg) através de um complemento que possibilita instalar programas de repositórios não oficiais do Slackware.

Também em outro artigo foi demonstrado como compilar programas e gerar pacotes a partir do site slackbuilds.org, e neste artigo será apresentado como automatizar e gerenciar a instalação/manutenção desses pacotes através do utilitário sbopkg.

Sbopkg é uma ferramenta baseada em linha de comando e telas de dialogo que funciona em sincronia com o site slackbuilds.org permitindo que seja feito o download, a compilação e a instalação de programas através de um único comando. São disponibilizados milhares de pacotes não oficiais através deste repositório.

Download e instalação

Faça o download em https://sbopkg.org/ e instale com o comando installpkg:

# Shell

// Substitua 0.38.1 pela versão atual
installpkg sbopkg-0.38.1-noarch-1_wsr.tgz

Configuração

O arquivo de configuração do sbopkg fica em /etc/sbopkg/sbopkg.conf. Este arquivo possui algumas opções, porém por enquanto iremos somente alterar os diretórios padrões e a versão da distribuição do Slackware considerada pelo sbopkg, este passo é importante, se você possui o Slackware 14.2 é necessário configurar para que o sbopkg utilize somente pacotes criados para esta versão. Por padrão o sbopkg virá configurado para trabalhar com a última versão disponível do Slackware, caso você utilize uma versão diferente altere o arquivo modificando a opção conforme abaixo:

/etc/sbopkg/sbopkg.conf

// Procure pela linha abaixo e troque o 14.2 pela versão do seu sistema
REPO_BRANCH=${REPO_BRANCH:-14.2}

// Diretório onde será descompactado o source e executada a compilação
export TMP=${TMP:-/home/tmp/SBo}

// Diretório onde será gravado o pacote final gerado
export OUTPUT=${OUTPUT:-/home/tmp}

// Diretório onde os arquivos temporários gerados pelo sbopkg são armazenados e onde o pacote final é criado antes de ser enviado para o diretório final definido na variável OUTPUT
export TMPDIR=${TMPDIR:-/tmp}

Primeira execução

O sbopkg precisa ser executado pelo usuário root devido a necessidade das permissões. Na primeira execução será perguntado sobre a criação dos diretórios necessários, caso você já tenha instalado alguma vez o sbopkg é possível que estes diretórios já estejam criados. Abaixo a sequência gerada na primeira execução:

# Shell

sbopkg 

The following directories do not exist:

Variable                   Assignment
--------                   ----------
REPO_{ROOT,NAME,BRANCH} -> /var/lib/sbopkg/,SBo/,14.2
QUEUEDIR ----------------> /var/lib/sbopkg/queues
TMP ---------------------> /home/tmp/SBo

You can have sbopkg create them or, if these values are incorrect, you can
abort to edit your config files or pass different flags.

(C)reate or (A)bort?: c

Sincronizando

Para sincronizar o sbopkg com o site slackbuilds execute:

# Shell

// Pense em 'r' como em rsync
sbopkg -r

Pesquisando

Será utilizado o exemplo de um simulador de voo chamado FlightGear nos próximos comandos. Para pesquisar utilizando o sbopkg execute:

# Shell

// Pense em 'g' como em grep
sbopkg -g FlightGear

Searching for FlightGear
Found the following matches for FlightGear:
games/FlightGear
games/FlightGear-dat

Observação: O processo de compilação dos pacotes necessários para instalar o FlightGear é extremamente demorado, podendo levar horas. Para aprendizagem é recomendado instalar outro programa para que este processo seja mais rápido. Porém o processo de compilação é demorado em diversos casos.

Inspecionando

Seguindo o padrão Slackware o utilitário sbopkg não resolve dependências porém é possível consultar os pacotes requeridos para a instalação. O sbopkg considera que você tenha a instalação completa do Slackware e não exibirá dependências de pacotes oficiais.

# Shell

sbopkg -s FlightGear

Este comando irá exibir os arquivos README, Slackbuild, .info e slack-desc para o pacote consultado. Para consultar somente as dependências utilize o comando abaixo:

# Shell

sbopkg -s FlightGear |grep REQUIRES

REQUIRES="FlightGear-data SimGear"

Instalando

Para instalar utilizando o sbopkg utiliza-se o comando:

# Shell

sbopkg -i FlightGear

Como o FlightGear possui dependências o comando acima provavelmente irá falhar. Já temos a informação sobre as dependências do FlightGear, agora é necessário saber se estas dependências também possuem dependências, abaixo será feito o levantamento destas informações adicionais.

É possível instalar múltiplos programas em um único comando, repetindo o parâmetro '-i' antes de cada nome. Como já se sabe quais são as dependências para instalar o FlightGear utilize o comando abaixo para instalar as dependências e o simulador de voo:

# Shell

// FlightGear-data não possui dependências
sbopkg -s FlightGear-data |grep REQUIRES
REQUIRES=""

// SimGear possui três dependências, checaremos uma a uma
sbopkg -s SimGear |grep REQUIRES
REQUIRES="OpenSceneGraph freealut plib"

// OpenSceneGraph não possui dependências
sbopkg -s OpenSceneGraph |grep REQUIRES
REQUIRES=""

// freealut possui uma dependência
sbopkg -s freealut |grep REQUIRES
REQUIRES="OpenAL"

// OpenAL não possui dependências
sbopkg -s OpenAL |grep REQUIRES
REQUIRES=""

// plib não possui dependencias
sbopkg -s plib |grep REQUIRES
REQUIRES=""

Com isso chegamos a lista de programas que precisam ser instalados para que o simulador de voo funcione, vamos começar a lista com as dependências das dependências: OpenAL, OpenSceneGraph, freealut, plib, FlightGear-data, SimGear, FlightGear. Para instalar utilize:

# Shell

sbopkg -i OpenAL -i OpenSceneGraph -i freealut -i plib -i FlightGear-data -i SimGear -i FlightGear

// Será exibido o resumo dos pacotes a serem instalados e no final será solicitada a confirmação para inicio da instalação

+++++++++++++++++++++++++++++++++++++++++++

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?: p

Se tudo estiver certo o sbopkg encontrou todos os programas listados e agora irá fazer o download do código fonte de cada programa e depois irá compilá-los a partir do script Slackbuild. Os códigos fontes baixados são armazenados no diretório /var/lib/sbopkg/SBo/14.2/ onde "14.2" é a versão do Slackware.

Configurações personalizadas

Depois de instalado o simulador de voo FlightGear você percebe que uma funcionalidade não foi instalada ou você se lembra de alguma opção de compilação que poderia trazer algum benefício. Felizmente o sbopkg permite a edição de cadas script Slackbuild separadamente. Segue o processo para esta alteração:

# Shell

// Entre no diretório de cache do sbopkg
cd /var/lib/sbopkg/SBo/14.2/

// Procure pelo FlightGear
find . -type d -name FlightGear

./games/FlightGear

cd games/FlightGear

// Copie o arquivo FlightGear.SlackBuild para FlightGear.SlackBuild.sbopkg
cp FlightGear.SlackBuild FlightGear.SlackBuild.sbopkg

Agora você pode editar o arquivo FlightGear.SlackBuild.sbopkg de forma que desejar, adicionando CFLAGS por exemplo.  Quando você for instalar o FlightGear pelo sbopkg será perguntado:

# Shell

A local SlackBuild file for FlightGear was found in addition to the original
SlackBuild file.

Use (O)riginal/(L)ocal, see (D)iff, or (C)ancel?:

Você pode utilizar o arquivo original(O) ou o arquivo local recém editado (L) ou ainda você pode ver a diferença entre os arquivos (D).

Atualizando

O sbopkg suporta duas formas de atualização, a do próprio sbopkg ou dos programas instalados.

# Shell

// Atualiza o sbopkg - Pense em '-u' como upgrade
sbopkg -u

// Atualiza os programas instalados - Pense em '-c' como check for updates
sbopkg -c

// Exemplo do retorno do comando acima

Listing installed SBo repository for Slackware 14.2 packages and flagging
potential updates...

ffmpeg:
  POTENTIAL UPDATE
  Installed version:  ffmpeg-2.8.7-x86_64_custom-1_SBo
  Repo version:  ffmpeg-3.2.4-x86_64-1_SBo

Importante: O comando 'sbopkg -c' não atualiza os pacotes, simplesmente lista os pacotes com atualizações disponíveis. Para atualizar um pacote basta instalá-lo novamente com o comando 'sbopkg -i nome_do_pacote'.

Desinstalando

Para remover um pacote instalado com o sbopkg utilize as ferramentas padrões do slackware:

# Shell

removepkg OpenAL OpenSceneGraph freealut plib FlightGear-data SimGear FlightGear
// ou
slackpkg remove OpenAL OpenSceneGraph freealut plib FlightGear-data SimGear FlightGear

Blacklist

Para adicionar um pacote a blacklist e impedir que seja listado em instalações e atualizações, adicione um nome de pacote por linha no arquivo /etc/sbopkg/blacklist.

# /etc/sbopkg/blacklist

# This file is used to list all blacklisted package(s)
# Write down one package per line
# All text started with "#" will not be processed.

LibreOffice
nodejs
wireshark
zulu-openjdk11

Mais informações

O Sbopkg tem uma excelente documentação online que pode ser encontrada aqui.

Referências