Sessiz veya Katılımsız Sürüm Yükseltme yapabilir miyim?


31

İstemlere tepki vermek zorunda kalmadan yeni bir Ubuntu sürümüne nasıl yükseltebilirim?

Şimdi 12.04 yaşıyorum ve 12.10 yüklemek istiyorum. Güncellemeye başladığımda, genellikle bir şeyler indirir, daha sonra bir soru sorar, biraz yükler, bir soru sorar, vb. Sadece süreci başlatmak, uzaklaşmak ve birkaç saat sonra bitmesini istiyorum. Ben / etc ve benzeri yapılandırma dosyalarını otomatik olarak güncelleyerek onunla iyiyim. Peki katılımsız bir yükseltme nasıl başlatılır?

Yanıtlar:


42

Aşağıdaki komut, istemleri olmadan yeni kararlı sürümüne yükseltir:

do-release-upgrade -f DistUpgradeViewNonInteractive

Aşağıdaki komut sorulmadan geçerli geliştirme sürümüne yükseltilir:

do-release-upgrade -d -f DistUpgradeViewNonInteractive

Test etmedim, ancak bir soru ortaya çıktığında varsayılan işlemi gerçekleştiriyor gibi görünüyor. Ayrıca, çok uzun süre beklediklerinde, komut dosyalarını zaman aşımına uğrar.

dpkg-reconfigureBelirli paketlerin yapılandırılmasından memnun değilseniz daha sonra kullanmak zorunda kalabilirsiniz , ancak çoğu zaman iyi olmalısınız.

Kaynak: http://awaseroot.wordpress.com/2012/04/29/ubuntu-release-upgrade-fully-automatic-non-interactive-upgrade/ . Bağlantıda, bunu yapmanın başka yolları da var.


Lütfen bağlantılardan içeriklere atıfta bulunmaktan kaçının, ancak siteye erişilemediğinde bilgilerin kaybolmasını önlemek için ilgili bilgileri de ekleyin.
k0pernikus

Bunu yaptım ve her şey çalışıyor gibiydi, ancak bir yeniden başlatmadan sonra sadece bir grub hatası alıyorum , bu yüzden bu katılımsız yükseltme işleminden sonra biraz daha grub ayarlaması eklemek zorunda kalıyorsunuz. belki ile sudo apt-get install grub-emu?
rubo77

6
Bu Güvenilirlik => Xenial için çalışmıyor. Hala değiştirilmiş / etc dosyaları hakkında sorularınız olsun.
Willem

Bu sudo ile çalıştırılmamalı mı?
Cerin

Değiştirilmiş / etc dosyaları hakkında sorulara gelince, burada harika bir çözüm var: awaseroot.wordpress.com/2012/04/29/… . Komutu 'echo "y \ n \ ny \ ny \ ny \ n" | ile çalıştırın. 'sürüm yükseltme yükseltmesi önünde. Soruların cevaplarını tohumlar. / Etc içerisinde çok sayıda değiştirilmiş dosya olması durumunda birçok cevap ekleyin.
nmgeek

6

Sadece önceki cevapları genişletmek için, kutunuzu en son sürüme yükseltmenizi sağlayacak, ssh üzerinden şifresiz bir yükseltme kullanarak, kabul edilen cevap ile uzaktan aynı işlemi nasıl yapacağınız açıklanmaktadır. Kendi blog girişimden kopyalandı .

Bu adımların tümü, paket deponuzun çalıştığını varsayar. Yani apt-get güncellemesini gerçekleştirirseniz eski bir sürüme sahip olmanız nedeniyle size birçok 404'le sunulmaz. Önce bunu düzeltmelisin, bunun için bu cevabı gör .

0. Mevcut tüm paketleri güncelle

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

1. Parolasız yürütmeyi ayarlama

Kendi şifrenizi ekleyerek kullanıcı yükseltme işlemine başlayabilen sudo kullanarak yükseltme işlemini gerçekleştirebilecek bir şifre girmeden gerçekleştirilir

sudo visudo -f /etc/sudoers.d/do-release-upgrade.

