Ero sivun ”Tarball” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
(siivous varovaisemmin; siirsin tarin toimintavivun ensimmäiseksi; suhteellinen polku wareziin)
pEi muokkausyhteenvetoa
 
(5 välissä olevaa versiota 4 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
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''' (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 kansio, jonka sisällä arkistoidut tiedostot ovat, ja tästä seuraa tiedostoarkiston purkamisesta johtuva kansio. Tarbomb (''tervapommi'', ''tarrapommi'') on zip-tiedostoista tuttu arkistointimuoto (zip-tiedosto on pakattu arkistotiedosto ^__^), joka purkaa arkistoimansa tiedostot samaan kansion itsensä kanssa.
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äännetään eksoottisille alustoille), hakemisto <tt>doc</tt> tai muu vastaava, josta löytyy ohjeet ohjelman käyttämiseksi, sekä <tt>Copyright</tt>, <tt>NEWS</tt>, <tt>INSTALL</tt> ym. mahdollisesti kiinnostavaa.
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==
==Pakkaaminen==
Rivi 22: Rivi 22:
[[Valitsin|Valitsimella]] <tt>-k</tt> voi estää omien tiedostojen ylikirjoituksen tervapommin tiedostoilla.
[[Valitsin|Valitsimella]] <tt>-k</tt> voi estää omien tiedostojen ylikirjoituksen tervapommin tiedostoilla.


==Tervapommin pakkaaminen==
==Tervapommi==
Luodaan ''tervapommi'', tarbomb-paketti em. esimerkkejä mukaillen:
''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
  cd warez
  tar -cf warez.tar *
  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.


==Tervapommin jälkien siivoaminen==
===Jälkien siivoaminen===
Mikäli lauennut termapommi on täyttänyt esimerkiksi [[kotihakemisto]]si läjällä ei-toivottuja tiedostoja, voi sen jäljet siivota käyttämällä listaa tar-paketin käyttämistä tiedostoista. Ensiksi varmistetaan less-komennolla, ettei mukana ole omia vanhoja tiedostoja (jotka säilyivät joko valitsimen <tt>-k</tt> ansiota tai muusta syystä) ja poistetaan muita kuin turvallisia merkkejä sisältävät tiedostonimet listasta. Jälkimmäiset on poistettava erikseen.
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
  tar tf pommi.tar > pommi.lst
Rivi 35: Rivi 45:
  [[sed]] '/[^[:alnum:]._+-]/d' pommi.lst > lista.lst
  [[sed]] '/[^[:alnum:]._+-]/d' pommi.lst > lista.lst
  [[rm]] -rf $(< 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.
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.
Rivi 43: Rivi 54:


[[Luokka:Tiedostomuodot]]
[[Luokka:Tiedostomuodot]]
[[Luokka:Ohjeet]]

Nykyinen versio 25. elokuuta 2015 kello 16.27

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 nimi.tar. Jos on käytetty pakkausta, on tiedostonnimi muotoa nimi.tar.gz, nimi.tgz, nimi.tar.bz2 tai nimi.tbz käytetystä pakkausmenetelmästä ja tiedostopäätteen sallitusta koosta riippuen. Tar-ohjelman komentorivivalitsimissa -j tarkoittaa bzip2-pakkausta ja -z gzippiä. Tarballeja käytetään yleisesti mm. ohjelmien lähdekoodien 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 README, joka kertoo paketin käytöstä (usein miten pakettia käännetään eksoottisille alustoille), hakemistot doc ja examples tai muita vastaavia, joista löytyy ohjeet ohjelman käyttämiseksi ja asetusesimerkkejä, sekä Copyright, NEWS, INSTALL ym. mahdollisesti kiinnostavaa.

Pakkaaminen[muokkaa]

Luodaan .tar.gz, .tar.bz2 ja .tar-paketit hakemistosta warez:

tar -cjf warez.tar.bz2 warez
tar -czf warez.tar.gz warez
tar -cf warez.tar warez

Purkaminen[muokkaa]

Tarkistetaan paketin sisältö, esimerkiksi tervapommin huomaamiseksi:

tar -tvf mauri.tar.gz | less

Puretaan paketit mauri.tar.gz ja erkki.tar.bz2 ja ismo.tar

tar -xzf mauri.tar.gz
tar -xjf erkki.tar.bz2
tar -xf ismo.tar

Valitsimella -k voi estää omien tiedostojen ylikirjoituksen tervapommin tiedostoilla.

Tervapommi[muokkaa]

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 polku pakattaville tiedostoille.[1] Ainakin GNU tar (joka Linuxeissa yleensä on) tulkitsee polun suhteellisena. Haluttaessa absoluuttiset polut aloitetaan siirtymällä juurihakemistoon.

Jälkien siivoaminen[muokkaa]

Mikäli lauennut tervapommi on täyttänyt esimerkiksi kotihakemistosi 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 -k 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 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