Repository 32bit  Forum
Repository 64bit  Wiki

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

Da Slacky.eu.
(SWARET)
(SWARET)
Riga 184: Riga 184:
Nel caso in cui swaret rilevi che l’aggiornamento o la patch sono già presenti lo segnala e non effettua alcuna operazione:
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
+
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!
Autore: [[utente:Pavan| Paolo Pavan]]
Autore: [[utente:Pavan| Paolo Pavan]]

Versione delle 07:53, 11 set 2006


work in progress - gianlucacherubini@mac.com

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.

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/download
  • 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! 

Autore: Paolo Pavan

Strumenti personali
Namespace

Varianti