Repository 32bit  Forum
Repository 64bit  Wiki

Aggiornare Slackware con SWARET e SLAPT-GET: differenze tra le versioni

Da Slacky.eu.
m (Costruzione di un Repository con swaret)
 
(19 revisioni intermedie di 2 utenti non mostrate)
Riga 1: Riga 1:
[[Category:Install_e_Upgrade]]
[[Category:Install_e_Upgrade]]
 
work in progress - gianlucacherubini@mac.com
 
== Introduzione ==
== Introduzione ==
Riga 60: Riga 58:
Questo sono le direttive più importanti, quasi tutte settate già di default (in grassetto quelle modificate e personalizzate):
Questo sono le direttive più importanti, quasi tutte settate già di default (in grassetto quelle modificate e personalizzate):
* VERSION=9.0: indica la versione installata della slackware
+
* '''VERSION=9.0''': indica la versione installata della slackware
* DESCRIPTIONS=1: 0/1 abilita o disabilita la descrizione estesa dei pacchetti
+
* '''DESCRIPTIONS=1''': 0/1 abilita o disabilita la descrizione estesa dei pacchetti
* ROOT=ftp://ftp.nluug.nl/pub/os/Linux/distr/slackware/slackware-current: i mirror della
* ROOT=ftp://ftp.nluug.nl/pub/os/Linux/distr/slackware/slackware-current: i mirror della
slackware (partono dalla 8.1 in su). Nel caso in cui i pacchetti siano ad esempio su di un CDROM si può usare ROOT=file:/mnt/cdrom
slackware (partono dalla 8.1 in su). Nel caso in cui i pacchetti siano ad esempio su di un CDROM si può usare ROOT=file:/mnt/cdrom
* REPOS_ROOT=Syntax: REPOS_ROOT=REPOSITORYNAME%PROTOCOL:URL, consente di specificare dei repository per Slackware Linux Packages. E’ possibile costruirsi il proprio repository dove depositare i packages che si vogliono rendere disponibili alla collettività, utilizzando swaret-tools. Il sito www.slacky.it mette a disposizione il suo, basta aggiungere in swaret.conf la direttiva: REPOS_ROOT=Slacky.it%http://www.slacky.it/download
+
* '''REPOS_ROOT=Syntax''': REPOS_ROOT=REPOSITORYNAME%PROTOCOL:URL, consente di specificare dei repository per Slackware Linux Packages. E’ possibile costruirsi il proprio repository dove depositare i packages che si vogliono rendere disponibili alla collettività, utilizzando swaret-tools. Il sito www.slacky.it mette a disposizione il suo, basta aggiungere in swaret.conf la direttiva: REPOS_ROOT=Slacky.it%http://www.slacky.it/repository/slackware/slackware-11.0
* RANDOMR=0: 0/1 per usare la lista dei mirror in modo random
* RANDOMR=0: 0/1 per usare la lista dei mirror in modo random
* EXCLUDE=kernel lilo swaret: consente di escludere dalla lista pacchetti che è meglio aggiornare a mano
* EXCLUDE=kernel lilo swaret: consente di escludere dalla lista pacchetti che è meglio aggiornare a mano
Riga 72: Riga 70:
* DEP_UPGRADE=1: effettua l’upgrade utilizzando il controllo delle dipendenze
* DEP_UPGRADE=1: effettua l’upgrade utilizzando il controllo delle dipendenze
* MD5CHECK=1: effettua l’il controllo dell’MD5
* MD5CHECK=1: effettua l’il controllo dell’MD5
* DESC=1: mostra la descrizione estesa dei pacchetti durante l’upgrade o l’installazione
+
* '''DESC=1''': mostra la descrizione estesa dei pacchetti durante l’upgrade o l’installazione
* OFFSET=40: modifica il numero di pacchetti per offset
+
* '''OFFSET=40''': modifica il numero di pacchetti per offset
* LOG=1: effettua il log delle operazioni in LOG_FILE=/var/log/swaret
* LOG=1: effettua il log delle operazioni in LOG_FILE=/var/log/swaret
* NIC=eth0: specifica il device da utilizzare per ricercare i pacchetti su internet. Nel caso in cui si utilizzi una ROOT locale occorre specificare NIC=lo.
* NIC=eth0: specifica il device da utilizzare per ricercare i pacchetti su internet. Nel caso in cui si utilizzi una ROOT locale occorre specificare NIC=lo.
Riga 80: Riga 78:
* PASSIVE_FTP=1: abilita l’ftp passivo se necessario.
* PASSIVE_FTP=1: abilita l’ftp passivo se necessario.
* WGET_PROXY=http://proxy.some-domain-name.domain:HTTP_PROXY_PORT o RSYNC_PROXY=IP/Host:Port : consente di specificare un HTPP, FTP o RSYNC proxy per le nostre connessioni
* WGET_PROXY=http://proxy.some-domain-name.domain:HTTP_PROXY_PORT o RSYNC_PROXY=IP/Host:Port : consente di specificare un HTPP, FTP o RSYNC proxy per le nostre connessioni
  +
  +
