un-tar σε μη προκαθορισμένο φάκελο

Alexandros Kosiaris alex at noc.ntua.gr
Tue Sep 19 10:56:54 EEST 2006


Ag. Hatzimanikas wrote:
> On Sat, Sep 16, at 08:40 Alexandros Kosiaris wrote:
>> Κάτι τέτοιο
>>
>> $ cat mytar.sh
>> #!/bin/sh
>> mkdir $2
>> tar xfvzC $1 $2
>> mv $2/*/* $2
>>
>> Δεν θα σου πρότεινα όμως τη χρήση του. 
>> Αφήνει το foo κάτω από το foo-NEW και συνήθως 
>> είναι πιο ασφαλές να κάνεις το ξετάρ και 
>> να κάνεις ένα mv το directory, δηλαδή ένα
>>
>> tar xfvz foo.tar.gz
>> mv foo foo-NEW
>>
>> To οποίο επίσης δεν είναι τελείως ασφαλές 
>> γιατί ποιος σου λέει ότι όντως foo λέγεται 
>> το directory του .tar.gz και ότι όντως είναι η 
>> αρχή της ιεραρχίας; Αυτός είναι ο λόγος 
>> που δεν το κάνει αυτό το tar καθώς και 
>> πρακτικά κανένα τέτοιο εργαλείο.
>>
> 
> Και αυτό γίνεται.αν χρησιμοποιήσεις το "-v |--verbose" switch.
> 
> tar xvf foo.tar.gz  > /tmp/unpacked
> temp_dir=`head -n 1 /tmp/unpacked | sed -e 's@^\./@@g' -e 's@/.*$@@g'`
> mv $temp_dir foo-NEW

Και παλι μη ασφαλές

πχ δες τι γινεται εδώ

mkdir lala ; cd lala ; mkdir foo1 foo2
tar cfvz foo.tar.gz foo1 foo2
rmdir foo1 foo2

trexeis ton kodika sou kai

$ ls
foo2  foo-NEW  lala.tar.gz


Αυτό συμβαίνει γιατί απλά δεν είναι το πρώτο η κορυφή της ιεραρχίας(εδώ
ειδικά δεν υπάρχει μία αλλά 2 κορυφές). Το strip-components απο την άλλη
παίζει σωστά... :-)


> 
>> Ε απλό δεν είναι; Οταν εκεί που παίζεις σε όλα τα σύγχρονα tar πας να
>> loggareis στο 5.χ freebsdaki σου ή στο stable debian σου(που εάν
>> ακολουθηθεί η παράδοση το επόμενο stable θα βγεί σε 4 χρόνια από τώρα-αν
>> και λένε ότι δεν θα συμβεί) πας να τρέξεις την εντολή και σε γράψει θα
>> μείνεις λίγο άφωνος, θα χάσεις κανα μισάωρο να ψάχνεις κτλ κτλ. Εν
>> ολίγοις, not yet portable.Και καλά εάν είσαι σε κονσόλα. Σε κανα σκρίπτ
>> εάν το βάλεις; Σε 1-2 χρονάκια ίσως...
> 
> Ερώτηση.
> Στο debian stable αντιλαμβάνομαι ότι γίνονται backport διάφορες
> διορθώσεις σε ότι έχει να κάνει με ζητήματα ασφαλείας,αλλά πόσο εύκολο
> είναι να αναβαθμίσεις ένα υπάρχον πρόγραμμα με μία καινούρια έκδοση;
> Θεωρείται κοινή πρακτική και ενθαρρύνεται αυτή από τους debian
> developers;
> Δεν μιλάω ασφαλώς για βιβλιοθήκες αλλά για κοινά εργαλεία σαν την tar
> που κάποια καινούρια έκδοση σου προσφέρει κάτι εξτρά η απλά για
> portability.
> Δεν έχω ποτέ μου δουλέψει σε debian παρεμπιπτόντως. 

Βγαίνει η έκδοση stable. Σε αυτήν δεν αλλάζουν προγράμματα παρά μόνο για
λόγους ασφαλείας. Οταν γίνεται κάτι τέτοιο γίνεται backport από την νέα
έκδοση του προγράμματος που πιθανόν να έχει βγεί μόνο το κομμάτι που
αφορά το κενό ασφαλείας και patcharetai η έκδοση που τρέχει κανονικά στο
stable. Κατόπιν ανεβαίνει κατά 1 το debian patch number στο πακέτο ώστε
να θεωρείται νέα έκδοση του πακέτου και ανεβαίνει στα repositories.
Οπότε το να προστεθεί νέα έκδοση της tar μένει καθαρά στο χρήστη που
έχει τις παρακάτω επιλογές.

1) Τελείως compile μόνος του(ασφαλής αν και όχι clean εκδοχή).
2) Μεταφορά έτοιμου πακέτου από το testing ή το unstable. Αυτά συχνά
έχουν και διαφορετικές εκδόσεις libc από το stable και μπορεί να πάθεις
μεγάλο πατιρντί.
3) Μεταφορά deb-src πακέτου από testing/unstable και compile. Αυτό
παίζει σχεδόν πάντα καλά και είναι η πιο καθαρή και σίγουρη λύση
Εξαίρεση εφαρμογές που έχουν dependencies σε πράγματα που δεν
εχεις/εχεις παλιότερη έκδοση και χρειάζονται νεότερη. Εδώ
επαναλαμβάνονται τα 1,2,3 μέχρι να βρείς όλα τα dependencies. Οπως
καταλαβαίνεις λοιπόν μπορεί να είναι η αλλαγή σε νέα έκδοση ζήτημα 5
δευτερολέπτων εώς πολλών ωρών.

-- 
Alexandros Kosiaris 	Network Management Center , NTUA
e-mail : alex at noc.ntua.gr
Public Key Fingerprint :
D6B1 0634 BE65 719C 6C95  7492 8201 4B46 C478 F074
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 5152 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.hellug.gr/pipermail/migrate2linux/attachments/20060919/7f39122c/attachment.bin>


More information about the Migrate2linux mailing list