Ero sivun ”Tarball” versioiden välillä
Siirry navigaatioon
Siirry hakuun
p
ei muokkausyhteenvetoa
Pb (keskustelu | muokkaukset) Ei muokkausyhteenvetoa |
pEi muokkausyhteenvetoa |
||
(13 välissä olevaa versiota 7 käyttäjän tekeminä ei näytetä) | |||
Rivi 1: | Rivi 1: | ||
Tarball (leik. myös '' | '''Tarball''' (leik. myös ''tervapallo'' tai ''tarrapallo'') on [[tar]]-ohjelmalla tehty tiedostoarkisto, joka yleensä on vielä pakattu esimerkiksi [[gzip]]- tai [[bzip2]]-menetelmällä. Jos kyseessä on puhdas tar-paketti, on tiedostonnimi muotoa <tt>nimi.tar</tt>. Jos on käytetty pakkausta, on tiedostonnimi muotoa <tt>nimi.tar.gz</tt>, <tt>nimi.tgz</tt>, <tt>nimi.tar.bz2</tt> tai <tt>nimi.tbz</tt> käytetystä pakkausmenetelmästä ja tiedostopäätteen sallitusta koosta riippuen. Tar-ohjelman komentorivivalitsimissa <tt>-j</tt> tarkoittaa bzip2-pakkausta ja <tt>-z</tt> gzippiä. Tarballeja käytetään yleisesti mm. ohjelmien [[lähdekoodi]]en jakeluun. | ||
Tarball-tiedostossa on yleensä yksi [[hakemisto]], jonka sisällä arkistoidut tiedostot ovat, ja tästä seuraa tiedostoarkiston purkamisesta johtuva hakemisto. Tarbomb (''tervapommi'', ''tarrapommi'') on zip-tiedostoista tuttu arkistointitapa, jossa arkiston juuressa on useampia tiedostoja, ja siten se purkautuu useammaksi tiedostoksi, aiheuttaen helposti sotkua. | |||
Lähdekoodipaketissa on yleensä paketin juurihakemistossa tiedosto <tt>README</tt>, joka kertoo paketin käytöstä (usein miten pakettia [[kääntäminen|käännetään]] eksoottisille alustoille), hakemistot <tt>doc</tt> ja <tt>examples</tt> tai muita vastaavia, joista löytyy ohjeet ohjelman käyttämiseksi ja asetusesimerkkejä, sekä <tt>Copyright</tt>, <tt>NEWS</tt>, <tt>INSTALL</tt> ym. mahdollisesti kiinnostavaa. | |||
==Pakkaaminen== | |||
Luodaan <tt>.tar.gz</tt>, <tt>.tar.bz2</tt> ja <tt>.tar</tt>-paketit hakemistosta warez: | |||
[[tar]] -cjf warez.tar.bz2 warez | |||
tar -czf warez.tar.gz warez | |||
tar -cf warez.tar warez | |||
==Purkaminen== | |||
Tarkistetaan paketin sisältö, esimerkiksi tervapommin huomaamiseksi: | |||
tar -tvf mauri.tar.gz | less | |||
Puretaan paketit <tt>mauri.tar.gz</tt> ja <tt>erkki.tar.bz2</tt> ja <tt>ismo.tar</tt> | |||
tar -xzf mauri.tar.gz | |||
tar -xjf erkki.tar.bz2 | |||
tar -xf ismo.tar | |||
[[Valitsin|Valitsimella]] <tt>-k</tt> voi estää omien tiedostojen ylikirjoituksen tervapommin tiedostoilla. | |||
==Tervapommi== | |||
''Tervapommi'' eli tarbomb-paketti luodaan (vahingossa) em. esimerkkejä mukaillen: | |||
[[cd]] warez | |||
tar -cf warez.tar * | |||
Jos tarkistaa tiedostolistan ennen purkamista, on helppo tehdä väliaikaishakemisto ja purkaa tervapommi vasta siinä. Lopuksi pallon voi korvata korjatulla versiolla. | |||
tar tvf warez.tar | less | |||
[[mkdir]] warez | |||
cd warez | |||
tar xf ../warez.tar | |||
cd .. | |||
tar cf warez.tar warez | |||
Aiemmin pahemman pommin saattoi tehdä antamalla [[Absoluuttinen tiedostonimi|absoluuttinen]] polku pakattaville tiedostoille.[http://www.sunmanagers.org/archives/1998/0269.html] <!--(SUMMARY:How do you untar a file with an absolute path name)--> Ainakin GNU tar (joka Linuxeissa yleensä on) tulkitsee polun suhteellisena. Haluttaessa absoluuttiset polut aloitetaan siirtymällä [[juurihakemisto]]on. | |||
===Jälkien siivoaminen=== | |||
Mikäli lauennut tervapommi on täyttänyt esimerkiksi [[kotihakemisto]]si läjällä ei-toivottuja tiedostoja, voi sen jäljet siivota käyttämällä listaa tar-pakettiin sisältyvistä tiedostoista. Ensiksi varmistetaan less-komennolla, ettei mukana ole omiin tiedostoihin (jotka säilyivät joko valitsimen <tt>-k</tt> ansiota tai muusta syystä) viittaavia nimiä ja poistetaan muita kuin turvallisia merkkejä sisältävät tiedostonimet listasta. Jälkimmäiset tiedostot on poistettava erikseen. | |||
tar tf pommi.tar > pommi.lst | |||
[[less]] pommi.lst | |||
$EDITOR pommi.lst | |||
[[sed]] '/[^[:alnum:]._+-]/d' pommi.lst > lista.lst | |||
[[rm]] -rf $(< lista.lst) | |||
rm -i ./ongelmallinen*nimi | |||
Jos tervapommi oli iso ja laukesi järjestelmään, johon on saattanut syntyä uusia tiedostoja poistaminen on tehtävä huolellisesti. Tiedostolistaa voi esimerkiksi komennolla [[comm]] tai [[uniq]] verrata findilla tehtyyn listaan [[aikaleima|tiettynä ajankohtana muuttuneista]] tiedostoista (tar muuttaa mtimen arkiston mukaan, joten sitä ei voi käyttää). Pommissa saattoi olla myös rivinvaihdon sisältäviä tiedostonnimiä, joilla voi tehdä pahemmanlaista jäynää ja jotka on huomioitava erikseen. | |||
find . -cnewer aikaleima1 \! -cnewer aikaleima2 -print > uudet.lst | |||
sed '/[^[:alnum:]._+-]/d' pommi.lst > lista.lst | |||
comm -1 -2 lista.lst uudet.lst > poistettavat.lst | |||
[[Luokka:Tiedostomuodot]] | [[Luokka:Tiedostomuodot]] | ||
[[Luokka:Ohjeet]] |