En son güncellemeyi geri almanın bir yolu var mı?


54

Bu son 5 yılda birçok kez başıma geldi: bir yükseltme sistemimi bozdu. Bu duruma ne zaman son versem, tüm sistemi yeniden kurmam gerekiyor, bu gerçekten can sıkıcı bir durum.

İşlevsel bir sistemi yeniden kurabilmek için en son güncellemeyi geri almanın bir yolu var mı? Değilse, bunu öncelikli bir fikir olarak önermenin en iyi yolu nedir?

Bu fikrin brainstorm.ubuntu.com adresinde tanımlandığını okudum, ancak bunun öldüğünü hissediyor ... ve forumlar işleri kırmak için yapılan yükseltme örnekleriyle doludur, bu yüzden bu konuda bir şeyler yapılması gerektiğini hissediyorum. Teşekkürler!


17
Sadece bu soruyu oylamak için giriş yapıyorum. 2011 Masaüstü İşletim Sisteminde uyumlu bir geri alma aracı olmaması çok acıklı. Windows 5+ yıl önce Sistem Geri Yüklemeye sahipti , bu eğrinin arkasında çok uzun bir yol var. Kullanıcılar, güvenlik güncellemelerini yüklemek için ( doğru ) eğitilmişlerdir, ancak sürücüleri başarısızlıkla sonuçlandırdıkları için sürekli olarak cezalandırılmaktadır.
Gates VP,

@GatesVP 8+ yıl önce yaptığınız bu nokta hala Ubuntu’yu rahatsız ediyor. Bunu tamamen sinir bozucu buluyorum. Birilerinin kelimelerinizi 64 punto yazı tipinde yazması ve linux dünyasına atılmak üzere her aceminin önünde durması gerekir.
horaceT

Yedek bir resmin gitmenin yolu olduğuna katılıyorum. Bunun bir “üretim” sistemi olduğu belirtilmemiştir. Eğer bir klon test sistemine sahip olmak mümkün ve uygunsa, o zaman görüntü yedekleme ile gitmek için yoludur. Yalnızca bir uygulama güncellemesi varsa, en hızlı çözüm, 'zorla' seçeneğiyle veya bu seçenek olmadan düşürmektir.
JHPArizona

Yanıtlar:


14

Synaptics'te, en son güncellemelerin ne olduğunu kontrol edebilirsiniz: Dosya menüsü, tarihçe.

(eğer sinaptik bozuk sistemle başlatılabilir ise). Bu yüzden apt -...- komutuyla, güncellemelerini geri almak için çok zor olmamalı.

Sanırım komut satırı için de bir tarih komutu var.

Belki de tüm paketi silmeniz ve belirli bir sürüm kurmanız gerekir. Afaik, belirli bir versiyonunu yüklemek mümkün, ancak hiçbir zaman buna ihtiyacım olmadı.

güncelleme: apt ile nasıl yapılacağını araştırdım:

Son 3x24 saatte kurulu olan paketleri bulun:

find /var/lib/dpkg/info/ -name \*.list -mtime -3 | sed 's#.list$##;s#.*/##' 

Apt-cache policy ile bir programın mevcut versiyonlarını görüyorsunuz:

sudo apt-cache policy PROGRAM:
 *** 3.6.7+build3+nobinonly-0ubuntu0.10.04.1 0
        500 http://de.archive.ubuntu.com/ubuntu/ lucid-updates/main Packages
        500 http://security.ubuntu.com/ubuntu/ lucid-security/main Packages
        100 /var/lib/dpkg/status
     3.6.3+nobinonly-0ubuntu4 0

burada 3.6.7 ve 3.6.3. Şimdi hangi eski sürümün yüklenebileceğini biliyorsunuz (genellikle öncekili değil):

sudo apt-get install PROGRAM=3.6.3

O zaman gelecekteki güncellemeleri önlemek için, uygun bir sabitleme yapmanız gerekir:

Programınızdan sonra /etc/apt/preferences.d/ (if> = 10.4) adında yeni bir dosya oluşturun,

Package: program
Pin: version 3.6.3*
Pin-Priority: 1000

