sexta-feira, 20 de março de 2015

Gerenciador de pacotes Slapt-get

Slapt-get é uma excelente ferramenta tipo o apt-get das distros baseada no Ubuntu, embora não tão eficiente quando o mesmo é a que mais se aproxima deste, sendo o swaret e slackpkg deixando muito a desejar em vários aspectos.

Aqui um tutorial de uso do slapt-get criado na época que eu utilizava o Slackware 12.0 e que devem está valendo ainda, pois agora estou utilizando o Salix 14.1 que é baseado no Slackware 14.1 onde foram testadas estas opções que também funcionaram no Salix.

Configuração

O slapt-get já vem com alguns com os mirrors configurados, e para adicionar/remover mirrors você deve editar o arquivo:  /etc/slapt-get/slapt-getrc


Atualizando a lista de pacotes 

Para utilizar pela primeira vez o slapt-get ou se você adicionou/excluiu algum mirror você deve atualizar a lista de pacotes utilizando o comando abaixo.
# slapt-get --update

Lista das principais opções do slapt-get

A sintaxe é:
slapt-get opção1 opção2 pacote

As opções disponíveis na opção1 são:

  •   --install pacote (instalar o pacote)
  •   --update (atualiza a lista dos mirrors)
  •   --upgrade pacote (atualizar o pacote)
  •   --dist-upgrade (atualizar para a versão mais nova da distro)
  •   --remove pacote (remove o pacote do sistema)
  •   --installed (mostra os pacotes que estão instalados no sistema)
  •   --show pacote (exibi informações sob o pacote)

  
E na opção2 são:

  •      --download-only (só faz o download, deve utilizar junto com install/upgrade)
  •      --print-uris (exibi a URL do pacote, mas não faz download)
  •      --no-md5 (não faz verificação md5)
  •      --ignore-dep (ignora dependências)

  

Pesquisando um pacote para download

# slapt-get --search abiword 

O slapt-get não faz distinção de maiúsculas e minúscula na palavra a ser pesquisa.
Exemplo: abiword, ABIWORD e Abiword são a mesma coisa na pesquisa, mas na hora de especificar o arquivo para download ou outra opção qualquer diferente de --search é que tem que está com a grafia exata.

Exibindo a descrição de um pacote antes de fazer o download

# slapt-get --show abiword

São  mostrado informações do pacote, como descrição, tamanho, md5sum, mirror a onde está, e as dependências deste  pacote para ser instalado caso houver.

Exibindo a lista de todos os arquivos do pacote

# slapt-get --filelist abiword

Exibindo a url do pacote a ser instalado 

Embora que foi usado a opção install o pacote não será instalado e nem é feito o download do mesmo, mas é necessário especificar.

# slapt-get --install --print-uris xrick

Lendo Listas de Pacotes... Pronto
Os seguintes pacotes NOVOS serão instalados:
  xrick
0 atualizados, 1 para instalar, 0 para remover e 0 não atualizados.
É necessário fazer o download de 1,5MB de arquivos comprimidos.
Depois de desempacotar será utilizado 1,7MB de espaço em disco.
http://repository.slacky.eu/slackware-12.0/games/xrick/021212/xrick-021212-i486-1pfb.tgz


Instalando pacotes com dependências

# slapt-get --install --ignore-dep mandvd

Lendo Listas de Pacotes... Pronto
Os seguintes pacotes têm as dependências não preenchidas:
mandvd: Depende: qt >= 3.3.8-i486-5_slack12.0
Os seguintes pacotes NOVOS serão instalados:
  mandvd
0 atualizados, 1 para instalar, 0 para remover e 0 não atualizados.
É necessário fazer o download de 2,6MB de arquivos comprimidos.
Depois de desempacotar será utilizado 5,4MB de espaço em disco.
1/1 Obtendo http://repository.slacky.eu/slackware-12.0/mandvd 2.4-i686-1as [2,6MB]...Pronto

Note que ao utilizar este método normalmente a execução do programa não funcionará devendo você ter experiência para resolver manualmente a dependência que falta.