ve aşağıdaki satırı ekleyerek, kendi kullanıcı adımı kendi kullanıcı adınızla değiştirerek:

my-username ALL=NOPASSWD: /usr/bin/do-release-upgrade

2. Artımlı yükseltmeleri başlat

Oturumu kapatın ve aşağıdaki komutu bilgisayarınızdan yürütün. Sizden giriş yapmanızı (tüm varsayılan yanıtları kabul etmenizi) istemeden bir yükseltme yapar, bilgisayarın yeniden başlatılmasını bekleyin ve ardından yükseltmeyi tekrar deneyin. En son sürüme yükseltilinceye kadar çalışır.

while true; do 
    ssh my-user@my-server sudo do-release-upgrade -f DistUpgradeViewNonInteractive;
    sleep 120; 
done

3. Yapılandırma dosyalarını önceki durumlarına göre düzeltin

Daha sonra, yükseltme işlemi yerine varsayılan konfigürasyonları koyduğundan yedeklenmiş yapılandırma dosyalarını önceki konumlarına taşımanız gerekecektir.

Varsayılan cevaplardan memnun değil misiniz?

Bu adam her istem için cevapları önceden hazırlamak için bir yol var , ama dezavantajı, ne kadar istemin olduğunu bilmek zorundasın…


5

Thomas Ward'ın cevabında ne yazdığını onaylamak ve kabul edilen cevaba aykırı davrandığını onaylamak için do-release-upgrade -d -f DistUpgradeViewNonInteractiveÇALIŞMAYIN.

Aslında ilk istemde 16.04-18.04 test bölümümü kırdı ve yeniden ele geçirmek zorunda kaldım. Script donuyor budur:

Setting up mount (2.31.1-0.4ubuntu3) ...
Setting up systemd (237-3ubuntu10) ...
Installing new version of config file /etc/pam.d/systemd-user ...
Installing new version of config file /etc/systemd/journald.conf ...

Configuration file '/etc/systemd/logind.conf'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** logind.conf (Y/I/N/O/D/Z) [default=N] ? y

Y
CRASHED... NOTHING HAPPENS NOW... WILL KILL AND RESTART WITHOUT -f OPTION...

Giriş İnhibitörleri nedeniyle yeniden başlatma veya kapatma, senaryoyu öldürdükten sonra çalışmaz. Soğuk kapatma işlemi yapmanız gerekir (güç düğmesini ~ 10 saniye basılı tutun).

Çok şükür bu 16.04 klon yükseltme ve gerçek 16.04 bölüm değil.


Hayatı daha da ilginç hale getirmek için NVMe SSD'ye 898 MB'lık yeni bir bölüm eklendi ve normal bölümlerim değişti:

$ lsdrv
NAME        FSTYPE  LABEL                  MOUNTPOINT          SIZE MODEL

nvme0n1                                                        477G Samsung SSD 960 PRO 512G
├─nvme0n1p5 ntfs                                               858M 
├─nvme0n1p3                                                     16M 
├─nvme0n1p1 ntfs                                               450M 
├─nvme0n1p8 ntfs    Shared_WSL+Linux       /mnt/e                9G 
├─nvme0n1p6 ext4    Ubuntu18.04                               23.7G 
├─nvme0n1p4 ntfs    NVMe_Win10             /mnt/c            390.4G 
├─nvme0n1p2 vfat                           /boot/efi            99M 
├─nvme0n1p9 swap    Linux Swap             [SWAP]              7.9G 
└─nvme0n1p7 ext4    NVMe_Ubuntu_16.0       /                  44.6G 
  • nvme0n1p5 Ubuntu 16.04 bölümümün bulunduğu yerdi ama şimdi açık nvme0n1p7
  • nvme0n1p8 18.04 test bölümümün bulunduğu yerdi ama şimdi açık nvme0n1p8

NOT: Bu öğleden sonra ayrıca Windows 10'u Build 1709'dan Build 1803'e yükselttim, böylece yeni 898 MB nvme0n1p5bölümünü ntfsbiçimlendirmiş olabilir.


