Slackware Linux e… o gerenciamento de pacotes – parte 3.

Slackware logo

Olá pessoal! Depois de vários meses sem atualizações, segue aqui mais um artigo da série “Slackware Linux e…”, trazendo a terceira parte  dos artigos que tratam do tema gerenciamento de pacotes.

Como disse anteriormente nas partes um e dois, o gerenciamento de dependências não é implementado por padrão na distribuição Slackware, porém alguns recursos desenvolvidos por terceiros, ou mesmo para outras distribuições que nela sejam baseadas, visam solucionar esse problema.

Um desses recursos é encontrado na forma de um plugin, chamado Slackpkg+, que estende as funcionalidades do gerenciador de pacotes padrão da Slackware Linux. Esse plugin possibilita a habilitação de múltiplos repositórios, que podem ser classificados com ordem de prioridade na obtenção de aplicações, além de facilitar a instalação destas por meio de uma “resolução de dependências” não usual.

O que quero dizer com isso é que essa “resolução” se dá por meio da forma em que esses repositórios são organizados, além do método pelo qual as buscas são realizadas para a obtenção de aplicações. Eu raramente o utilizo para operações básicas de gerenciamento de pacotes, porém quando é necessária a instalação de aplicações que não vem por padrão na distribuição, o Slackpkg+ é de grande ajuda.

Por exemplo, embora a Slackware Linux já disponibilize uma ampla gama de gerenciadores de janelas, como KDE, XFCE, Blackbox, Fluxbox, WindowMaker, entre outros, pode ser que você deseje ainda mais opções, como o popular Mate Desktop Environment, que conta com pacotes pré-compilados disponíveis para instalação, através de um projeto que mantêm scripts de compilação dos pacotes que compõem o ambiente.

Normalmente deveríamos clonar os diretórios a partir do Github e então compilá-los em nosso desktop, porém podemos usar o Slackpkg+ para baixar e instalar os pacotes já compilados.

Sem entrarmos no mérito da compilação dos pacotes específicamente para nossas máquinas, o que potencialmente tornaria o desempenho do ambiente melhor mas também podendo trazer dores de cabeça durante a compilação, a facilidade com que a instalação é realizada através do Slackpkg+ deixa muitos usuários bastante confortáveis. Vejamos como esse procedimento seria realizado:

Primeiramente, devemos baixar e instalar o plugin. Para tanto siga para a página oficial do projeto no SourceForge e realize o download. No momento em que escrevo este artigo o mesmo se encontra na versão 1.7.0.

Depois de baixá-lo, instale-o utilizando o comando installpkg, o que em nosso exemplo ficaria:

# installpkg slackpkg+-1.7.0-noarch-4mt.txz

Em seguida devemos configurar o plugin para a sua primeira utilização, por isso vamos editar o seguinte arquivo:

# vi /etc/slackpkg/slackpkgplus.conf

Como pode ser visto no arquivo de configuração, atualmente em uso em meu computador, existem várias opções de configuração que modificam a forma como o plugin se comporta, porém só precisará alterar as linhas que estão em vermelho, alterando é claro para a arquitetura referente ao seu equipamento.

# Configuration for slackpkg+. See /usr/doc/slackpkg+-*/README for more details
# Please read manpage: “man slackpkgplus.conf” and documentation /usr/doc/slackpkg+-*/README

# Enable (on) / Disable (off) slackpkg+
SLACKPKGPLUS=on

# set to ‘0’ to never show the download progress bar
# set to ‘1’ to show the bar only in download packages (default)
# set to ‘2’ to always show the download bar
# set to ‘3’ for a debug mode
VERBOSE=1

# Enable (1) / Disable (0) the official slackpkg blacklist. May be useful to temporarily skip
# the slackware blacklist. You can also override it from command line:
# ‘USEBL=0 slackpkg upgrade-all’
USEBL=1

# Add custom option to ‘wget’.
# You can solve the repository indisponibility issue by set a timeout here
WGETOPTS=”–timeout=20 –tries=2″

# If you want replace wget with another downloader search DOWNLOADCMD in documentation
# at /usr/doc/slackpkg+-*/README
#DOWNLOADCMD=”wget -O”

# Defines if the changelog of any 3rd party repository must be searched in parent URL when not found in base URL.
# Can be set to “on” or “off” (default)
SEARCH_CLOG_INPARENT=on

# Use the cache for metadata files (CHECKSUMS.md5,…). Enable it (on) to speedup the slackpkg update
# process by downloading just new files (see README). Disabled by default (off)
CACHEUPDATE=off