Baixando os pacotes mas não instalado no sistema

# slapt-get --install --download-only menueditor

A opção --download-only faz que seja baixado somente o pacote e que o mesmo não seja instalado no sistema. Mas durante o processo do download ele exibi a seguinte mensagem:

Os seguintes pacotes NOVOS serão instalados:
  menueditor 
Os seguintes pacotes serão atualizados:
  seamonkey 
1 atualizados, 1 para instalar, 0 para remover e 0 não atualizados.

Mas o(os) pacote(s) não é instalado, apenas é baixado.

Nota:
Todos os pacotes que foram baixados vai slapt-get instalado automaticamente pelo mesmo ou especificando a opção baixar para depois você instalar manualmente, se forem versões de correções ou patchs, mesmo que você não saiba que são, elas serão automaticamente colocados numa única pasta sem separação da categoria do pacote que ficam em: /var/slapt-get/patches/packages

Normalmente as correções e patchs de pacotes para o Slackware 12.0 tem sempre a terminação _slack12.0 antes da extensão tgz.
Exemplos:

bzip2-1.0.5-i486-1_slack12.0.tgz
cups-1.3.7-i486-1_slack12.0.tgz
libpng-1.2.27-i486-1_slack12.0.tgz
seamonkey-1.1.11-i486-1_slack12.0.tgz

Se já foi instalado um pacote com a mesma versão do que você vai instalar usando o comando  upgradepkg será exibida a seguinda mensagem:

/var/slapt-get/patches/packages# upgradepkg bzip2-1.0.5-i486-1_slack12.0.tgz 

+=============================================| Skipping package bzip2-1.0.5-i486-1_slack12.0 (already installed)
+=============================================

Onde o pacote  bzip2-1.0.5-i486-1_slack12.0 foi instalado automaticamente anteriormente pois era uma dependência de um pacote principal que foi instalado automaticamente, e como eu usei o comando upgradepkg ele avisa que esta versão já está instalada (already installed).

Se o pacote especificado depende de outros pacotes para funcionar os mesmos também serão baixados e também não serão instalados. Os pacotes baixados mas não instalados ficarão no diretório da categoria a que ele pertence, abaixo de  /var/slapt-get/slackware (exceto pacote de patches e correções).

Se decidido instalar os pacotes que foram baixados sem instalar no sistema e suas dependências ser houver, basta fazer slapt-get --install pacote, pois agora eles não serão baixados já que os mesmos estão no seu disco (deste que você não tenha limpado o cache antes disto).

Removendo um pacote

# slapt-get --remove abiword

O slapt-get remover pacotes da sua instalação do slackware, instalação manual com o installpkg, pacotes instalados pelo swaret  e do próprio slapt-get, pois ele utiliza a lista de /var/log/packages.

Listando todos os pacotes instalados

# slapt-get --installed

São listados todos os pacotes instalados no sistema, incluindo o que foi instalado junto com o sistema, manualmente com installpkg, swaret, slackpkg, slapt-get e sbopkg.

Limpando o cache

Para limpar o cache e liberá espaço em disco use a opção --clean no qual isto removerá todos os pacotes tgz que estão a partir de /var/slapt-get/categoria-do-pacote.
# slapt-get --clean

Nota:
Não é removido o nome da pasta do  pacote e a pasta da versão do pacote removido, sendo removido somente todos os pacotes tgz e nas versões recentes do Slackware o txz.
Também não será removido a lista da base de dados dos pacotes que é /var/slapt-get/package_data.


Mais sob o slapt-get

Onde fica os pacotes baixados pelo slapt-get para posterior instalação ?

Os pacotes baixados pelo slapt-get ficam a partir de /var/slapt-get e o caminho completo do pacote baixado é formado pelo sintaxe: /var/slapt-get/categoria-do-pacote/nome_do_pacote/versão-do-pacote/pacote.tgz, onde categoria-do-pacote é substituído de acordo com o tipo do pacote, como games, Library,  office. X11, etc. Ou seja, se você baixar um pacote de games ele irá para a pasta /var/slapt-get/games, se for um pacote de office ele irá pra /var/slapt-get/office e assim sucessivamente.