Maggiori informazioni si trovano in [http://www.swaret.org/index.php?menu=htus how-to-use-swaret]
  +
  +
La sintassi in breve è:
  +
  +
root@fly:~# swaret -h
  +
swaret 1.3.4
  +
Usage Command: swaret --ACTION [KEYWORD] [OPTION]
  +
--update
  +
--upgrade [KEYWORD] [-a]
  +
--install [KEYWORD] [-a|-p|-ap]
  +
--reinstall [KEYWORD] [-a|-p|-ap]
  +
--remove KEYWORD [-a]
  +
--get [KEYWORD] [-a|-p|-ap|-s|-as]
  +
--dep [KEYWORD] [-a]
  +
--resume [-p|-s]
  +
--list [-p|-s|-i|-u|-n|-np]
  +
--search KEYWORD [-p|-s|-i|-u|-n|-np]
  +
--show [KEYWORD] [-p|-i]
  +
--changelog
  +
--exclude [-on|-off|-gen]
  +
--set KEYWORD
  +
--libmaker
  +
--smirror
  +
--pgp [-i]
  +
--log [-t]
  +
--clearlog
  +
--purge [-s|-d #|-ds #|-w #|-ws #|-v]
  +
--config
  +
--faq
  +
--htus
  +
--manual [-c]
  +
--help
  +
--morehelp
  +
--version
  +
  +
Bisogna dire che ha molte opzioni, ma può essere di immediato utilizzo seguendo i passaggi sotto elencati:
  +
  +
# Usando il comando swaret –-update come primo, si ottiene la lista dei pacchetti e delle patch (aggiornamenti) disponibili;
  +
# Una volta effettuato l’update possiamo listare i pacchetti con il comando swaret –-list e visualizzare un elenco diviso in pagine con tutti i pacchetti disponibili;
  +
# Per effettuare un upgrade è sufficiente usare swaret –-upgrade KEYWORD dove la keyword è il nome del pacchetto (o una sua parte) che vogliamo aggiornare. Se swaret trova delle positività ed individua dei pacchetti ci chiede attraverso un prompt [Y/N] se vogliamo procedere all’upgrade;
  +
# Per effettuare invece installazioni, la procedura è simile alla precedente solo che il comando da utilizzare è swaret –-install;
  +
# Analogamente esiste il comando swaret –-remove per rimuovere il pacchetto installato.;
  +
# Se si vuole solo effettuare il download del pacchetto e non la sua installazione si può usare swaret –-get. Tutti i pacchetti verranno depositati nella directory /var/swaret potranno essere manipolati con l’ausilio del programma pkgtool;
  +
# Un’altra funzionalità importante consente di verificare le dipendenze: con swaret --dep –a, viene effettuato il controllo automatico delle dipendenze dei pacchetti.
  +
# Se si vogliono avere informazioni dettagliate su di un pacchetto si può utilizzare swaret –show KEYWORD, ad esempio:
  +
  +
root@fly:~# swaret --show openssh -i
  +
swaret 1.3.4
  +
  +
Please wait.....Description for openssh-3.7.1p2-i486-1:
  +
----------------------------------------------------------------------
  +
ssh (Secure Shell) is a program for logging into a remote machine and
  +
for executing commands on a remote machine. It is intended to replace
  +
rlogin and rsh, and provide secure encrypted communications between
  +
two untrusted hosts over an insecure network. sshd (SSH Daemon) is
  +
the daemon program for ssh. OpenSSH is based on the last free version
  +
of Tatu Ylonen's SSH, further enhanced and cleaned up by Aaron
  +
Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt, and
  +
Dug Song. It has a homepage at http://www.openssh.com/
  +
  +
Ho provato Swaret con Slack 8.1 e 9.0/9.1 e mi è sembrato funzionale avendo anche il controllo delle dipendenze, che può ovviamente essere disattivato. Ci tenevo comunque a segnalare che l’upgrade del sistema è sempre un’operazione delicata specie se si cerca di upgradare dei software che implicano l’utilizzo di altri programmi che swaret non è in grado di aggiornare automaticamente.
  +
  +
Ad esempio su una Slack 9.1 se volete aggiornare Apache (alla 1.3.29) occorre anche aggiornare mod_ssl e PHP che sono disponibili sul sistema. In questo modo si ottiene un apache completamente aggiornato per cui:
  +
  +
swaret --upgrade apache
  +
swaret --upgrade mod_ssl
  +
swaret --upgrade php
  +
  +
Il mio consiglio è sempre quello di provare il sistema di upgrade su un PC di appoggio con la stessa distribuzione. Se il tutto funziona e si rivela affidabile allora si può passare sui sistemi in produzione.
  +
  +
Io lo sto usando abbastanza, ma solo per quei software che non richiedono compilazioni particolari per cui preferisco ancora lavorare a mano.
  +
  +
Ad esempio ssh, ftp e bind, solo per citarne alcuni possono essere tranquillamente upgradati con swaret.
  +
Pensate che è addirittura possibile impostare una voce del cron che effettua l’update automatico, un pò come per le firme degli antivirus. Non so se sia una cosa buona, ma per programmi non troppo complessi o vitali direi che si potrebbe anche fare.
  +
  +
#crontab
  +
00 02 * * * /usr/sbin/swaret --set OFFSET=0 && /usr/sbin/swaret --update && /usr/sbin/swaret --upgrade ssh -a
  +
&& /usr/sbin/swaret --set OFFSET=15
  +
  +
Questo comando ad esempio ogni notte esegue un update per verificare la disponibilità di una nuova versione di ssh e se presente la installa automaticamente (-a). L’unica cosa da notare è l’impostazione dell’OFFSET (set di pacchetti listati) a zero e il flag –a
  +
che consentono a swaret di lavorare senza interruzione o senza porre domande.
  +
  +
Esempio di aggiornamento di Apache
  +
  +
root@fly:/var/log# swaret --upgrade apache-1.3.29-i486-1
  +
swaret 1.3.4
  +
  +
Please wait.....Making a List of available Packages matching Keyword: apache-1.3.29-i486-1...
  +
New: apache-1.3.29-i486-1 (1651 kB) - Installed: apache-1.3.28-i486-2
  +
  +
Upgrade apache-1.3.28-i486-2 to apache-1.3.29-i486-1? (y/n): [y]
  +
[ ftp://ftp.nluug.nl/pub/os/Linux/distr/slackware/slackware-current ]
  +
### Fetching apache-1.3.29-i486-1 (1651 kB)...
  +
--- 2 kB/1651 kB [TOTAL: 2 kB/1651 kB] ~ 0 kB/s
  +
--- 2 kB/1651 kB [TOTAL: 2 kB/1651 kB] ~ 0 kB/s
  +
--- 7 kB/1651 kB [TOTAL: 7 kB/1651 kB] ~ 5 kB/s
  +
--- 14 kB/1651 kB [TOTAL: 14 kB/1651 kB] ~ 7 kB/s
  +
--- 15 kB/1651 kB [TOTAL: 15 kB/1651 kB] ~ 1 kB/s
  +
--- 31 kB/1651 kB [TOTAL: 31 kB/1651 kB] ~ 16 kB/s
  +
--- 38 kB/1651 kB [TOTAL: 38 kB/1651 kB] ~
  +
  +
Nel caso in cui swaret rilevi che l’aggiornamento o la patch sono già presenti lo segnala e non effettua alcuna operazione:
  +
  +
root@fly:~# swaret --upgrade apache
  +
swaret 1.3.4
  +
Please wait.....Making a List of available Packages matching Keyword: apache...
  +
Installed Package(s) matching Keyword 'apache' up-to-date!
  +
  +
== Aggiornamento di cdrtools ==
  +
  +
Se volessimo aggiornare i cdrtools presenti sul nostro sistema possiamo semplicemente utilizzare il comando swaret –upgrade in questo modo. Prima accertiamoci della presenza di un update disponibile e verifichiamone lo status sul nostro sistema:
  +
  +
root@glock:~# swaret --list |grep cdrtools
  +
cdrtools-2.00.3-i486-1 (778 kB) [Status: INSTALLED]
  +
cdrtools-2.01a27-i486-1sl (834 kB) (Slacky.it) [Status: NOT INSTALLED (Installed: cdrtools- 2.00.3-i486-1)]
  +
  +
Dopo verificato che si tratta di un pacchetto NOT INSTALLED,possiamo procedere per installarne la nuova versione sul nostro sistema:
  +
  +
root@glock:~# swaret --upgrade cdrtools*
  +
swaret 1.6.1-3
  +
  +
Listing available Packages matching Keyword: cdrtools*...
  +
New: cdrtools-2.01a27-i486-1sl (834 kB) (Slacky.it) - Installed: cdrtools-2.00.3-i486-1
  +
  +
Upgrade cdrtools-2.00.3-i486-1 to cdrtools-2.01a27-i486-1sl? (Slacky.it) (y/n/A/Q): [y]
  +
[ http://www.slacky.it/download ]
  +
### Fetching cdrtools-2.01a27-i486-1sl (834 kB)...
  +
--- 834 kB/834 kB [TOTAL: 834 kB/834 kB] ~ 2 kB/s DONE!
  +
=> <MD5CHECK> MD5 for Package cdrtools-2.01a27-i486-1sl OK!
  +
=> cdrtools-2.01a27-i486-1sl has been saved in: /var/swaret/repos/Slacky.it!
  +
=> Upgrading cdrtools-2.00.3-i486-1 to cdrtools-2.01a27-i486-1sl... DONE!
  +
%%% Verifying Dependencies... Libraries resolved successfully!
  +
  +
Ovviamente se abbiamo un pò di tempo e di banda possiamo anche effettuare l’aggiornamento totale del sistema.
  +
  +
root@glock:/usr/src# swaret --set OFFSET=0 && swaret --upgrade -a
  +
  +
Io ho preso una slack 9.1 installata di fresco è ho provato a fare l’upgrade totale: il sistema si è aggiornato senza problemi, solo Apache mi ha dato un piccolo problema e ho dovuto reinstallare i moduli.
  +
  +
Gli aggiornamenti effettuati sono analizzabili consultando il file di log /var/log/swaret, che ci consente di capire quali operazioni sono state effettuate sul sistema.
  +
  +
Ad esempio la direttiva function_upgrade indica che è stato effettuato un upgrade verso una versione più recente mentre dependency_check mostra come sia stato necessario soddisfare una dipendenza con l’installazione di librerie aggiuntive.
  +
  +
Per chi volesse analizzare le operazioni di swaret è possibile consultare il relativo file di log:
  +
  +
root@fly:/var/log# tail -f swaret
  +
Mon Nov 10 17:16:58 AKST 2003: [ dependency_check() ] -
  +
%%% Verifying Dependencies... Libraries resolved sucessfully!
  +
Mon Nov 10 17:25:36 AKST 2003: [ GLOBAL ] - swaret --upgrade php
  +
Mon Nov 10 17:25:36 AKST 2003: [ function_upgrade() ] - Installed Package(s) matching Keyword 'php' up-to-date!
  +
Mon Nov 10 17:26:12 AKST 2003: [ GLOBAL ] - swaret --upgrade apache
  +
Mon Nov 10 17:26:13 AKST 2003: [ function_upgrade() ] - Installed Package(s) matching Keyword 'apache' up-to-date!
  +
  +
root@glock:~# cdrecord --version
  +
Cdrecord-Clone 2.01a27 (i686-pc-linux-gnu) Copyright (C) 1995-2004 Jörg Schilling
  +
  +
== Installazione di un nuovo package ==
  +
  +
Se volessimo installare un nuovo pacchetto possiamo usare il comando swaret --install, come nell’esempio mostrato che consente di installare l’ottimo tool di masterizzazione K3b, prelevando il pacchetto dal repositoru slacky.it.
  +
  +
root@glock:~# swaret --install k3b-0.11.7-i486-1sl
  +
swaret 1.6.1-3
  +
  +
Listing available Packages matching Keyword: k3b-0.11.7-i486-1sl...
  +
k3b-0.11.7-i486-1sl (3366 kB) (Slacky.it)
  +
  +
Install k3b-0.11.7-i486-1sl (Slacky.it)? (y/n/A/Q): [y]
  +
[ http://www.slacky.it/download ]
  +
### Fetching k3b-0.11.7-i486-1sl (3366 kB)...
  +
--- 3366 kB/3366 kB [TOTAL: 3366 kB/3366 kB] ~ 68 kB/s DONE!
  +
=> <MD5CHECK> MD5 for Package k3b-0.11.7-i486-1sl OK!
  +
=> k3b-0.11.7-i486-1sl has been saved in: /var/swaret/repos/Slacky.it!
  +
=> Installing k3b-0.11.7-i486-1sl... DONE!
  +
  +
INFORMATION: Set DEPENDENCY to 0 in /etc/swaret.conf to disable Dependency Support.
  +
  +
== Costruzione di un Repository con swaret ==
  +
  +
Attraverso gli swaret-tools è possible costruire un proprio repository, utilizzando due programmi:
  +
  +
* libmaker: Creates a file, libraries-$VERSION which will either be uploaded (presently by scp) to a webserver, or moved into a directory.
  +
* Repos: Creates a Slackware style directory, with FILELIST.txt, MANIFEST.bz2, PACKAGES.TXT, CHECKSUMS.md5, and libraries-current.
  +
  +
wget http://www.swaret.org/files/stable/swaret-tools-0.95.tar.gz
  +
tar xvfz swaret-tools-0.95.tar.gz
  +
  +
Editare il file libmaker per poter predisporre i file necessari nella directory locale necessari a soddisfare le dipendenze dei pacchetti e poi modificare il file repos.conf inserendo i path del nostro repository sul nostro filesystem locale.
  +
  +
# libmaker Configuration
  +
VERSION=9.1
  +
URL_MIRROR=ftp://ftp.cerias.purdue.edu/pub/os/slackware/slackware-$VERSION
  +
MLOCATION=/var/slackware
  +
FINAL=/htdir/htdocs/swaret/
  +
  +
# repos.conf
  +
REPOSDIR=/htdir/htdocs/swaret
  +
REPOSTMP=/tmp/repos
  +
QUIET=1
  +
  +
A questo punto eseguire ./install
  +
  +
Per creare il repository digitare:
  +
  +
root@glock:/usr/src/swaret-tools-0.95# libmaker
  +
Uncompressing MANIFEST-main, MANIFEST-extra, MANIFEST-patches.
  +
Pass 1: Detecting package and library names...
  +
Pass 2: Attaching package names to libraries
  +
Progress:
  +
100%/100%No changes to libraries file
  +
  +
A questo punto si possono copiare i package nella directory scelta (nel nostro caso /htdir/htdocs/swaret) ed eseguire ad ogni modifica il comando repos:
  +
  +
root@glock:/htdir/htdocs/swaret# repos
  +
Creating MANIFEST.bz2, PACKAGES.TXT & libraries-repository
  +
Creating FILELIST.txt
  +
Creating CHECKSUMS.md5
  +
Cleaning up temporary directory
  +
  +
A questo punto il nostro sistema, purché accessibile, potrà essere usato come repository per effettuare l’aggiornamento di sistemi remoti, specificando in swaret.conf la direttiva:
  +
  +
Syntax: REPOS_ROOT=REPOSITORYNAME%PROTOCOL:URL
  +
  +
Da un altro sistema, che ipotizziamo voler aggiornare impostiamo in swaret.conf
  +
  +
REPOS_ROOT=netlink.it%http://www.netlink.it/swaret
  +
  +
Possiamo ad esempio provare ad aggiornare l’antivirus:
  +
  +
root@server2:~# swaret --list |grep clam
  +
clamav-0.68.1-i486-1sl (1800 kB) (netlink.it) [Status: NOT INSTALLED]
  +
  +
root@server2:~# swaret --install clamav
  +
swaret 1.6.1-3
  +
  +
Listing available Packages matching Keyword: clamav...
  +
clamav-0.68.1-i486-1sl (1800 kB) (netlink.it)
  +
  +
Install clamav-0.68.1-i486-1sl (netlink.it)? (y/n/A/Q): [y]
  +
[ http://www.netlink.it/swaret ]
  +
### Fetching clamav-0.68.1-i486-1sl (1800 kB)...
  +
--- 1800 kB/1800 kB [TOTAL: 1800 kB/1800 kB] ~ 4 kB/s DONE!
  +
=> <MD5CHECK> MD5 for Package clamav-0.68.1-i486-1sl OK!
  +
=> clamav-0.68.1-i486-1sl has been saved in: /var/swaret/repos/netlink.it!
  +
=> Installing clamav-0.68.1-i486-1sl... DONE!
  +
  +
INFORMATION: Set DEPENDENCY to 0 in /etc/swaret.conf to disable Dependency Support.
  +
%%% Verifying Dependencies... Libraries resolved successfully!
  +
  +
Il nostro pacchetto verrà scaricato dal nostro repository di prova e aggiornato sul nostro sistema.
  +
  +
Si tratta solo di un esempio, non ho repository disponibili da offrire (mi spiace), vi consiglio comunque quello di slacky.it, è valido e ben aggiornato:
  +
  +
REPOS_ROOT=Slacky.it%http://www.slacky.it/repository/slackware/slackware-11.0
  +
  +
== Kswaret – Swaret GUI ==
  +
  +
Swaret possiede anche una semplice e comoda interfaccia grafica, che richiede le librerie qt per essere installata.
  +
  +
Con questo utile programma si può tenere aggiornata la propria slackware direttamente da KDE in modo semplice ed efficace.
  +
  +
Si può scaricare da [http://kswaret.sourceforge.net qui]:
  +
  +
wget http://twtelecom.dl.sourceforge.net/sourceforge/kswaret/kswaret-0.6.0.tar.bz2
  +
  +
bunzip2 kswaret-0.6.0.tar.bz2
  +
tar xvf kswaret-0.6.0.tar
  +
cd kswaret-0.6.0
  +
./configure && make && make install
  +
  +
In grafica o via VNC lanciare
  +
  +
kswaret &
  +
  +
* Consente di effettuare l’upgrade allo stesso modo del comando manuale, specificando nell’apposita box la keyword per il pacchetto che voglio aggiornare
  +
* Installa i pacchetti specificati.
  +
* Permette di configurare swaret, modificando da KDE il file swaret.conf
  +
* Consente di visualizzare l’elenco e di gestire i packages.
  +
  +
La configurazione è semplice ed intuitiva con le opzioni principali modificabili attraverso questa comoda interfaccia
  +
grafica. Ogni opzione ha un suo pulsante.
  +
  +
Effettuando le operazioni di Upgrade o Install di nuovi pacchetti è sufficente selezionare dall’elenco quello interessato e
  +
procedere con l’aggiornamento o l’installazione.
  +
  +
Usando kswaret si semplificano ulteriormente le operazioni di aggiornamento di una slackware rendendola ancora più agevole ad utenti che non amano effettuare compilazioni ed installazioni in modo tradizionale.
  +
  +
Io ritengo che si debba sempre cercare il giusto compromesso sulla base delle proprie necessità anche se è indubbio che i noti limiti dovuti alla cronica difficoltà di aggiornare una slackware, oggi si possono dire definitivamente superati.
  +
  +
Altri [http://kswaret.sourceforge.net/screenshots.php screenshot] sul sito ufficiale
  +
  +
== GSWARET ==
  +
  +
Un’altra soluzione interessante per semplificare l’utilizzo di swaret è rappresentata da [http://freshmeat.net/redir/gswaret/40789/url_homepage/~gswaret Gswaret] una comoda interfaccia testuale per swaret.
  +
  +
Il suo utilizzo è davvero intuitivo con i comandi riepilogati in modo da rendere più semplice la loro esecuzione.
  +
  +
La procedura di installazione dei pacchetti è davvero semplice così come le operazioni di update e di listing. Anche la configurazione nei suoi parametri fondamentali può essere gestita tutta attraverso l’interfaccia.
  +
  +
Ad esempio se volessimo installare il package di ssh possiamo operare in questo modo:
  +
  +
* Selezioniamo la voce “Install”
  +
* Selezioniamo la prima voce “Packages matching a Keyword (man)”
  +
* Inseriamo la keyword relativa al nostro pacchetto ovvero “openssh”
  +
* A questo punto swaret si mette in moto e recupera dalla lista i pacchetti necessari verificando le dipendenze e ci chiede conferma per l’installazione.
  +
  +
Pacchetti corrispondenti alla parola chiave: openssh...
  +
glibc-debug-2.3.2-i486-1 (29699 kB)
  +
glibc-profile-2.3.2-i486-1 (21854 kB)
  +
openssh-3.7.1p2-i486-1 (616 kB)
  +
openssl-solibs-0.9.7b-i486-2 (658 kB)
  +
  +
Installare glibc-debug-2.3.2-i486-1? (s/n/A/Q): [s]
  +
Installare glibc-profile-2.3.2-i486-1? (s/n/A/Q): [s]
  +
Installare openssh-3.7.1p2-i486-1? (s/n/A/Q): [s]
  +
Installare openssl-solibs-0.9.7b-i486-2? (s/n/A/Q): [s]
  +
[ ftp://ftp.nluug.nl/pub/os/Linux/distr/slackware/slackware-9.1 ]
  +
### Scarico glibc-debug-2.3.2-i486-1 (29699 kB)...
  +
  +
Praticamente tutte le operazioni sono semplici ed intuitive anche la semplice ricerca di un pacchetto diventa molto intuitiva ed il risultato chiaro:
  +
  +
Se vogliamo verificare la presenza di un pacchetto installato sul sistema possiamo:
  +
* selezionare la voce “Search for installed Packages”
  +
* selezionare “for available Packages matching keyword”
  +
* inserire ad esempio la keyword apache
  +
  +
Pacchetti corrispondenti alla parola chiave: apache...
  +
apache-1.3.28-i486-2 (1636 kB) [Stato: NON INSTALLATO]
  +
glibc-debug-2.3.2-i486-1 (29699 kB) [Stato: NON INSTALLATO]
  +
glibc-profile-2.3.2-i486-1 (21854 kB) [Stato: NON INSTALLATO]
  +
mod_ssl-2.8.15_1.3.28-i486-2 (473 kB) [Stato: NON INSTALLATO]
  +
proftpd-1.2.8p-i486-1 (585 kB) [Stato: NON INSTALLATO]
  +
  +
N.B. La traduzione in italiano, ad opera di Marco Pennelli, per swaret si trova [http://www.swaret.org/i18n/swaret.lang.ITALIANO qui]
  +
  +
== Slapt-Get ==
  +
  +
[http://software.jaos.org/ Sito di riferimento]
  +
  +
Il suo funzionamento è molto simile a swaret per cui valgono praticamente le stesse osservazioni.
  +
  +
L’ho solo provato superficialmente (con successo), se qualcuno lo utilizza in maniera esaustiva me lo segnali in modo da poter arricchire questo documento.
  +
  +
Il pacchetto disponibile al sito sopra indicato va installato con installpkg.
  +
  +
root@fly:/usr/src# installpkg slapt-get-0.9.7a-i386-1.tgz
  +
Installing package slapt-get-0.9.7a-i386-1...
  +
PACKAGE DESCRIPTION:
  +
slapt-get: slapt-get (APT like system for Slackware)
  +
slapt-get:
  +
slapt-get: slapt-get is an APT like system for Slackware package management.
  +
slapt-get: It allows one to search slackware mirrors and third party sources
  +
slapt-get: for packages, compare them with installed packages, install new
  +
slapt-get: packages, or upgrade all installed packages.
  +
slapt-get:
  +
slapt-get: See /usr/doc/slapt-get-0.9.7a/ for complete documentation.
  +
slapt-get:
  +
slapt-get: Please translate /usr/share/slapt-get/locales/slapt-get.pot !
  +
slapt-get:
  +
Executing install script for slapt-get-0.9.7a-i386-1...
  +
  +
La configurazione si effettua modificando il file /etc/slapt-getrc, modificando le opzioni necessarie tra cui:
  +
  +
* WORKINGDIR=/var/slapt-get: è la directory utilizzata per lo storage locale
  +
* SOURCE=ftp://ftp.slackware.at/slackware-9.1/ : URL del mirror scelto in base alla versione di slackware presente sul sistema. Nel caso in cui i pacchetti si trovino in locale su di un CDROM allora metteremmo SOURCE=file:///mnt/cdrom/
  +
* EXCLUDE=kernel-ide,kernel-source: consente di escludere alcuni pacchetti dalla ricerca
  +
  +
root@box:/# slapt-get
  +
slapt-get - Jason Woodward <woodwardj at jaos dot org>
  +
An implementation of the Debian APT system to Slackware
  +
  +
Usage:
  +
slapt-get [option(s)] [target]
  +
  +
Targets:
  +
--update - retrieves pkg data from MIRROR
  +
--upgrade - upgrade installed pkgs
  +
--dist-upgrade - upgrade to newer release
  +
--install [pkg name(s)] - install specified pkg(s)
  +
--remove [pkg name(s)] - remove specified pkg(s)
  +
--show [pkg name] - show pkg description
  +
--search [expression] - search available pkgs
  +
--list - list available pkgs
  +
--installed - list installed pkgs
  +
--clean - purge cached pkgs
  +
--version - print version and license info
  +
  +
Options:
  +
--download-only - only download pkg on install/upgrade
  +
--simulate - show pkgs to be installed/upgraded
  +
--no-prompt - do not prompt during install/upgrade
  +
--reinstall - re-install the pkg
  +
--ignore-excludes - install/upgrade excludes
  +
--no-md5 - do not perform md5 check sum
  +
--no-dep - ignore dependency failures
  +
--interactive - prompt before each install/upgrade
  +
  +
Anche per slapt-get per potere effettuare l’aggiornamento della distribuzione occorre seguire la semplice procedura:
  +
  +
* slapt-get –-update: consente di ottenere l’elenco dei pacchetti (aggiornamenti) disponibili
  +
* slapt-get –-list: dopo l’update elenca i pacchetti disponibili
  +
* slapt-get –-install package: installa il pacchetto disponibile listato in precedenza
  +
* slapt-get –-upgrade package: aggiorna il pacchetto disponibile
  +
* slapt-get –-show package: mostra informazioni sul pacchetto e sul suo stato, indicando se è installato no sul sistema
  +
  +
Come package basta indicare una keyword, anche una parte del nome del pacchetto e le corrispondenze verranno cercate.
  +
  +
Esempio di aggiornamento di openssh:
  +
  +
root@fly:/usr/src# slapt-get --upgrade openssh
  +
Reading Package Lists... Done
  +
The following packages have been EXCLUDED:
  +
devs kernel-ide kernel-modules lilo kernel-headers kernel-source
  +
The following packages will be upgraded:
  +
openssl-solibs rpm fetchmail openssl
  +
4 upgraded, 0 newly installed, 0 to remove and 6 not upgraded.
  +
Need to get 6542K of archives.
  +
After unpacking 0K of additional disk space will be used.
  +
Do you want to continue? [y/N] y
  +
Downloading ftp://ftp.slackware.at/slackware-9.1/ openssl-solibs 0.9.7c-i486-2 [661K]...\
  +
  +
== Conclusioni ==
  +
  +
Anche slapt-get fa egregiamente il suo dovere, non saprei dire quale è il migliore, io sto usando molto swaret ma credo che i due programmi siano equivalenti e conti l’abitudine più che altro.
  +
  +
Io li consiglio vivamente perché rendono, finalmente (ci voleva proprio), più semplici le operazioni di upgrade della Slackware.
  +
  +
Autore: [[utente:Pavan| Paolo Pavan]]

Versione attuale delle 09:00, 15 ott 2006


Indice

[modifica] Introduzione

Gli utilizzatori di Debian vanno giustamente fieri del loro apt-get (e hanno ragione), un pò come quelli della RedHat con il Live-update, che consentono un aggiornamento efficace della distribuzione prelevando i pacchetti direttamente dai rispettivi mirror.

Per la slackware l’operazione è sempre stata un pò più ostica, si trattava spesso di compilare e reinstallare da zero.

Già da un pò con installpkg e upgradepkg le cose erano diventata un po’ più semplici, bastava avere i pacchetti su di un CD (ad esempio) e si poteva fare l’upgrade dei programmi.

Adesso le cose sono ulteriormente migliorate grazie a due progetti (io per lo meno ho preso in considerazione questi) molto simili, per l’upgrade di sistemi basati sul distribuzione Slackware e sui pacchetti tar.gz: sono SWARET e SLAPT-GET.

Nel tempo ho provato altri sistemi di aggiornamento ma li ho trovati più grezzi e meno funzionali, questo mi sembrano decisamente efficaci.

Cosa serve per una prova: un sistema con la slack connesso ad internet con installati i suddetti programmi.

[modifica] SWARET

Slackware Pagckage Upgrade

Come detto in precedenza Swaret consente semplicemente di effettuare il download e l’upgrade dei pacchetti prelevandoli dai numerosi mirror slackware esistenti, elencati dentro il file swaret.conf.

Si può installare il pacchetto con installpkg:

root@glock:/usr/src# installpkg swaret-1.3.4-noarch-7.tgz  
Installing package swaret-1.3.4-noarch-7...  
PACKAGE DESCRIPTION: 
swaret: swaret (SlackWARE Tool) 
swaret: 
swaret: swaret Upgrades, Installs, Re-Installs, Downloads, Resumes,... 
swaret: Packages, Patches and Sources (with Build Scripts) and much more! 
swaret: swaret includes Dependency Support, which Tracks and Fixes missing 
swaret: Libraries. It uses several Slackware Linux Mirrors through  
swaret: http/ftp/rsync or a Local Repository. 
swaret: 
swaret: swaret is written and maintained by Luc Cottyn and Michael G. Manry. 
swaret: 
swaret: For more information, see http://www.swaret.org 
swaret: 
swaret: ! NEW CONFIGFILE ! 
swaret: YOU MUST EDIT /etc/swaret.conf.new! (man swaret.conf) 
swaret: Rename it to /etc/swaret.conf and start using swaret. 
swaret: 
swaret:      !!! Take a look to the Documentation Files !!! 
swaret:                 /usr/doc/swaret-1.3.4/ 
swaret:      Read the README File to know how swaret works! 
swaret: 
swaret: ! swaret FAQ can be called with: swaret --faq ! 
swaret: ! swaret HOW-TO can be called with: swaret --htus ! 
swaret: 
swaret: NOTE: If you want to UPGRADE your Slackware Linux System, 
swaret:       consult the F.A.Q. by using 'swaret --faq'. 
Executing install script for swaret-1.3.4-noarch-7...

Fatto ciò occorre rinominare ed eventualmente modificare il file di configurazione swaret.con.new in swaret.conf.

Il suo contenuto è abbastanza semplice da capire e consente di pilotare il comportamento del programma.

Questo sono le direttive più importanti, quasi tutte settate già di default (in grassetto quelle modificate e personalizzate):

slackware (partono dalla 8.1 in su). Nel caso in cui i pacchetti siano ad esempio su di un CDROM si può usare ROOT=file:/mnt/cdrom

  • REPOS_ROOT=Syntax: REPOS_ROOT=REPOSITORYNAME%PROTOCOL:URL, consente di specificare dei repository per Slackware Linux Packages. E’ possibile costruirsi il proprio repository dove depositare i packages che si vogliono rendere disponibili alla collettività, utilizzando swaret-tools. Il sito www.slacky.it mette a disposizione il suo, basta aggiungere in swaret.conf la direttiva: REPOS_ROOT=Slacky.it%http://www.slacky.it/repository/slackware/slackware-11.0
  • RANDOMR=0: 0/1 per usare la lista dei mirror in modo random
  • EXCLUDE=kernel lilo swaret: consente di escludere dalla lista pacchetti che è meglio aggiornare a mano
  • DEPENDENCY=1: abilita il controllo delle dipendenze
  • DSEARCHLIB=1: consente di effettuare la ricerca per librerie mancanti
  • DEP_INSTALL=1: effettua l’installazione utilizzando il controllo delle dipendenze
  • DEP_UPGRADE=1: effettua l’upgrade utilizzando il controllo delle dipendenze
  • MD5CHECK=1: effettua l’il controllo dell’MD5
  • DESC=1: mostra la descrizione estesa dei pacchetti durante l’upgrade o l’installazione
  • OFFSET=40: modifica il numero di pacchetti per offset
  • LOG=1: effettua il log delle operazioni in LOG_FILE=/var/log/swaret
  • NIC=eth0: specifica il device da utilizzare per ricercare i pacchetti su internet. Nel caso in cui si utilizzi una ROOT locale occorre specificare NIC=lo.
  • TIMEOUT=35: specifica il timeout per le connessioni
  • RETRIES=5: indica il numero di tentativi di connessione al mirror
  • PASSIVE_FTP=1: abilita l’ftp passivo se necessario.
  • WGET_PROXY=http://proxy.some-domain-name.domain:HTTP_PROXY_PORT o RSYNC_PROXY=IP/Host:Port : consente di specificare un HTPP, FTP o RSYNC proxy per le nostre connessioni

Maggiori informazioni si trovano in how-to-use-swaret

La sintassi in breve è:

root@fly:~# swaret -h 
swaret 1.3.4 
Usage Command: swaret --ACTION [KEYWORD] [OPTION] 
--update 
--upgrade [KEYWORD]     [-a] 
--install [KEYWORD]     [-a|-p|-ap] 
--reinstall [KEYWORD]   [-a|-p|-ap] 
--remove KEYWORD        [-a] 
--get [KEYWORD]         [-a|-p|-ap|-s|-as] 
--dep [KEYWORD]         [-a] 
--resume                [-p|-s] 
--list                  [-p|-s|-i|-u|-n|-np] 
--search KEYWORD        [-p|-s|-i|-u|-n|-np] 
--show [KEYWORD]        [-p|-i] 
--changelog 
--exclude               [-on|-off|-gen] 
--set KEYWORD 
--libmaker 
--smirror 
--pgp                   [-i] 
--log                   [-t] 
--clearlog 
--purge                 [-s|-d #|-ds #|-w #|-ws #|-v] 
--config 
--faq 
--htus 
--manual                [-c] 
--help 
--morehelp 
--version 

Bisogna dire che ha molte opzioni, ma può essere di immediato utilizzo seguendo i passaggi sotto elencati:

  1. Usando il comando swaret –-update come primo, si ottiene la lista dei pacchetti e delle patch (aggiornamenti) disponibili;
  2. Una volta effettuato l’update possiamo listare i pacchetti con il comando swaret –-list e visualizzare un elenco diviso in pagine con tutti i pacchetti disponibili;
  3. Per effettuare un upgrade è sufficiente usare swaret –-upgrade KEYWORD dove la keyword è il nome del pacchetto (o una sua parte) che vogliamo aggiornare. Se swaret trova delle positività ed individua dei pacchetti ci chiede attraverso un prompt [Y/N] se vogliamo procedere all’upgrade;
  4. Per effettuare invece installazioni, la procedura è simile alla precedente solo che il comando da utilizzare è swaret –-install;
  5. Analogamente esiste il comando swaret –-remove per rimuovere il pacchetto installato.;
  6. Se si vuole solo effettuare il download del pacchetto e non la sua installazione si può usare swaret –-get. Tutti i pacchetti verranno depositati nella directory /var/swaret potranno essere manipolati con l’ausilio del programma pkgtool;
  7. Un’altra funzionalità importante consente di verificare le dipendenze: con swaret --dep –a, viene effettuato il controllo automatico delle dipendenze dei pacchetti.
  8. Se si vogliono avere informazioni dettagliate su di un pacchetto si può utilizzare swaret –show KEYWORD, ad esempio:
root@fly:~# swaret --show openssh -i 
swaret 1.3.4 

Please wait.....Description for openssh-3.7.1p2-i486-1: 
---------------------------------------------------------------------- 
ssh (Secure Shell) is a program for logging into a remote machine and 
for executing commands on a remote machine.  It is intended to replace 
rlogin and rsh, and provide secure encrypted communications between 
two untrusted hosts over an insecure network.  sshd (SSH Daemon) is 
the daemon program for ssh.  OpenSSH is based on the last free version 
of Tatu Ylonen's SSH, further enhanced and cleaned up by Aaron 
Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt, and 
Dug Song.  It has a homepage at http://www.openssh.com/ 

Ho provato Swaret con Slack 8.1 e 9.0/9.1 e mi è sembrato funzionale avendo anche il controllo delle dipendenze, che può ovviamente essere disattivato. Ci tenevo comunque a segnalare che l’upgrade del sistema è sempre un’operazione delicata specie se si cerca di upgradare dei software che implicano l’utilizzo di altri programmi che swaret non è in grado di aggiornare automaticamente.

Ad esempio su una Slack 9.1 se volete aggiornare Apache (alla 1.3.29) occorre anche aggiornare mod_ssl e PHP che sono disponibili sul sistema. In questo modo si ottiene un apache completamente aggiornato per cui:

swaret --upgrade apache  
swaret --upgrade mod_ssl 
swaret --upgrade php 
  

Il mio consiglio è sempre quello di provare il sistema di upgrade su un PC di appoggio con la stessa distribuzione. Se il tutto funziona e si rivela affidabile allora si può passare sui sistemi in produzione.

Io lo sto usando abbastanza, ma solo per quei software che non richiedono compilazioni particolari per cui preferisco ancora lavorare a mano.

Ad esempio ssh, ftp e bind, solo per citarne alcuni possono essere tranquillamente upgradati con swaret. Pensate che è addirittura possibile impostare una voce del cron che effettua l’update automatico, un pò come per le firme degli antivirus. Non so se sia una cosa buona, ma per programmi non troppo complessi o vitali direi che si potrebbe anche fare.

#crontab 
00 02 * * * /usr/sbin/swaret --set OFFSET=0 && /usr/sbin/swaret --update  && /usr/sbin/swaret --upgrade ssh -a 
&& /usr/sbin/swaret --set OFFSET=15 

Questo comando ad esempio ogni notte esegue un update per verificare la disponibilità di una nuova versione di ssh e se presente la installa automaticamente (-a). L’unica cosa da notare è l’impostazione dell’OFFSET (set di pacchetti listati) a zero e il flag –a che consentono a swaret di lavorare senza interruzione o senza porre domande.

Esempio di aggiornamento di Apache

root@fly:/var/log# swaret --upgrade apache-1.3.29-i486-1 
swaret 1.3.4 

Please wait.....Making a List of available Packages matching Keyword: apache-1.3.29-i486-1... 
New: apache-1.3.29-i486-1 (1651 kB) - Installed: apache-1.3.28-i486-2 

Upgrade apache-1.3.28-i486-2 to apache-1.3.29-i486-1? (y/n): [y] 
[ ftp://ftp.nluug.nl/pub/os/Linux/distr/slackware/slackware-current ] 
### Fetching apache-1.3.29-i486-1 (1651 kB)...  
--- 2 kB/1651 kB [TOTAL: 2 kB/1651 kB] ~ 0 kB/s
--- 2 kB/1651 kB [TOTAL: 2 kB/1651 kB] ~ 0 kB/s
--- 7 kB/1651 kB [TOTAL: 7 kB/1651 kB] ~ 5 kB/s
--- 14 kB/1651 kB [TOTAL: 14 kB/1651 kB] ~ 7 kB/s
--- 15 kB/1651 kB [TOTAL: 15 kB/1651 kB] ~ 1 kB/s
--- 31 kB/1651 kB [TOTAL: 31 kB/1651 kB] ~ 16 kB/s
--- 38 kB/1651 kB [TOTAL: 38 kB/1651 kB] ~ 

Nel caso in cui swaret rilevi che l’aggiornamento o la patch sono già presenti lo segnala e non effettua alcuna operazione:

root@fly:~# swaret --upgrade apache
swaret 1.3.4 
Please wait.....Making a List of available Packages matching Keyword: apache... 
Installed Package(s) matching Keyword 'apache' up-to-date!

[modifica] Aggiornamento di cdrtools

Se volessimo aggiornare i cdrtools presenti sul nostro sistema possiamo semplicemente utilizzare il comando swaret –upgrade in questo modo. Prima accertiamoci della presenza di un update disponibile e verifichiamone lo status sul nostro sistema:

root@glock:~# swaret --list |grep cdrtools          
cdrtools-2.00.3-i486-1 (778 kB) [Status: INSTALLED] 
cdrtools-2.01a27-i486-1sl (834 kB) (Slacky.it) [Status: NOT INSTALLED (Installed: cdrtools- 2.00.3-i486-1)] 

Dopo verificato che si tratta di un pacchetto NOT INSTALLED,possiamo procedere per installarne la nuova versione sul nostro sistema:

root@glock:~# swaret --upgrade cdrtools*     
swaret 1.6.1-3 

Listing available Packages matching Keyword: cdrtools*... 
New: cdrtools-2.01a27-i486-1sl (834 kB) (Slacky.it) - Installed: cdrtools-2.00.3-i486-1 

Upgrade cdrtools-2.00.3-i486-1 to cdrtools-2.01a27-i486-1sl? (Slacky.it) (y/n/A/Q): [y] 
[ http://www.slacky.it/download ] 
### Fetching cdrtools-2.01a27-i486-1sl (834 kB)...  
--- 834 kB/834 kB [TOTAL: 834 kB/834 kB] ~ 2 kB/s DONE! 
=> <MD5CHECK> MD5 for Package cdrtools-2.01a27-i486-1sl OK! 
=> cdrtools-2.01a27-i486-1sl has been saved in: /var/swaret/repos/Slacky.it! 
=> Upgrading cdrtools-2.00.3-i486-1 to cdrtools-2.01a27-i486-1sl... DONE! 
%%% Verifying Dependencies... Libraries resolved successfully! 

Ovviamente se abbiamo un pò di tempo e di banda possiamo anche effettuare l’aggiornamento totale del sistema.

root@glock:/usr/src# swaret --set OFFSET=0 && swaret --upgrade -a   

Io ho preso una slack 9.1 installata di fresco è ho provato a fare l’upgrade totale: il sistema si è aggiornato senza problemi, solo Apache mi ha dato un piccolo problema e ho dovuto reinstallare i moduli.

Gli aggiornamenti effettuati sono analizzabili consultando il file di log /var/log/swaret, che ci consente di capire quali operazioni sono state effettuate sul sistema.

Ad esempio la direttiva function_upgrade indica che è stato effettuato un upgrade verso una versione più recente mentre dependency_check mostra come sia stato necessario soddisfare una dipendenza con l’installazione di librerie aggiuntive.

Per chi volesse analizzare le operazioni di swaret è possibile consultare il relativo file di log:

root@fly:/var/log# tail -f swaret  
Mon Nov 10 17:16:58 AKST 2003: [ dependency_check() ] - 
%%% Verifying Dependencies... Libraries resolved sucessfully! 
Mon Nov 10 17:25:36 AKST 2003: [ GLOBAL ] - swaret --upgrade php      
Mon Nov 10 17:25:36 AKST 2003: [ function_upgrade() ] - Installed Package(s) matching Keyword 'php' up-to-date! 
Mon Nov 10 17:26:12 AKST 2003: [ GLOBAL ] - swaret --upgrade apache      
Mon Nov 10 17:26:13 AKST 2003: [ function_upgrade() ] - Installed Package(s) matching Keyword 'apache' up-to-date! 

root@glock:~# cdrecord --version 
Cdrecord-Clone 2.01a27 (i686-pc-linux-gnu) Copyright (C) 1995-2004 Jörg Schilling 

[modifica] Installazione di un nuovo package

Se volessimo installare un nuovo pacchetto possiamo usare il comando swaret --install, come nell’esempio mostrato che consente di installare l’ottimo tool di masterizzazione K3b, prelevando il pacchetto dal repositoru slacky.it.

root@glock:~# swaret --install k3b-0.11.7-i486-1sl 
swaret 1.6.1-3 

Listing available Packages matching Keyword: k3b-0.11.7-i486-1sl... 
k3b-0.11.7-i486-1sl (3366 kB) (Slacky.it)  

Install k3b-0.11.7-i486-1sl (Slacky.it)? (y/n/A/Q): [y] 
[ http://www.slacky.it/download ] 
### Fetching k3b-0.11.7-i486-1sl (3366 kB)...  
--- 3366 kB/3366 kB [TOTAL: 3366 kB/3366 kB] ~ 68 kB/s DONE! 
=> <MD5CHECK> MD5 for Package k3b-0.11.7-i486-1sl OK! 
=> k3b-0.11.7-i486-1sl has been saved in: /var/swaret/repos/Slacky.it! 
=> Installing k3b-0.11.7-i486-1sl... DONE! 

INFORMATION: Set DEPENDENCY to 0 in /etc/swaret.conf  to disable Dependency Support.

[modifica] Costruzione di un Repository con swaret

Attraverso gli swaret-tools è possible costruire un proprio repository, utilizzando due programmi:

  • libmaker: Creates a file, libraries-$VERSION which will either be uploaded (presently by scp) to a webserver, or moved into a directory.
  • Repos: Creates a Slackware style directory, with FILELIST.txt, MANIFEST.bz2, PACKAGES.TXT, CHECKSUMS.md5, and libraries-current.
wget http://www.swaret.org/files/stable/swaret-tools-0.95.tar.gz 
tar xvfz swaret-tools-0.95.tar.gz 

Editare il file libmaker per poter predisporre i file necessari nella directory locale necessari a soddisfare le dipendenze dei pacchetti e poi modificare il file repos.conf inserendo i path del nostro repository sul nostro filesystem locale.

# libmaker Configuration 
VERSION=9.1 
URL_MIRROR=ftp://ftp.cerias.purdue.edu/pub/os/slackware/slackware-$VERSION 
MLOCATION=/var/slackware 
FINAL=/htdir/htdocs/swaret/ 

# repos.conf 
REPOSDIR=/htdir/htdocs/swaret 
REPOSTMP=/tmp/repos 
QUIET=1 
 

A questo punto eseguire ./install

Per creare il repository digitare:

root@glock:/usr/src/swaret-tools-0.95# libmaker 
Uncompressing MANIFEST-main, MANIFEST-extra, MANIFEST-patches. 
Pass 1: Detecting package and library names... 
Pass 2: Attaching package names to libraries 
Progress: 
100%/100%No changes to libraries file 

A questo punto si possono copiare i package nella directory scelta (nel nostro caso /htdir/htdocs/swaret) ed eseguire ad ogni modifica il comando repos:

root@glock:/htdir/htdocs/swaret# repos  
Creating MANIFEST.bz2, PACKAGES.TXT & libraries-repository 
Creating FILELIST.txt 
Creating CHECKSUMS.md5 
Cleaning up temporary directory 
 

A questo punto il nostro sistema, purché accessibile, potrà essere usato come repository per effettuare l’aggiornamento di sistemi remoti, specificando in swaret.conf la direttiva:

Syntax: REPOS_ROOT=REPOSITORYNAME%PROTOCOL:URL 

Da un altro sistema, che ipotizziamo voler aggiornare impostiamo in swaret.conf

REPOS_ROOT=netlink.it%http://www.netlink.it/swaret 

Possiamo ad esempio provare ad aggiornare l’antivirus:

root@server2:~# swaret --list |grep clam 
clamav-0.68.1-i486-1sl (1800 kB) (netlink.it) [Status: NOT INSTALLED] 

root@server2:~# swaret --install clamav  
swaret 1.6.1-3 

Listing available Packages matching Keyword: clamav... 
clamav-0.68.1-i486-1sl (1800 kB) (netlink.it)  

Install clamav-0.68.1-i486-1sl (netlink.it)? (y/n/A/Q): [y] 
[ http://www.netlink.it/swaret ] 
### Fetching clamav-0.68.1-i486-1sl (1800 kB)...  
--- 1800 kB/1800 kB [TOTAL: 1800 kB/1800 kB] ~ 4 kB/s DONE! 
=> <MD5CHECK> MD5 for Package clamav-0.68.1-i486-1sl OK! 
=> clamav-0.68.1-i486-1sl has been saved in: /var/swaret/repos/netlink.it! 
=> Installing clamav-0.68.1-i486-1sl... DONE! 

INFORMATION: Set DEPENDENCY to 0 in /etc/swaret.conf to disable Dependency Support. 
%%% Verifying Dependencies... Libraries resolved successfully! 

Il nostro pacchetto verrà scaricato dal nostro repository di prova e aggiornato sul nostro sistema.

Si tratta solo di un esempio, non ho repository disponibili da offrire (mi spiace), vi consiglio comunque quello di slacky.it, è valido e ben aggiornato:

REPOS_ROOT=Slacky.it%http://www.slacky.it/repository/slackware/slackware-11.0

[modifica] Kswaret – Swaret GUI

Swaret possiede anche una semplice e comoda interfaccia grafica, che richiede le librerie qt per essere installata.

Con questo utile programma si può tenere aggiornata la propria slackware direttamente da KDE in modo semplice ed efficace.

Si può scaricare da qui:

wget http://twtelecom.dl.sourceforge.net/sourceforge/kswaret/kswaret-0.6.0.tar.bz2 
 
bunzip2 kswaret-0.6.0.tar.bz2  
tar xvf kswaret-0.6.0.tar 
cd  kswaret-0.6.0 
./configure && make && make install 

In grafica o via VNC lanciare

kswaret & 

  • Consente di effettuare l’upgrade allo stesso modo del comando manuale, specificando nell’apposita box la keyword per il pacchetto che voglio aggiornare
  • Installa i pacchetti specificati.
  • Permette di configurare swaret, modificando da KDE il file swaret.conf
  • Consente di visualizzare l’elenco e di gestire i packages.

La configurazione è semplice ed intuitiva con le opzioni principali modificabili attraverso questa comoda interfaccia grafica. Ogni opzione ha un suo pulsante.

Effettuando le operazioni di Upgrade o Install di nuovi pacchetti è sufficente selezionare dall’elenco quello interessato e procedere con l’aggiornamento o l’installazione.

Usando kswaret si semplificano ulteriormente le operazioni di aggiornamento di una slackware rendendola ancora più agevole ad utenti che non amano effettuare compilazioni ed installazioni in modo tradizionale.

Io ritengo che si debba sempre cercare il giusto compromesso sulla base delle proprie necessità anche se è indubbio che i noti limiti dovuti alla cronica difficoltà di aggiornare una slackware, oggi si possono dire definitivamente superati.

Altri screenshot sul sito ufficiale

[modifica] GSWARET

Un’altra soluzione interessante per semplificare l’utilizzo di swaret è rappresentata da Gswaret una comoda interfaccia testuale per swaret.

Il suo utilizzo è davvero intuitivo con i comandi riepilogati in modo da rendere più semplice la loro esecuzione.

La procedura di installazione dei pacchetti è davvero semplice così come le operazioni di update e di listing. Anche la configurazione nei suoi parametri fondamentali può essere gestita tutta attraverso l’interfaccia.

Ad esempio se volessimo installare il package di ssh possiamo operare in questo modo:

  • Selezioniamo la voce “Install”
  • Selezioniamo la prima voce “Packages matching a Keyword (man)”
  • Inseriamo la keyword relativa al nostro pacchetto ovvero “openssh”
  • A questo punto swaret si mette in moto e recupera dalla lista i pacchetti necessari verificando le dipendenze e ci chiede conferma per l’installazione.
Pacchetti corrispondenti alla parola chiave: openssh... 
glibc-debug-2.3.2-i486-1 (29699 kB)  
glibc-profile-2.3.2-i486-1 (21854 kB)  
openssh-3.7.1p2-i486-1 (616 kB)  
openssl-solibs-0.9.7b-i486-2 (658 kB)  
 
Installare glibc-debug-2.3.2-i486-1? (s/n/A/Q): [s] 
Installare glibc-profile-2.3.2-i486-1? (s/n/A/Q): [s] 
Installare openssh-3.7.1p2-i486-1? (s/n/A/Q): [s] 
Installare openssl-solibs-0.9.7b-i486-2? (s/n/A/Q): [s] 
[ ftp://ftp.nluug.nl/pub/os/Linux/distr/slackware/slackware-9.1 ] 
### Scarico glibc-debug-2.3.2-i486-1 (29699 kB)...  

Praticamente tutte le operazioni sono semplici ed intuitive anche la semplice ricerca di un pacchetto diventa molto intuitiva ed il risultato chiaro:

Se vogliamo verificare la presenza di un pacchetto installato sul sistema possiamo:

  • selezionare la voce “Search for installed Packages”
  • selezionare “for available Packages matching keyword”
  • inserire ad esempio la keyword apache
Pacchetti corrispondenti alla parola chiave: apache... 
apache-1.3.28-i486-2 (1636 kB) [Stato: NON INSTALLATO] 
glibc-debug-2.3.2-i486-1 (29699 kB) [Stato: NON INSTALLATO] 
glibc-profile-2.3.2-i486-1 (21854 kB) [Stato: NON INSTALLATO] 
mod_ssl-2.8.15_1.3.28-i486-2 (473 kB) [Stato: NON INSTALLATO] 
proftpd-1.2.8p-i486-1 (585 kB) [Stato: NON INSTALLATO] 

N.B. La traduzione in italiano, ad opera di Marco Pennelli, per swaret si trova qui

[modifica] Slapt-Get

Sito di riferimento

Il suo funzionamento è molto simile a swaret per cui valgono praticamente le stesse osservazioni.

L’ho solo provato superficialmente (con successo), se qualcuno lo utilizza in maniera esaustiva me lo segnali in modo da poter arricchire questo documento.

Il pacchetto disponibile al sito sopra indicato va installato con installpkg.

root@fly:/usr/src# installpkg slapt-get-0.9.7a-i386-1.tgz  
Installing package slapt-get-0.9.7a-i386-1...  
PACKAGE DESCRIPTION: 
slapt-get: slapt-get (APT like system for Slackware) 
slapt-get: 
slapt-get: slapt-get is an APT like system for Slackware package management. 
slapt-get: It allows one to search slackware mirrors and third party sources 
slapt-get: for packages, compare them with installed packages, install new 
slapt-get: packages, or upgrade all installed packages. 
slapt-get:  
slapt-get: See /usr/doc/slapt-get-0.9.7a/ for complete documentation.  
slapt-get: 
slapt-get: Please translate /usr/share/slapt-get/locales/slapt-get.pot ! 
slapt-get:  
Executing install script for slapt-get-0.9.7a-i386-1... 

La configurazione si effettua modificando il file /etc/slapt-getrc, modificando le opzioni necessarie tra cui:

  • WORKINGDIR=/var/slapt-get: è la directory utilizzata per lo storage locale
  • SOURCE=ftp://ftp.slackware.at/slackware-9.1/ : URL del mirror scelto in base alla versione di slackware presente sul sistema. Nel caso in cui i pacchetti si trovino in locale su di un CDROM allora metteremmo SOURCE=file:///mnt/cdrom/
  • EXCLUDE=kernel-ide,kernel-source: consente di escludere alcuni pacchetti dalla ricerca
root@box:/# slapt-get  
slapt-get - Jason Woodward <woodwardj at jaos dot org> 
An implementation of the Debian APT system to Slackware 
Usage: 
slapt-get [option(s)] [target] 

Targets: 
--update       - retrieves pkg data from MIRROR 
--upgrade      - upgrade installed pkgs 
--dist-upgrade - upgrade to newer release 
--install      [pkg name(s)] - install specified pkg(s) 
--remove       [pkg name(s)] - remove specified pkg(s) 
--show         [pkg name] - show pkg description 
--search       [expression] - search available pkgs 
--list         - list available pkgs 
--installed    - list installed pkgs 
--clean        - purge cached pkgs 
--version      - print version and license info 
 
Options: 
--download-only   - only download pkg on install/upgrade 
--simulate        - show pkgs to be installed/upgraded 
--no-prompt       - do not prompt during install/upgrade 
--reinstall       - re-install the pkg 
--ignore-excludes - install/upgrade excludes 
--no-md5          - do not perform md5 check sum 
--no-dep          - ignore dependency failures 
--interactive     - prompt before each install/upgrade 

Anche per slapt-get per potere effettuare l’aggiornamento della distribuzione occorre seguire la semplice procedura:

  • slapt-get –-update: consente di ottenere l’elenco dei pacchetti (aggiornamenti) disponibili
  • slapt-get –-list: dopo l’update elenca i pacchetti disponibili
  • slapt-get –-install package: installa il pacchetto disponibile listato in precedenza
  • slapt-get –-upgrade package: aggiorna il pacchetto disponibile
  • slapt-get –-show package: mostra informazioni sul pacchetto e sul suo stato, indicando se è installato no sul sistema

Come package basta indicare una keyword, anche una parte del nome del pacchetto e le corrispondenze verranno cercate.

Esempio di aggiornamento di openssh:

root@fly:/usr/src# slapt-get --upgrade openssh 
Reading Package Lists... Done 
The following packages have been EXCLUDED: 
devs kernel-ide kernel-modules lilo kernel-headers kernel-source  
The following packages will be upgraded: 
openssl-solibs rpm fetchmail openssl  
4 upgraded, 0 newly installed, 0 to remove and 6 not upgraded. 
Need to get 6542K of archives. 
After unpacking 0K of additional disk space will be used. 
Do you want to continue? [y/N] y 
Downloading ftp://ftp.slackware.at/slackware-9.1/ openssl-solibs 0.9.7c-i486-2 [661K]...\

[modifica] Conclusioni

Anche slapt-get fa egregiamente il suo dovere, non saprei dire quale è il migliore, io sto usando molto swaret ma credo che i due programmi siano equivalenti e conti l’abitudine più che altro.

Io li consiglio vivamente perché rendono, finalmente (ci voleva proprio), più semplici le operazioni di upgrade della Slackware.

Autore: Paolo Pavan

Strumenti personali
Namespace

Varianti