# You can download-only by setting DOWNLOADONLY to ‘on’. You may (you should) also use it in commandline
# for example: “DOWNLOADONLY=on slackpkg upgrade-all”. Useful for large upgrades.
#DOWNLOADONLY=off

# Enable (on) / Disable (off) notification events (see notifymsg.conf)
#ENABLENOTIFY=off

# Enable (on) / Disable (off) the greylist feature. See /etc/slackpkg/greylist
GREYLIST=on

# Defines if commands ‘search’ and ‘file-search’ are case-sensitive (on) or not (off). Default to “on”
SENSITIVE_SEARCH=on

# Defines if command ‘file-search’ does search Wole Word (on) of accept partial words (off). Note that
# you may obtains many many results searching a short partial word
WW_FILE_SEARCH=on

# Select the show order in dialogbox. Available “package” “repository” “tag” “path” “arch”
SHOWORDER=package

# Allow to show more details of the package in slackpkg info <package>. Accept “none”, “basic”, “filelist”
DETAILED_INFO=none

# Enable (on) / Disable (off) a Strict GPG Check. A repository should contains packages signed
# with the only original GPG-KEY. In some custom repository may be wanted to mix heterogeneous
# packages; to use that repository set Strict GPG Check to off. P.S: a repository can
# contain just ONE gpg-key; you may manually import the other.

STRICTGPG=on

# If two or more repositories contains some same packages, you can specify
# from which repository you prefer to search it.
# The syntax is “<repository_name>:<package_name>”
# Accepts regular expressions. To give priority to an entire repository use “<repository_name>”

# Examples:
#PKGS_PRIORITY=( restricted:vlc )
# OR
#PKGS_PRIORITY=( myrepo )
#
# if you have two reporitories to give priority you must set both in the same line
#PKGS_PRIORITY=( myrepo restricted:vlc )
#
# if you want to install ‘ktown’ repository you must set it here
#PKGS_PRIORITY=( ktown )
# and DO NOT MISS to read special instruction on /usr/doc/slackpkg+-*/repositories.txt

# Otherwise you can try to upgrade a package from a repository that contains a package with the
# same tag of the already installed package. Tipically that means to upgrade a package from the
# same author of the already installed package.
# Note that this method may not works properly where two repositories contains a package with the
# same tag.
# Set TAG_PRIORITY to ‘on’ to enable this function
TAG_PRIORITY=off

# List repositories you want to use (defined below)
# remember to launch ‘slackpkg update’ if you modify that row.
REPOPLUS=( slackpkgplus restricted alienbob slacky msb )
# REPOPLUS=( slackpkgplus )
# Define mirrors (uncomment one or more mirror; remember to add it to REPOPLUS)
# GPG Note: after adding/renaming a repository, you must to run ‘slackpkg update gpg’
# some repositories as salixos, have a partial GPG support;
# for that repositories you may need to run slackpkg with ‘slackpkg -checkgpg=off …’

# Slackware 14.2 – i386
MIRRORPLUS[‘alienbob’]=http://bear.alienbase.nl/mirrors/people/alien/sbrepos/14.2/x86/
MIRRORPLUS[‘restricted’]=http://bear.alienbase.nl/mirrors/people/alien/restricted_sbrepos/14.2/x86/
MIRRORPLUS[‘slacky’]=http://repository.slacky.eu/slackware-14.2/
MIRRORPLUS[‘msb’]=http://slackware.uk/msb/14.2/latest/x86/

# use this to keep the slackpkg+ package updated to the latest stable release
MIRRORPLUS[‘slackpkgplus’]=http://slakfinder.org/slackpkg+/

# use the development branch to use the mainline version and help develop by reporting bugs.
#MIRRORPLUS[‘slackpkgplus’]=http://slakfinder.org/slackpkg+dev/

# Local repository:
#MIRRORPLUS[‘alienbob’]=file://repositories/alien/sbrepos/14.2/x86/
#
# Local packages (you do not need metadata nor ‘slackpkg update’ command):
#MIRRORPLUS[‘myrepo’]=dir://repositories/mypackages/
#
# Supported Repositories (see /usr/doc/slackpkg+-* for details and notes):

#