Yine de bu büyük bir şey, bu yüzden Launchpad'de bildirmelisin. Etkileşimli olmayan yolla daha önce birkaç dağıtım yükseltmesi aracılığıyla kullanıldı
oligofren

ubuntu ve pencereleri aynı günde aynı kutuya mı yükselttiniz? acının tadını çıkarmalısın
JDS

@JDS Windows canlandı. 1700 yükseltme eksik, her türlü bozuk bağımlılık Python 2 vs Python 3 Windows Ub- sigh içimden Ubuntu 16.04'ü silmeli ve yeniden yüklemeliyim .
WinEunuuchs2Unix

2

Bunu kullanarak terminalden yapabilirsiniz sudo apt-get -y upgrade. Bu, tüm istemlerde "evet" cevabını verecektir. Yine de otomatik olarak çalışmayacak, bu yüzden onu çalıştırmanız gerekiyor. O gerektiğini çalışır. AFAIK, GUI güncelleme yöneticisini yazılımı katılımsız yükseltme yapmak için kullanmanın bir yolu yoktur ( bu sürüm yükseltme ile aynı değildir! )

Farklı bir Ubuntu sürümüne yükseltmeye çalışıyorsanız ( sürüm yükseltme yükseltmesi ve genellikle Ubuntu sürümünüze göre sürümler satırındaki sonraki sürüm), bunu el ile etkinleştirmeniz gerekir . sudo do-release-upgradeÇalışabilir. Ancak geçmiş istemleri atlamak için bir yolu yoktur. Bu nedenle, bu tür istemlerde bulunacağınız zaman yükseltmeleri başlatırsınız - istemlerde bulunulur.


1
Msgstr "Geçmiş istemleri atlamanın bir yolu yok". DistUpgradeViewNonInteractive bayrağı ne olacak? Bu istemleri atlar.
oligofren

1
@oligofren Thomas haklı çünkü -f DistUpgradeViewNonInteractivebayrak betiğin ilk (Y/I/N/O/D/Z)istemde kilitlenmesine neden oluyor . Cevabımı gör Yeni gönderdim.
WinEunuuchs2Unix

-4

-ySeçenek eklemeyi deneyin , apt-getancak ytüm soruları cevaplayacağını bilin .


1
Grafik güncelleme yöneticisini kullanıyorum, apt-get değil. Güncellemeyi konsolda yapabilirim, ancak 'apt-get dist-upgrade' işleminin yıllar içinde işe yaramadığını duydum (sürümler arasında yükseltme yapmak için), bu nedenle komut 'apt-get' olmazdı.
jdm

@jdm apt-get dist-upgradeiyi çalışması gerekir. Burada nerede çalıştın artık çalışmıyor?
Seth

3
@Seth apt-get dist-upgradeşimdi yapmadı ve hiçbir zaman, hiçbir işletim sisteminde, kendi başına bir sürüm yükseltme gerçekleştirmedi. Bakın man apt-get. upgradeyalnızca yeni bir paket kurulmadan veya kaldırılmadan yükseltilebilecek paketleri yükselt. dist-upgradepaketleri kaldırıldığı veya eklendiği anlamına gelse bile paketleri yükseltir. Bu, genellikle normal güncellemeler yapmak için kullanışlıdır - örneğin, upgradeçekirdekleri yükseltmeyecektir.
Eliah Kagan

2
Değişen sources.listsonraki bir sürüm en arşivlerine noktasına ve ardından çalışır apt-get dist-upgrade, irade o başarılı olursa , bir serbest bırakma yükseltme gerçekleştirin. Bu, aptitude dist-upgradedaha gelişmiş bağımlılık çözünürlüğü nedeniyle kullanılması önerilse de Debian'da desteklenmektedir . Ubuntu'da, böyle bir şey başarılı olsa da hiç desteklenmiyor . Bunun yerine, komut satırındaki daha sonraki bir sürüme yükseltmek için do-release-upgradekullanılır. Bu yardımcı program bir -ybayrak almaz , bu nedenle bu cevap yeni bir sürüme yükseltme için geçerli değildir .
Eliah Kagan

Huh, ilginç. O zaman Debian hakkında bir şeyler okumuş olmalıyım.
Seth
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.