Bilgi için teşekkürler. Ubuntu'nun zfs'i kutudan çıkarmasını bekleyemem!
Marcelo Ruiz

Üzgünüm - zfs ile ne ilgisi var? Zfs geri alma işlemlerini yönetir mi? Yoksa güncellemeler zfs kurulumunuzu bozuyor mu? Yoksa zfs-update bir şeyi mi bozuyor?
kullanıcı bilinmeyen,

Ya sürüm 1.0.2g-1ubuntu4.12apt'ye göre ise? Buna rağmen, sürüm numarası olarak kabul etmeyi reddediyor. Ben formu düşürmek istiyorum 1.0.2g-1ubuntu4.13için1.0.2g-1ubuntu4.12
Csaba Toth

teşekkürler, suuuuuuuuuuuuuch olsa bir acı. tamamen kontrolör girişi tahrip benim son güncelleme listelenen tam 80 paketlere sahip find /var/lib/dpkg/info/ -name \*.list -mtime -3 | sed 's#.list$##;s#.*/##' benim tüm sistemi yeniden yüklemek için bir güçlük daha az olduğunu, bu noktada
tatsu

7

/var/log/apt/history.logApt / synaptic tarafından yapılan değişiklikler için çoğunlukla danışabilirsiniz . Bu sadece biraz adli ve yapmak için kes / yapıştır bir sürü var.

Sisteminizin hala iyi çalıştığı tarihe dönün.

Önce o zamandan beri kurulu olan tüm paketleri al ve onları bir kaldırma betiğine koy. Komut dosyası tamamlandığında, kaldırılan tüm paketleri yeniden eklemeye başlayın.

Örnek bir örnek:
logfile:

