Corso di avvicinamento al Software Libero Lunedi 6 Febbraio Parte 4 Archiviazione Install1
tgz = tar + gzip tar tape archive gzip GNUzip compress (unix)
tgz = tar + gzip tar tape archive gzip GNUzip compress (unix)
tarball archivio che ha subito un doppio processo di archiviazione/compressione tar.gz tgz tar.bz2 tbz2
File1 File2 File3 mia_dir
File1 File2 mia_dir File3 archiviazione
File1 File2 mia_dir File3 comando tar
File1 mia_dir File2 File3 tar File1 File2 File3
File1 mia_dir File2 File3 tar mia_dir.tar
File1 mia_dir File2 File3 tar mia_dir.tar compressione
File1 mia_dir File2 File3 tar mia_dir.tar comando gzip
File1 mia_dir File2 File3 tar mia_dir.tar gzip mia_dir.tar.gz
File1 mia_dir File2 File3 tar+gzip File1 File2 File3
File1 mia_dir File2 File3 tar+gzip mia_dir.tgz
tar permette di creare un archivio contenente piu' files conosciuto come tarfile Un tarfile può essere fatto su un'unità a nastro magnetico ma è anche possibile scrivere un tarfile su un file normale mediante una opzione -f nome_file o --file nome_file
tar tape archive tar -cvf archivio.tar file_1 file_2... -c creazione di un nuovo archivio -v visualizza i nomi dei files man mano che vengono inseriti nell'archivio -f crea l'archivio su un file archivio.tar nome dell'archivio da creare file_1 file_2... nomi dei files da archiviare, nel caso sia il nome di una directory verranno archiviati ricorsivamente tutti i files contenuti
NOME tar La versione GNU del programma di utilità tar SINTASSI tar [ ] A catenate concatenate c create d diff compare r append t list u update x extract get [ atime preserve ] [ b, block size N ] [ B, read full blocks ] [ C, directory DIR ] [ checkpoint ] [ f, file [NOME_HOST:]F ] [ force local ] [ F, info script F new volume script F ] [ G, incremental ] [ g, listed incremental F ] [ h, dereference ] [ i, ignore zeros ] [ ignore failed read ] [ k, keep old files ] [ K, starting file F ] [ l, one file system ] [ L, tape length N ] [ m, modification time ] [ M, multi volume ] [ N, after date DATA, newer DATA ] [ o, old archive, portability ] [ O, to stdout ] [ p, same permis sions, preserve permissions ] [ P, absolute paths ] [ preserve ] [ R, record number ] [ remove files ] [ s, same order, preserve order ] [ same owner ] [ S, sparse ] [ T, files from F ] [ null ] [ totals ] [ v, verbose ] [ V, label NAME ] [ version ] [ w, interactive, confirmation ] [ W, verify ] [ exclude FILE ] [ X, exclude from FILE ] [ Z, compress, uncompress ] [ z, gzip, ungzip ] [ use compress program PROG ] [ block compress ] [ [0 7][lmh] ] nomefile1 [ nomefile2,... nomefilen ] directory1 [ directory2,...directoryn ]
tar -A, --catenate, --concatenate aggiunge i file ad un archivio -c, --create crea un nuovo archivio -d, --diff, --compare trova la differenza tra l'archivio e il file system --delete elimina dall'archivio (da non usare sui nastri magnetici!)
tar -r, --append aggiunge i file alla fine di un archivio -t, --list elenca il contenuto di un archivio -u, --update aggiunge solamente i file che sono più recenti della copia nell'archivio -x, --extract, --get estrae i file da un archivio
tar -Z, --compress, --uncompress filtra l'archivio attraverso compress -z, --gzip, --ungzip filtra l'archivio attraverso gzip
compress compress nome_file compress e' il programma di compressione standard di unix
gzip gzip nome_file Comprime un file usando la codifica di Lempel-Ziv (LZ77). Ogni file è sostituito da uno compresso con estensione.gz, mantenendo le stesse proprietà, date d'accesso e di modifica gzip proverà a comprimere solo i file regolari in particolare ignorerà i link simbolici
bzip2 bzip2 opt nome_file Comprime i files usando l'algoritmo BurrowsWheeler, e la codifica di Huffman La compressione del testo risulta migliore rispetto ai compressori basati su LZ77/LZ78 Ogni file è sostituito da uno compresso con estensione.bz2, mantenendo le stesse proprietà, date d'accesso e di modifica
uncompress gunzip compress -d nome_file.z uncompress nome_file.z gzip -d nome_file.gz gunzip nome_file.gz
tar xvf file.tar tar xzvf file.tgz tar xzvf file.tar.gz
cosa posso trovare dentro ad un tarball files di vario genere (testi, immagini,...) files.iso files.rpm programmi in formato binario programmi sotto forma di codice sorgente
ISO9660 dd if=/dev/cdrom of=miaisoimg.iso
mkisofs programma in grado di generare un filesystem ISO9660/JolietT/HFS/RockRidge mkisofs [opzioni] -o image.iso /directory mkisofs -r -J -L -o image.iso /directory
-J estensioni Joliet -R estensioni Rock Ridge -r come l opzione -R ma con valori di ownership e modes sono settati in modo piu' utile uid e gid sono settati a zero, perche usualmente sono utili solo sul sistema di origine. tutti i bits di lettura del files sono settati cosi che files e directories siano globalmente leggibili
cdrecord - scanbus cdrecord speed=x dev=x,x,x -data image.iso cdrecord [opz] dev=device [track-opt] trackn cdrecord si basa su comandi SCSI non costituisce un problema perche' tutti i masterizzatori CD/DVD esistenti comunicano per mezzo di comandi SCSI
Installazione dei programmi
script di installazione
i files sono archiviati secondo un path
i files sono archiviati secondo un path
i files sono archiviati secondo un path
harlock@linux:~>su
harlock@linux:~>su Password:
harlock@linux:~>su Password: linux:/home/harlock # cd tmp
harlock@linux:~>su Password: linux:/home/harlock # cd tmp
harlock@linux:~>su Password: linux:/home/harlock/tmp # cp usr/* /usr/
codice sorgente
installazione da codice sorgente
(compilare un programma) linguaggio di programmazione gcc-4.0.2_.i586 linguaggio macchina codice sorgente compilatore programma eseguibile
(compilare un programma) compilatore linker file sorgente file oggetto file eseguibile
(compilare un programma) file sorgente comando gcc sorgente.c./a.out esecuzione del binario ottenuto
(compilare un programma) comando nome da assegnare file sorgente gcc -o nomefile sorgente.c./nomefile esecuzione del binario ottenuto
configure make make install
./configure harlock@linux:~>./configure
./configure harlock@linux:~>./configure harlock@linux:~>
make harlock@linux:~>./configure harlock@linux:~> make
make harlock@linux:~>./configure harlock@linux:~> make harlock@linux:~>
harlock@linux:~>./configure harlock@linux:~> make harlock@linux:~>su
harlock@linux:~>./configure harlock@linux:~> make harlock@linux:~>su Password:
harlock@linux:~>./configure harlock@linux:~> make harlock@linux:~>su Password: linux:/home/harlock #
make install harlock@linux:~>./configure harlock@linux:~> make harlock@linux:~>su Password: linux:/home/harlock # make install
Pausa 4