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!

Anúncios

Dropline GNOME 3.20 RC1, lançado! Setembro, 2016.

dropline_logo

Boa tarde pessoal! Long time no see! Bem, ainda estou por aqui. Meio ocupado, é verdade, mas ainda por aqui. E ressurgindo comigo temos o primeiro release candidate para a versão 3.20 da Dropline GNOME, projeto que visa manter o ambiente gráfico GNOME na nossa amada Slackware Linux.

Após um longo processo de adaptação da estrutura das aplicações, além de alguns contratempos por conta da falta de mão de obra no projeto, esta versão vem trazer mais uma vez uma opção para aqueles que não querem usar os ambientes gráficos disponibilizados por padrão na distribuição Slackware.

Por enquanto ainda não foi disponibilizado o instalador tradicional, porém o ambiente já está propício a testes externos que visam a eliminação de possíveis problemas que venham a surgir durante a utilização em massa. Para testar, recomenda-se uma instalação “limpa” da Slackware Linux 14.2, e com “limpa” entenda sem pacotes que não sejam os distribuídos com a própria distro.

Devo ressaltar que essa versão ainda não é a final, portanto é recomendável seguir com os testes apenas se tiver certeza de que possíveis problemas encontrados não sejam uma dor de cabeça, e mesmo assim é recomendável o backup do sistema, já que a substituição de arquivos originais da distribuição podem tornar o sistema inoperante em caso de tentativa de reversão.

Se deseja continuar, basta baixar os pacotes relativos à sua versão, i686 ou x86_64, através desse endereço:

http://www.droplinegnome.org/files/3.20/

Acesse então o diretório que contém os arquivos baixados e, com permissão de superusuário, execute:

# upgradepkg --install-new *.txz

Edite o arquivo /etc/profile.d/lang.sh para que a língua seja compatível com o padrão UTF-8:

export LANG=pt_BR.UTF-8

Com isso você provavelmente já pode acessar o ambiente utilizando o comando startx.

Caso ocorra algum problema no carregamento do ambiente, fica a seu critério ajudar no desenvolvimento do mesmo reportando os erros com detalhes ao projeto, ou você pode escolher um outro ambiente gráfico instalado utilizando o xwmconfig, tentando carregá-lo.

Caso tudo mais venha a falhar, infelizmente o bom e velho restore from backup será necessário.

Slackware Linux – Notícias sobre o desenvolvimento. Dezembro, 2014.

Slackware logo

Embora já tenha se passado mais de um ano desde o lançamento da versão estável mais recente, ainda não há previsão sobre quando o projeto Slackware Linux liberará outra versão estável. Basicamente, durante este período, houve apenas correções para as diversas falhas de segurança que afetaram, e continuam afetando, as diversas distribuições GNU/Linux, não podendo portanto deixar de serem corrigidas também pela equipe de desenvolvimento da Slackware Linux. Acredito que devido às constantes manutenções que estão sendo necessárias para a correção destas falhas, mexendo em toda a estrutura da distribuição, estejam atrasando o lançamento de uma nova versão.

Além desses problemas, posso citar também a questão do ambiente gráfico KDE, que devido a mudanças na forma como é desenvolvido, também está impactando no desenvolvimento da Slackware Linux, já que há muitos anos este tem sido o ambiente gráfico padrão na distribuição.

Embora esta disponibilize vários outros ambientes, o KDE tem sido a grande player desde a exclusão do GNOME, ocorrida em março de 2005, e as recentes modificações na estrutura do KDE tem gerado problemas de adequação à estrutura da Slackware Linux.

De qualquer forma, a equipe continua trabalhando na atualização da distribuição durante este ano, e as mudanças mais recentes foram divulgadas dia 23 de dezembro no changelog, informando sobre a atualização do Kernel Linux para a versão 3.14.27, do Vim para a versão 7.4.560, Mesa para a versão 10.3.5, entre outras atualizações.

Além disso, outros aplicativos receberam correções para as recentes falhas de segurança encontradas, como por exemplo o NTP, atualizado para a versão 4.2.8, o PHP, atualizado para a versão 5.4.36, o Xorg-server, recompilado em sua versão 1.15.2, entre outras modificações.

Vamos acompanhar e ver quando seremos brindados com mais uma excelente e estável versão da Slackware Linux sendo disponibilizada.