Construindo/Instalando pacotes com o SBopkg
Índice
Sempre que um usuário Slackware deseja utilizar algum aplicativo que não conste na distribuição padrão, isto pode se tornar um grande desafio com muitas horas de leitura, compilação, busca por dependências e pesquisa por patchs para corrigir bugs… No entanto isto já não é bem uma verdade a um bom tempo!
Salvo alguns aplicativos mais complexos, o trabalho se resume a executar alguns poucos comandos, se usar as ferramentas corretas. Graças a iniciativas como SlackBuild.org, instaladores como Slack.Sarava.org e sbopkg.org, além de alguns compiladores compulsivos como o Eric Hameleers também conhecido como AlienBOB, e muitos outros, esta tarefa se tornou apenas um contratempo. É óbvio que você ainda pode usar o bom e velho modo Slackware de ser e fazer por si próprio, mas também pode participar e ajudar este movimento. Porem você também pode ajudar a criar soluções para que outros usuários que encontre no Slackware uma plataforma segura e simplista, como base para suas soluções de TI, ou mesmo por mera diversão.
Slack.Sarava.org, na minha opinião, é superior ao sbopkg.org, pois além de diversas outras funcionalidades, há ainda a possibilidade de resolver as dependências. Não que isto seja algum problema, mas facilita muito a vida quando seu foco é produção. No entanto o projeto possui alguns problemas que a meu ver o corroeu. Um deles é a não compatibilidade com os scripts do SlackBuild.org, um problema que particularmente me sinto muito responsável, um outro problema é o pequeno grupo de desenvolvedores para manter seus 400 a 500 SlackBuilds e desenvolver suas ferramentas.
O sbopkg.org, por sua vez, não resolve dependências mas utiliza os muitos pacotes mantidos por uma grande comunidade de usuários Slackware em todo o mundo. Somente isto dá ao projeto um arsenal de 2.965 SlackBuilds, isto para o Slackware 13.37.
Neste texto vou apresentar o sbopkg.org e mostrar um pouco do que este aplicativo pode fazer pelo usuário Slackware.
1. O Sbopkg
Em poucas palavras, o Sbopkg é uma ferramenta de linha de comando que lhe permite utilizar os SlackBuilds do repositório do SlackBuilds.org para compilar e instalar os aplicativos no Slackware. Sem resolver dependências, o Sbopkg baixa as fontes, compila para a sua arquitetura, sem a necessidade de argumentos extras, empacota o aplicativo em txz, tgz, … e por fim instala o pacote gerado.
2. Instalando e configurando o Sbopkg
Como seria de se esperar existe um pacote para a instalação do sbopkg em http://sbopkg.org/. Visite a página do sbopkg e instale a versão mais recente do aplicativo, que nesta ocasião foi a 0.35.0:
wget http://sbopkg.googlecode.com/files/sbopkg-0.35.0-noarch-1_cng.tgz [prompt]installpkg sbopkg-0.35.0-noarch-1_cng.tgz
Após a instalação o Sbopkg está praticamente pronto para o trabalho. Se desejar pode modificar as configurações do aplicativo, editando o arquivo de configuração /etc/sbopkg/sbopkg.conf. Algumas variáveis interessantes neste arquivo são apresentadas no quadro a seguir:
...
export TMP=${TMP:-/tmp/SBo}
export OUTPUT=${OUTPUT:-/tmp}
...
# Path variables
LOGFILE=${LOGFILE:-/var/log/sbopkg/sbopkg-build-log}
QUEUEDIR=${QUEUEDIR:-/var/lib/sbopkg/queues}
REPO_ROOT=${REPO_ROOT:-/var/lib/sbopkg}
SRCDIR=${SRCDIR:-/var/cache/sbopkg}
...
# Other variables:
CLEANUP=${CLEANUP:-NO}
DEBUG_UPDATES=${DEBUG_UPDATES:-0}
KEEPLOG=${KEEPLOG:-YES}
MKDIR_PROMPT=${MKDIR_PROMPT:-YES}
REPO_BRANCH=${REPO_BRANCH:-13.37}
REPO_NAME=${REPO_NAME:-SBo}
...
Geralmente altero os paths para pastas mais conservadoras em meu sistema. Os nomes das variáveis são, geralmente, auto-explicativos, mas se tiver alguma dificuldade leia as linhas de comentário neste arquivo. As variáveis acima são apresentadas na tabela a seguir:
[TABLE=42]
3. Executando o Sbopkg pela primeira vez
Se não deseja fazer mais ajustes execute o aplicativo sbopkg com a opção “-r”:
sbopkg -r The following directories do not exist: Variable Assignment -------- ---------- REPO_{ROOT,NAME,BRANCH} -> /var/lib/sbopkg/,SBo/,13.37 LOGFILE directory -------> /var/log/sbopkg QUEUEDIR ----------------> /var/lib/sbopkg/queues SRCDIR ------------------> /var/cache/sbopkg 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
Na primeira vez que executar o sbopkg, caso o valor da variável MKDIR_PROMPT seja YES, o aplicativo irá solicitar confirmação para a criação dos diretórios padrões (TMP, OUTPUT, QUEUEDIR, REPO_ROOT, e SRCDIR) descritos na tabela acima. Neste momento pressione “c” para continuar. A opção “-r” faz um rsync com o ramo do repositório do SlackBuild.org declarado em REPO_BRANCH, baixando as informações dos pacotes pela rede, como SlackBuilds, slack-desc, README, info, patchs, … Isto pode levar algum tempo, dependendo de sua conexão.
Após isto o aplicativo está pronto para o baixar e compilar seus aplicativos. O Sbopkg possui uma interface texto, acho que feita com o dialog, bem simples e funcional, com a maioria de suas funções e ainda com a possibilidade de gerenciar filas de compilação/instalação de pacotes, bem útil para resolver dependências.
Para uma visão completa do que o Sbopkg pode fazer por você, utilize a opção “-h” ou o manual do sistema.
sbopkg -h sbopkg 0.35.0 Usage: sbopkg [OPTIONS]Options are: -b pkg/queue(s) Build the specified package(s). If one or more queuefiles are specified, build the packages they refer to. -c Check for updates to installed packages. -d localdir Location of local copy of the repositories. -e error_action Specify what sbopkg is supposed to do on build errors. Valid options are: ask (default), continue, stop. -f file Override default configuration file with specified file. -g package(s) General search for packages matching string. -h Display this help message. -i pkg/queue(s) Like '-b', but also install built packages. -k Skip installed packages when building. -l Display the repo's ChangeLog.txt and then quit. -o Display the obsolete source files & prompt for deletion. -P List uninstalled cached package files & prompt for deletion. -p List installed packages from active repo. -q Quiet some of the command-line output. -r Sync the remote repository with the local mirror and then quit. -R When combined with -b or -i, preview the READMEs of the packages to be built/installed before starting the build process. When combined with -p, show the READMEs of all installed packages from the active repo. -s package(s) Specific search by specific package and, if found, display package information. -u Check for an update to sbopkg. -v Print sbopkg's version on stdout. -V repo/branch Set the repository/branch. The repo is optional and, if not given, sbopkg will try to make the best match, starting with the default repo. For a list of valid repos, issue '-V ?' Note: multiple arguments to -b, -g, -i, and -s must be quoted ("pkg1 pkg2") or can be specified multiple times (-i foo -i bar). If using the latter syntax, build options may also be passed on the command line on a per app basis using the -b or -i flags in colon-separated groups (where whitespace must also be quoted). For example, '-i app:opt1="arg1 arg2":opt2=arg1 app2'
Em linhas gerais algumas opções bem úteis do Sbopkg são apresentadas a seguir:
- Sincronizar com o repositório REPO_BRANCH em SlackBuils.org:
sbopkg -r
- Baixar as fontes, compilar e criar o pacote:
sbopkg -b nome_do_pacote
- Baixar as fontes, compilar, criar o pacote e instalar:
sbopkg -i nome_do_pacote
- Atualizar o Sbopkg:
sbopkg -u
- Pesquisar por um aplicativo:
sbopkg -s *office* Searching for *office* 1) libraries/goffice 5) office/libreoffice 2) office/broffice.org 6) office/libreoffice-langpack 3) office/gbgoffice 7) office/openoffice.org 4) office/kbgoffice 8) Quit
observe que é possível o uso se curingas (*?), o que é bem útil quando não se sabe exatamente o que procurar.
- Checar por atualizações nos pacotes instalados:
sbopkg -c [ Checking for potential updates ] This may take a few moments. Press
to abort. 100%[=====================================> ] Listing installed SBo repository for Slackware 13.37 packages and flagging potential updates...
Se necessitar fazer upgrade/instalação de vários pacotes aconselho utilizar a interface de diálogo com apenas o comando sbopkg. A grande vantagem desta interface é o uso de filas para a compilação de diversos pacotes. O sistema é bem intuitivo, por isto não vou entrar em detalhes aqui.
4. Comentários Finais
Embora não resolva todos os problemas de instalação de pacotes no Slackware, o Sbopkg facilita muito a vida de seus usuários, principalmente para os novatos na distribuição.
Se algum aplicativo não for encontrado pelo sbopkg, experimente verificar se o seu SlackBuild não consta em uma outra versão do Slackware em SlackBuild.org. Alguns aplicativos demoram um pouco para serem portados para a última versão do Slackware por motivos diversos que vão desde problemas na compilação até dificuldades pessoais do mantenedor do SlackBuild.
No entanto colaborar não requer nenhuma grande habilidade, mas isto fica para um próximo texto. Se tiver com disposição leia o texto em Guidelines, baixe os templetes em Templates e se torne um colaborador.
Deixe uma resposta