#slackpkgplus:  http://slakfinder.org/slackpkg+{,dev,1.6,1.7}/
#multilib:      http://bear.alienbase.nl/mirrors/people/alien/multili/{14.0,14.1,14.2,current}/
#alienbob:      http://bear.alienbase.nl/mirrors/people/alien/sbrepo/{14.0,14.1,14.2,current/{x86,x86_64}/
#ktown:         http://bear.alienbase.nl/mirrors/alien-kde/{14.1,14.2,current}/{latest,testing}/{x86,x86_64}/
#restricted:    http://bear.alienbase.nl/mirrors/people/alien/restricted_sbrepos/{14.0,14.1,14.2,current}/{x86,x86_64}/
#slacky:        http://repository.slacky.eu/slackware{,64}-{14.0,14.1,14.2}/
#mleddesktop:   http://www.microlinux.fr/microlinux/desktop-{14.1,14.2}-{32,64}bit/
#mledextras:    http://www.microlinux.fr/microlinux/extras-{14.1,14.2}-{32,64}bit/
#mles:          http://www.microlinux.fr/microlinux/server-{14.0,14.1,14.2}-{32,64}bit/
#msb:           http://slackware.uk/msb/{14.0,14.1,14.2,current}/{1.6,1.8,1.10,1.12,1.14,1.15,1.15-gtk3,latest}/{x86,x86_64}/
#csb:           http://slackware.uk/csb/{14.1,14.2}/{x86,x86_64}/
#slackers:      http://slack.conraid.net/repository/slackware64-current/
#slacke18:      http://ngc891.blogdns.net/pub/slacke18/slackware{,64}-{14.1,14.2}/
#studioware:    http://studioware.org/files/packages/slackware{,64}-{14.0,14.1,14.2}/
#slackonly:     http://panos.slackonly.com/pub/packages/{14.1,14.2,current}-{x86,x86_64}/
#rlworkman:     http://rlworkman.net/pkgs/{14.0,14.1,14.2,current}/
#slackel:       http://www.slackel.gr/repo/{i486,x86_64}/current/
#connochaetos:  http://connochaetos.org/slack-n-free/slack-n-free{,64}-{14.1,14.2}/
#slint:         http://slint.fr/packages/{14.0,14.1,14.2}-{i486,x86_64}/
#salixos:       http://download.salixos.org/{i486,x86_64}/{14.0,14.1,14.2}/

Após as alterações, salve o arquivo e saia. Como podemos ver, o arquivo é bem completo em comentários sobre as muitas opções de configuração, e nos fornece inclusive os endereços dos repositórios compatíveis com a ferramenta em seu final.

Com essas modificações, tudo o que precisamos fazer agora é atualizar a base de repositórios que o slackpkg consultará, buscando primeiro as chaves de assinatura criptográficas:

# slackpkg update gpg

Em seguida a atualização do conteúdo dos repositórios propriamente dita, assim como faríamos normalmente:

# slackpkg update

Depois de atualizadas as bases, vem a parte interessante da ferramenta. Tudo que precisamos para instalar o Mate Desktop em nossa distribuição é usar o comando:

# slackpkg install msb

Após concluída a instalação basta selecionar o novo ambiente através da ferramenta xwmconfig e, caso esteja no modo de incialização padrão da Slackware Linux,  iniciá-lo com o já tradicional startx. Simples não? Também acho!🙂

O mesmo plugin agora pode ser usado para a instalação de outras aplicações de terceiros, como por exemplo a LibreOffice, que seria instalado apenas assim:

# slackpkg install libreoffice

Ou o player de vídeos VLC:

# slackpkg install vlc

Realmente muito fácil não? O mesmo processo pode ser usado para a desistalação dos aplicativos instalados, que em nossos exemplos poderia ser da seguinte forma:

# slackpkg remove msb libreoffice vlc

Estes são apenas alguns exemplos mais populares de aplicações de terceiros que podem ser adicionadas à distribuição Slackware, sem a necessidade de muito trabalho na busca de pacotes, ou compilação dos mesmos para a disponibilização para utilização em um tempo menor. Existem várias outras aplicações disponíveis, e cuja disponibilidade pode ser consultada como normalmente faria, utilizando o recurso de busca do slackpkg.

Você pode explorar as outras opções disponíveis no arquivo de configuração do Slackpkg+, deixando-o da forma que melhor lhe convir, inclusíve inserindo prioridade a pacotes de repositórios específicos quando estes puderem ser encontrados em múltiplas fontes disponíveis. Vale a pena perder alguns minutos configurando-o para ser compensado com as facilidades por ele fornecidas.

Bem isso é tudo por hoje. Espero que tenham gostado e até a próxima!

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s