Start-Date: 2014-05-28  21:28:11
Commandline: synaptic
Install: libfglrx-amdxvba1:amd64 (13.12-3kali1, automatic), libgl1-fglrx-glx:amd64 (13.12-3kali1), glx-alternative-fglrx:amd64 (0.4.1kali1, automatic), libfglrx:amd64 (13.12-3kali1, au$
Remove: fglrx-glx-ia32:amd64 (12-6+point-3)
End-Date: 2014-05-28  21:28:27

görebilirsin,

libfglrx-amdxvba1:amd64 libgl1-fglrx-glx:amd64 glx-alternative-fglrx:amd64 & libfglrx:amd64 

Synaptic tarafından yüklenmiş. gibi libfglrx:amd64Synaptic tarafından kaldırıldı.

Tersine siparişe gittik, bu yüzden ilk önce yeni kurulan paketleri kaldırdık ve kaldırılan paketleri yeniden ekledik.

Bu dava için çalışan bir komut şöyle görünebilir:

sudo apt-get remove -y libfglrx-amdxvba1:amd64 libgl1-fglrx-glx:amd64 glx-alternative-fglrx:amd64 libfglrx:amd64 && sudo apt-get install -y libfglrx:amd64

Belki de -yanahtar olmadan devam etmek en iyi fikir olmaz - süreç hakkında daha fazla kontrole sahip olmak (bağımlılıkları önlemek için). Birçoğunuz "y" doğrulaması yaparken parmaklarınızı kırmazsınız.

Çoğu durumda bu şekilde bir geri dönüş mümkündür, ancak bağımlılıklar çoktan bozulursa daha da büyük bir sorunla karşılaşabilirsiniz.


6

Sisteminiz bozulursa çoğu zaman bir çekirdek problemidir.

Basitçe eski bir çekirdeği önyükleyin ve muhtemelen doğru şekilde güncellenmeyen en son paketleri (özellikle çekirdek paketleri) yeniden yükleyin. Birkaç not:

/var/log/dpkg.log

Son güncellenen / yüklenen paketlerin listesinin ne olduğunu kontrol etmek için arkadaşınız

sudo apt-get -f install

çoğu zaman yarı kurulu paketleri tamir edebilir


4

Maalesef bunu yapmanın bir yolu yok. Dosya sistemi düzeyinde anlık görüntü / geri alma, yaklaşmakta olan btrfs'nin özelliklerinden biridir, ancak varsayılan dosya sistemi olarak kullanmak için yeterince eksiksiz ve kararlı bir özellik haline gelme yoluna sahiptir.


1
Dosya sistemi anlık görüntüleri için yerine ext3 veya ext4 ile LVM kullanabilirsiniz.
Flimm

@ Flimm, şimdi çok iyi bir şekilde çalışmıyor olmasına rağmen ve ilk etapta kurarken LVM kurmanızı gerektirir.
psusi

3

Büyük bir yükseltme yaparken, Clonezilla kullanarak diski klonladım . Bir CD'ye yazın, yedek (harici) bir HDD hazırlayın ve Clonezilla LiveCD'deki talimatları izleyin. partition-imageModu seçin , bu en az boşluğu kullanır.

Sisteminizi bozduğunu düşünüyorsanız (veya herhangi bir değişikliği geri almak istiyorsanız), yalnızca Clonezilla LiveCD'de önyükleme yapın, (harici) HDD'nizdeki görüntüyü seçin ve geri yükleyin. Bu görüntüler diskinizdeki her bitin gerçek kopyası olduğundan, disk hızınıza ve bağlantı hızınıza (veri, genellikle harici bir USB HDD ve bilgisayar arasındaki bağlantı) bağlı olarak birkaç saat sürebilir.

Bu arada, buna yedekleme yöntemi denir.


3

Sen olabilir apt veya kolayca dpkg ile verilen bir paketi (azaltma) eski bir sürümünü yükleyin . Paketin daha eski bir versiyonunu bulmak problemdir, çünkü bunlar havuzdan kaybolur ve güncellemeler yayına girdiğinde aynaları yansıtır.

Paketi bir kurulum CD'sinden ya da güncel olmayan bir aynadan ya da önbellekten yüklerseniz, izin verene kadar yükseltilmeyecek şekilde eski sürüme tutturmanız gerekir. Bu, güncellemeleri izlemeniz ve probleminiz çözülene kadar test etmeniz gerektiği anlamına gelir. Bu elbette bir sorundur çünkü bu arada (belki de sonsuza kadar) sabitlenmemiş, muhtemelen güvensiz bir pakette kalacaksınız. Bu, bir tür sistem sorununa sahip her kullanıcının çözene kadar rasgele bir durumda bırakılacağı anlamına gelir.

Tüm yazılımlar da ileriye dönük olarak uyumlu değildir, bu nedenle daha yeni bir yapılandırma veya veri dosyalarıyla beslenirken bir şeyin eski bir sürümü tam olarak çalışmayabilir. Açıkçası, yükseltme yapılmadan önce tüm kullanıcı verilerini bir duruma geri almadıkça bu sorunu çözmek mümkün değildir.

Bunu yapmanın bir yolu olsaydı harika olurdu, ama büyük sorunlu. Tutarlı bir çözüm olduğunu düşünen herkes bir teklif yazmalı ve yorumları davet etmeli ya da daha iyisi, kavram çözümünün kanıtını yapmalıdır (kod, senaryo, belge). Trolling ve sızlama yapıcı değil.

Temiz bir teknik çözüm bulunmadığından, çoğu yazılım "tek yol ileri" zihniyetiyle geliştirilir (ve entegre edilir). Eski sürümleri yönetmeye çalışmak herkesin zamanını boşa harcar. Bulunan sorunlar, en yeni sürümlerde ASAP'de giderilmiştir. Küçük bir çözüm olarak, geçici geçici çözüm için bir yerde tutulan önceki paket sürümlerinin bir arşivini görmek istiyorum.

Bu arada, hataları bildirebilir ve son teknoloji yazılımın asla başarısız olmamasını beklemeyin. Bir kez bulunan bir düzeltmenin bir sonraki güncellemede olması gerekir. Devler insanlardır (çoğunlukla) ve bu yüzden yanılabilirler. Bilgisayarlar titiz ve deli çeşitlilik ve ayrıntı dolu. İyi desteklenmiş bileşenler ve kararlı entegre yazılım dağıtımı kullanan savunmasız bakım sistemlerinde güvensiz veya yükseltilemez hale gelmeden çok kararlı olabilirler.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.