aboutsummaryrefslogtreecommitdiff
path: root/trunk
diff options
context:
space:
mode:
authorrhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58>2007-04-17 01:01:27 +0000
committerrhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58>2007-04-17 01:01:27 +0000
commitc892ac977939879070d366dd55caec4e0c8deec9 (patch)
tree32c8ced291c53859c043d43e9bfcb72330d9cdd4 /trunk
parent4659a348863b8c34d8597af2858a8c3b17447736 (diff)
downloadsimplepkg-c892ac977939879070d366dd55caec4e0c8deec9.tar.gz
simplepkg-c892ac977939879070d366dd55caec4e0c8deec9.tar.bz2
doc update / simplaret support for --get and --install with full package filename
git-svn-id: svn+slack://slack.fluxo.info/var/svn/simplepkg@346 04377dda-e619-0410-9926-eae83683ac58
Diffstat (limited to 'trunk')
-rw-r--r--trunk/doc/CHANGELOG7
-rw-r--r--trunk/doc/README.pt_BR2
-rw-r--r--trunk/doc/README.simplaret.pt_BR173
-rw-r--r--trunk/install/slack-desc2
-rwxr-xr-xtrunk/simplepkg.SlackBuild2
-rwxr-xr-xtrunk/src/simplaret49
6 files changed, 142 insertions, 93 deletions
diff --git a/trunk/doc/CHANGELOG b/trunk/doc/CHANGELOG
index ad62068..d7215bb 100644
--- a/trunk/doc/CHANGELOG
+++ b/trunk/doc/CHANGELOG
@@ -1,6 +1,13 @@
simplepkg changelog
===================
+0.5pre19
+========
+
+ - simplaret:
+ - options --get and --install now can work
+ with full file name.
+
0.5pre15-18
===========
diff --git a/trunk/doc/README.pt_BR b/trunk/doc/README.pt_BR
index 80634d2..18e2b84 100644
--- a/trunk/doc/README.pt_BR
+++ b/trunk/doc/README.pt_BR
@@ -46,7 +46,7 @@ comando instalar o template numa partição. Além do template, você precisa config
para obter pacotes de um repositório local ou remoto.
Gerenciar instalações e pacotes não é tudo o que o simplepkg faz. Ele pode ser usado até na
-criação de jaula e vservers. Ou então ele ...
+criação de jaula e vservers.
Arquitetura
-----------
diff --git a/trunk/doc/README.simplaret.pt_BR b/trunk/doc/README.simplaret.pt_BR
index 7b1cd58..5671313 100644
--- a/trunk/doc/README.simplaret.pt_BR
+++ b/trunk/doc/README.simplaret.pt_BR
@@ -2,135 +2,136 @@ simplaret: ferramenta para obtenção de pacotes
----------------------------------------------
O simplaret é a ferramenta do simplepkg utilizada para obter pacotes de repositórios locais
-ou remotos. Com ele, você pode não só baixar pacotes do seu sistema slackware como também pode
-baixar de qualquer versão ou arquitetura cujo repositório siga os Mirror Guidelines do slackware,
-permitindo que você gerencie facilmente todas as suas jaulas e instalações de slackware,
-independentemente da arquitetura ou versão que elas utilizem.
+ou remotos. Com ele, você pode não só baixar pacotes do seu sistema Slackware como também pode
+baixar de qualquer versão ou arquitetura cujo repositório siga os Mirror Guidelines do Slackware,
+como por exemplo Slamd64 e Slackintosh, permitindo que você gerencie facilmente todas as suas
+jaulas e instalações de Slackware, independentemente da arquitetura ou versão que elas utilizem.
-Ele foi inspirado no comportamento do swaret mas não pretende de modo algum chegar no nível de
-complexidade deste, mas sim executar a obtenção de pacotes de um modo diferente. Sua finalidade
-é apenas baixar pacotes para que os aplicativos do simplepkg possam utilizá-lo posteriormente.
-O simplaret ainda pode ser usado sozinho para procurar e baixar pacotes.
+Além da obtenção, o simplaret ainda pode fazer a instalação, a remoção ou a atualização dos
+pacotes de um sistema e também das demais jaulas existentes numa máquina.
Documentação
------------
-A documentação atualizada do simplaret se encontra em http://slack.sarava.org/node/16
+A documentação atualizada do simplaret se encontra em http://slack.sarava.org/simplaret.
Obtendo e instalando
--------------------
-O simplaret acompanha o simplepkg e por isso sua instalação e configuração é dada no artigo do simplepkg.
-Ele utiliza o mesmo arquivo de configuração do simplepkg, o /etc/simplepkg/simplepkg.conf e guarda as
-definições de repositórios em /etc/simplepkg/repos.conf.
+O simplaret acompanha o simplepkg e por isso sua instalação é feita baixando o pacote do simplepkg
+em http://slack.sarava.org/packages/noarch/ e em seguida instalando-o com o comando
-Organização do repositório
---------------------------
+ installpkg simplepkg-VERSAO-noarch-BUILD.tgz
-O repositório de armazenamento local do simplaret é definido pelo parâmetro STORAGE e é organizado
-da seguinte maneira:
+A partir daí você já pode utilizar o simplaret para baixar pacotes dos repositórios padrão ou
+então alterar a lista de repositórios do arquivo /etc/simplepkg/repos.conf ou a configuração
+do aplicativo pelo arquivo /etc/simplepkg/simplepkg.conf.
- $STORAGE/arch/version/
-
-Pacotes obtidos num repositório que não seja oficial da distribuição ficam em
-
- $STORAGE/arch/version/repository-name/
+Usando o simplaret
+------------------
-Isso quer dizer, por exemplo, que pacotes do slackware 10.2 ficariam em
+Em geral, como o simplaret armazena as informações em pastas do sistema, algumas funcionalidades
+só estarão disponíveis quando o mesmo é rodado pelo superusuário do sistema.
- $STORAGE/i386/10.2/
+Antes de explorar todas as funcionalidades do simplaret, é necessário atualizar a lista de
+pacotes para sua arquitetura e versão, o que pode ser feito com o comando
-e os pacotes obtidos a partir do repositório slamd64 do slack.sarava.org ficaria, por exemplo, em
+ simplaret --update
- $STORAGE/x86_64/10.2/slack.sarava.org/
+ou simplesmente
-No arquivo de repositórios (/etc/simplepkg/repos.conf), as definições de repositório seguem o
-seguinte esquema, semelhante ao formato de configuração do swaret:
+ simplaret update
- ROOT-i386="http://slack.sarava.org/slackware/"
- ROOT-x86_64="http://ftp.heanet.ie/pub/slamd64/"
- REPOS-i386-10.2="slack.sarava.org%http://slack.sarava.org/packages/slackware/slackware-10.2/"
- REPOS-x86_64-10.2="slack.sarava.org%http://slack.sarava.org/packages/slamd64/slamd64-10.2/"
+já que o simplaret suporta que suas opções básicas de linha de comando sejam passas precedidas
+por dois hífens ou não (--update ou update).
-Repositórios definidos como ROOT são aqueles que
+Depois de atualizar a lista de pacotes, experimente buscar por um pacote com um comando do tipo
- - Possuem pacotes da distribuição oficial ou
- - Estão organizados por versão, de acordo com os mirror guidelines
+ simplaret search ekiga
-Já os repositórios definidos como REPOS são aqueles que contém pacotes para uma versão específica e/ou
-que são não-oficiais.
+O resultado pode ser algo do tipo
-Quando o simplaret busca ou obtém um pacote, a precedência pelos repositórios é dada às definições de
-ROOT e em seguinda às de REPOS. As definições REPOS ainda devem possuir, além da URL do repositório, um
-nome para identificá-lo, sendo que esses dois campos são separados por um delimitador.
+ REPOS repository sarava, arch: i386, version: 11.0: ekiga-2.0.5-i586-1rd.tgz
-Baixando as listas de pacotes
------------------------------
+Como veremos adiante, "REPOS" significa o tipo de repositório, "sarava" é o nome do
+repositório, "arch" mostra a arquitetura do pacote e do repositório (i386, no caso)
+e "version" a versão do repositório (11.0, no caso).
-Após configurá-lo, é preciso atualizar a lista de pacotes:
+Para instalar esse pacote, basta o comando
- simplaret --update
+ simplaret install ekiga
-Isso atualiza a lista de pacotes da arquitetura definida em DEFAULT_ARCH e da versão DEFAULT_VERSION
-apenas. Se você quiser forçar a atualização, por exemplo, para a arquitetura x86_64 (slamd64)
-e versão 10.2, basta
+Por padrão, se o simplaret encontrar no repositório um arquivo slack-required referente
+ao pacote en questão (ou seja, um arquivo ekiga.slack-required na mesma pasta que o pacote
+do ekiga, neste caso), então o simplaret tentará instalar todos os requisitos contidos nesse
+slack-required, caso já não estejam instalados no sistema. Essa resolução de dependências
+automática pode, no entanto, ser desabilitada através de um parâmetro de configuração, como
+veremos a seguir.
- ARCH=x86_64 VERSION=10.2 simplaret --update
+Se você apenas quiser baixar o pacote, digite apenas
-Buscando pacotes
-----------------
+ simplaret get ekiga
-Para buscar um pacote, esses comandos servem de exemplo:
+No caso do simplaret encontrar mais de um pacote com o mesmo nome, ele baixará na ordem que
+a opção "search" listá-los, sendo que essa precedência é definida de acordo com a ordem em
+que os repositórios estão listados no arquivo de configuração. Por exemplo, o comando
- simplaret --search coreutils
+ simplaret search kernel-generic
-pacote para o Slack/390,
+pode retornar algo como
- ARCH=s390 simplaret --search x11
+ ROOT repository sarava, arch: i386, version: 11.0: kernel-generic-2.6.17.13-i486-1.tgz
+ ROOT repository sarava, arch: i386, version: 11.0: kernel-generic-2.6.18-i486-1.tgz
-e para slackware 10.1 com pacotes adicionais em i686,
+Assim, o comando
- ARCH=i686 VERSION=10.1 simplaret --search icecast
+ simplaret install kernel-generic
-Baixando um pacote
-------------------
+instalará o pacote "kernel-generic-2.6.17.13-i486-1.tgz" ao invés do pacote
+"kernel-generic-2.6.18-i486-1.tgz". Caso você queira forçar a instalação do
+segundo pacote, basta especificá-lo com o nome completo:
-Para baixar um pacote:
+ simplaret install kernel-generic-2.6.18-i486-1.tgz
- simplaret --get icecast
+Se um pacote já estiver instalado no sistema, a opção install fará o upgrade do mesmo, caso
+a versão ou o build number do pacote presente no repositório for diferente da instalada no
+sistema. Assim, o comando
-O simplaret baixa o primeiro pacote na ordem de precedência dos repositórios.
-Versões futuras deverão conter uma opção que force a obtenção do pacote de um
-repositório específico.
+ simplaret install simplepkg
-Baixando patches
-----------------
+atualiza o simplepkg caso haja uma nova versão disponível.
-Através do parâmetro de configuração PATCHES_DIR é possível especificar uma pasta
-onde os patches de cada distribuição serão armazenados, organizados também por arquitetura.
+Mais:
-Por exemplo, patches do slackware 10.2 ficarão sempre em
+ - Baixando patches
+ - Atualização
+ - Removendo pacotes
+ - Limpeza do cache
- $PATCHES_DIR/i386/10.2/
+Trabalhando com múltiplas arquiteturas e versões
+------------------------------------------------
-Os patches na verdade são baixados através de um "simplaret --get" e armazenados na subpasta
-de $STORAGE correspondente e apenas um link simbólico é mantido em $PATCHES_DIR/$ARCH/$VERSION.
+...
-Para baixar os patches, use uma chamada do tipo
+Trabalhando com múltiplas instalações
+-------------------------------------
- ARCH=arquitetura VERSION=versao simplaret --get-patches
+ - Instalação de pacotes
+ - Obtenção de patches
+ - Atualização
-E os patches dessa arquitetura e versão serão baixados.
+O arquivo repos.conf
+--------------------
-Apagando pacotes
-----------------
+ - Tipos de repositorio, suas prioridades e ordens de precedência.
-O repositório de pacotes de uma arquitetura e versão pode ser apagado com o comando
+Parâmetros de configuração do simplepkg.conf
+--------------------------------------------
- simplaret --purge
+...
-Mas pra quê serve isso?
------------------------
+Mas para quê serve isso?
+------------------------
Você pode estar se perguntando: quem utilizaria uma ferramenta que baixa pacotes de várias arquiteturas?
@@ -146,3 +147,17 @@ O condenado/a em questão que roda todas essas jaulas, pelos mais diversos motivo
de cabeça para manter os pacotes em ordem de forma manual. Com o simplaret e eventualmente com o simplepkg,
a tarefa se torna trivial.
+Além disso, as inúmeras novas tecnologias de virtualização poderão necessitar de um sistema de gerenciamento
+de pacotes que trabalha simultaneamente com múltiplas arquiteturas e versões.
+
+Mesmo que você possua apenas um único sistema do tipo Slackware em seu computador ou trabalhe apenas com uma
+única arquitetura e/ou versão, o simplaret possui todas as funcionalidades necessárias para facilitar seu
+dia-a-dia de gerenciamento de pacotes.
+
+Mais
+----
+
+ - Obtenção do código fonte
+ - Wiki de desenvolvimento
+ - Lista de discussão
+
diff --git a/trunk/install/slack-desc b/trunk/install/slack-desc
index 586d7b6..38ea489 100644
--- a/trunk/install/slack-desc
+++ b/trunk/install/slack-desc
@@ -9,7 +9,7 @@
simplepkg: simplepkg (slackware management system)
simplepkg:
simplepkg: simplepkg is a very small set of scripts intended to help slackware
-simplepkg: users and developers, like the createpkg packagement tool, simplaret
+simplepkg: users and developers, like the createpkg packaging tool, simplaret
simplepkg: package retrieval, mkjail chroot installer and templatepkg template
simplepkg: management system.
simplepkg:
diff --git a/trunk/simplepkg.SlackBuild b/trunk/simplepkg.SlackBuild
index e373fd9..d5831b5 100755
--- a/trunk/simplepkg.SlackBuild
+++ b/trunk/simplepkg.SlackBuild
@@ -6,7 +6,7 @@
PACKAGE="simplepkg"
PACK_DIR="package-$PACKAGE"
BUILD=${BUILD:=1rha}
-VERSION="0.5pre18"
+VERSION="0.5pre19"
ARCH="noarch"
LIBEXEC="/usr/libexec/$PACKAGE"
BINDIR="/usr/bin"
diff --git a/trunk/src/simplaret b/trunk/src/simplaret
index 00b0c25..419f048 100755
--- a/trunk/src/simplaret
+++ b/trunk/src/simplaret
@@ -487,18 +487,31 @@ function simplaret_search_and_delete {
function simplaret_get {
# get a package
- # usage: simplaret_get <package-name> [--silent]
+ # usage: simplaret_get <package-name|package-file-name> [--silent]
local silent generate_patches search search_results
+ local name version build
# prevent user to stay in $storage
cd
+ name="`package_name $1`"
+
+ if [ "$name" != "$1" ]; then
+ # simplaret_get was called with the package file
+ # name and not with just the package name
+ version="`package_version $1`"
+ build="`package_build $1`"
+ else
+ version=""
+ build=""
+ fi
+
# first search for an already downloaded package
for repos_type in patches root repos noarch; do
simplaret_set_storage_folder
- simplaret_search_and_delete $1 $storage $2
+ simplaret_search_and_delete $name $storage $2
if [ "$?" == "1" ]; then
return 0
@@ -507,7 +520,7 @@ function simplaret_get {
done
# then search for the package in the repositories
- search="`simplaret_search $1 --formatted`"
+ search="`simplaret_search $name --formatted`"
search_results="`echo "$search" | wc -l`"
for result in $search; do
@@ -523,7 +536,18 @@ function simplaret_get {
simplaret_repository_name
candidate="`basename $file`"
- if [ "`package_name $candidate`" == "$1" ]; then
+ if [ "`package_name $candidate`" == "$name" ]; then
+
+ if [ ! -z "$build" ] && [ ! -z "$version" ]; then
+ # simplaret_get was called with the package file
+ # name and not with just the package name
+ if [ "$version" != "`package_version $candidate`" ] && \
+ [ "$build" != "`package_build $candidate`" ]; then
+ # the package version and/or build doesnt matched
+ # the desired one
+ continue
+ fi
+
simplaret_repository_url
# if repos_type == root, the package is a patch and
@@ -545,8 +569,8 @@ function simplaret_get {
rm $folder/$candidate.asc
fi
- if [ -f "$folder/$1.slack-required" ]; then
- rm $folder/$1.slack-required
+ if [ -f "$folder/$name.slack-required" ]; then
+ rm $folder/$name.slack-required
fi
# download the signature, if exist
@@ -555,8 +579,8 @@ function simplaret_get {
fi
# download slack-required, if exist
- if simplaret_check_url $repository_url/`dirname $file`/$1.slack-required; then
- simplaret_download $repository_url `dirname $file`/$1.slack-required $folder
+ if simplaret_check_url $repository_url/`dirname $file`/$name.slack-required; then
+ simplaret_download $repository_url `dirname $file`/$name.slack-required $folder
fi
if [ ! -f "$folder/$candidate" ]; then
@@ -824,9 +848,12 @@ function simplaret_checksum {
function simplaret_install {
# download and install a package
- # usage: simplaret_install <package-name> [--skip-checks]
+ # usage: simplaret_install <package-name|package-file-name> [--skip-checks]
local package root jail_arch jail_version slack_required dep dependency tmp
+ local name version build
+
+ name="`package_name $1`"
root="/$ROOT"
mkdir -p $root/var/log/setup/tmp
@@ -857,7 +884,7 @@ function simplaret_install {
package="$LAST_DOWNLOADED_PACKAGE"
if [ "$package" != "0" ] && [ ! -z "$package" ]; then
- slack_required="`dirname $package`/$1.slack-required"
+ slack_required="`dirname $package`/$name.slack-required"
if [ -f "$package" ]; then
if [ -f "$slack_required" ] && [ "$DEPENDENCY_CHECKING" == "1" ]; then
@@ -866,7 +893,7 @@ function simplaret_install {
( cat $slack_required | while read dep; do
if [ ! -z "$dep" ]; then
dependency="`echo $dep | awk '{ print $1 }'`"
- simplaret_solve_dep $1 $dependency $root
+ simplaret_solve_dep $name $dependency $root
fi
true
done )