Onde fica declarada as dependências de um pacote ?

As dependências de um pacote fica no arquivo PACKAGES.TXT dentro da pasta de cada versão do slackware, junto com o nome, e descrições do pacote, mas nem todos os pacotes declarados neste arquivo tem listado suas dependências e dependendo da versão do Slackware (mais antigas) nem estão declaradas as dependências neste arquivo.
http://de-mirror.org/linuxpackages//Slackware-12.0/PACKAGES.TXT


Onde fica a base de dados do slapt-get ?

O arquivo /var/slapt-get/package_data é um arquivo de texto ascii que contém a descrição do pacote, suas dependências, localização do mirror e o  MD5 do pacote.
Por isto você pode fazer pesquisa de um pacote mesmo desconectado da internet e também obter a descrição do  pacote especificado, já que a base de dados sob os pacotes disponíveis na internet estão no seu computador, de cada mirror cadastrado.
Um detalhe é que se você possuir 4 mirrors no /etc/slapt-get/slapt-getrc e quando você for pesquisar um pacote e este for exatamente da mesma versão e nos 4 mirrors existe o mesmo pacote será listado 4 vezes o nome do pacote na pesquisa, pois ele foi encontrado nos 4 mirrors cadastrado.

Sob as dependências

O slapt-get baixa as dependências de um pacote especificado para o download automaticamente, mas caso haja dependências das dependências do pacote especificado isto ainda por enquanto ele não resolve e quando você for executar o aplicativo baixado em uma janela de terminal verá que é necessário tal arquivo para funcionar.
# slapt-get --install --ignore-dep gnash

Lendo Listas de Pacotes... Pronto
Os seguintes pacotes têm as dependências não preenchidas:
  gnash: Depende: cairo >= 1.4.12-i486-1_slack12.0
Os seguintes pacotes NOVOS serão instalados:
  agg icu boost gnash
0 atualizados, 4 para instalar, 0 para remover e 0 não atualizados.
É necessário fazer o download de 14,3MB de arquivos comprimidos.
Depois de desempacotar será utilizado 69,5MB de espaço em disco.
1/4 Obtendo http://repository.slacky.eu/slackware-12.0/ agg 2.5-i486-1as [341,0kB]...Pronto
2/4 Obtendo ftp://ftp.de-mirror.org/linuxpackages//Slackware-12.0/ icu 3.8.1-i486-1kjz [6,3MB]...Pronto
3/4 Obtendo http://repository.slacky.eu/slackware-12.0/ boost 1.35.0-i686-1as [5,6MB]...  
4/4 Obtendo http://repository.slacky.eu/slackware-12.0/ gnash 0.8.2-i686-1as [2,0MB]...  0

Nota
A versão do cairo exibida como dependência não existe para o Slackware 12 e sim para o Slackware 12.1, mas você pode fazer o download manualmente e instalar sem problema.


Os pacotes personalizados para o Salix 14.1, ficam em  /var/slapt-get/salix tendo a mesma estrutura de diretórios do /var/slapt-get/slackware.

Para usar o slapt-get

O slapt-get para funcionar precisa dos pacotes curl-versão, libgpg-error-versão e gpgme-versão de acordo com a versão do slapt-get foi copilado.
Front end gráfico para o slapt-get é gslapt.

Pacotes usados no slackware 12
slapt-get-0.9.12d-i386-1
curl-7.16.2-i486-1
gpgme-1.1.4-i486-1
libgpg-error-1.5-i486-1

2 comentários:

  1. Ótimo material.
    Obrigado.
    Estou com uma dificuldade na atualização erro no barramento, gslapt não abre tbm, agradeço a ajuda.

    ResponderExcluir
  2. Parabéns muito boa a aplicação vou desenvolver um menu mais interativo em C, apartir do seu POST.

    ResponderExcluir