[Gelistirici] pisi tarZ desteği
Gürer Özen
gurer at pardus.org.tr
13 Haz 2010 Paz 15:44:55 EEST
13 Haziran 2010 Pazar günü (saat 15:15:27) Fatih Aşıcı şunları yazmıştı:
> tarZ desteğini trunk'ta atacağım. Eğer birisi, kuvvetli bir argüman
> gösterir de atılmamasına karar verirsek geri alabiliriz; ancak şimdi
> üzerinde çalıştığım işi bir an önce bitirmek için sileceğim.
Bu yalnızca build unpack aşamasında değil mi? Çıkarmanın hiç bir zararı olmaz
o durumda, en kötü durumda ihtiyaç olursa geri konur.
> pisi trunk'ta lzma binding'lerini kullanarak install.tar.lzma'dan direkt
> dosyaları çıkartmayı sağladık. Şimdi ise yukarıda ekleyeceğim özellikle hiç
> geçici dosya kullanmadan doğrudan zip arşivi içindeki install.tar.lzma'yı
> diske açmayı düşünüyorum.
Belki dikkate almışsınızdır ama bir uyarı yapayım. Eğer bir dosyayı arşivden
direk hedefine çıkartırsak, o dosyayı o anda kullanmakta olan tüm süreçleri
kırıyoruz. Yani bu şekilde update yaparken servisler, desktop, hatta pisinin
kendisi bile (mesela system.base den python yada libgzip falan güncellerken)
crash ediyor.
Çözüm için yeni dosyanın farklı bi inode ile oluşmasını sağlamak lazım. Bunun
için bir yol önce hedef dosyayı unlink() edip silmek (bu dosyayı o anda açmış
süreçleri etkilemiyor) ve yeni dosyayı yerine yazmak. Daha güvenli olan ise
hedef dosyayı önce bir geçici dosyaya yazmak, sonra ise asıl yerine move
etmek. Bunun avantajı eski dosyayı silmeden önce yeni dosyanın tümünü arşivden
çıkarmış olacağımız için, mesela arşivde bir sorun varsa yarım dosya
kalmasının önüne geçmiş oluyoruz. Aklımda kaldığı kadarıyla şu anki önce temp
bir yere açma sebebi de buydu.
Gelistirici mesaj listesiyle ilgili
daha fazla bilgi