Tôi có thể thực hiện Nâng cấp Phát hành Im lặng hoặc Không giám sát không?


31

Làm cách nào để nâng cấp lên phiên bản Ubuntu mới mà không phải phản ứng với lời nhắc?

Bây giờ tôi đang ở trên 12.04 và muốn cài đặt 12.10. Khi tôi bắt đầu cập nhật, nó thường tải xuống các công cụ, sau đó đặt câu hỏi, cài đặt một chút, đặt câu hỏi, v.v. Tôi để nó qua đêm và đôi khi thấy rằng nó hầu như không tiến hành cập nhật. Tôi muốn chỉ cần khởi động quá trình, đi xa và hoàn thành nó sau một vài giờ. Tôi ổn với việc nó tự động cập nhật các tệp cấu hình trong / etc, v.v. Vậy làm thế nào để bắt đầu nâng cấp không giám sát?

Câu trả lời:


42

Lệnh sau nâng cấp lên bản phát hành ổn định mới mà không cần nhắc:

do-release-upgrade -f DistUpgradeViewNonInteractive

Lệnh sau nâng cấp lên bản phát hành phát triển hiện tại mà không cần nhắc:

do-release-upgrade -d -f DistUpgradeViewNonInteractive

Tôi đã không kiểm tra nó, nhưng có vẻ như nó chỉ thực hiện hành động mặc định khi có câu hỏi. Nó cũng loại bỏ bất kỳ tập lệnh nào nếu chúng treo quá lâu.

Bạn có thể phải sử dụng dpkg-reconfiguresau đó nếu bạn không hài lòng với cấu hình của các gói nhất định, nhưng hầu hết thời gian bạn sẽ ổn.

Nguồn: http://awaseroot.wordpress.com/2012/04/29/ubfox-release-upTHER-fully-automatic-non-interactive-upTHER/ . Trong liên kết cũng có những cách khác để làm điều này.


Vui lòng tránh tham khảo nội dung từ các liên kết nhưng cũng bao gồm các thông tin liên quan để tránh mất thông tin nếu trang web không thể truy cập được.
k0pernikus

Tôi đã làm điều này và mọi thứ dường như hoạt động, nhưng sau khi khởi động lại, tôi chỉ gặp một lỗi grub , vì vậy bạn dường như phải thêm một số cấu hình grub nữa sau khi nâng cấp không giám sát này. có thể với sudo apt-get install grub-emu?
rubo77

6
Điều này không hoạt động cho Trusty => Xenial. Vẫn nhận được câu hỏi về các tập tin sửa đổi / vv.
Willem

Không nên chạy với sudo?
Cerin

Liên quan đến câu hỏi về các tập tin sửa đổi / vv, có một giải pháp tuyệt vời ở đây: awaseroot.wordpress.com/2012/04/29/ Ấn . Chạy lệnh với 'echo "y \ n \ ny \ ny \ ny \ n" | 'Trước khi nâng cấp phát hành. Nó hạt giống câu trả lời cho các câu hỏi. Thêm nhiều câu trả lời trong trường hợp có nhiều tệp sửa đổi trong / etc.
nmgeek

6

Chỉ cần mở rộng các câu trả lời trước, đây là cách thực hiện từ xa giống như câu trả lời được chấp nhận, sử dụng nâng cấp không mật khẩu so với ssh sẽ giúp hộp của bạn được nâng cấp lên phiên bản mới nhất. Nó được sao chép ra khỏi mục blog của riêng tôi .

Tất cả các bước này giả định kho lưu trữ gói của bạn đang hoạt động. Có nghĩa là nếu bạn thực hiện cập nhật apt-get, bạn sẽ không có nhiều 404 do phiên bản lỗi thời. Bạn cần sửa nó trước, vì vậy hãy xem câu trả lời này cho điều đó.

0. Cập nhật tất cả các gói hiện có

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

1. Thiết lập thực thi không mật khẩu

Thêm bản thân của bạn vào danh sách người dùng có thể thực hiện nâng cấp do-phát hành bằng sudo mà không cần nhập mật khẩu bằng cách thực hiện

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

và thêm dòng sau, thay thế tên người dùng của tôi cho khóa học của riêng bạn:

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

2. Bắt đầu nâng cấp gia tăng

Đăng xuất và thực hiện lệnh sau từ máy tính của bạn. Nó sẽ thực hiện nâng cấp mà không nhắc bạn nhập liệu (chấp nhận tất cả các câu trả lời mặc định), đợi máy tính khởi động lại và sau đó thử nâng cấp lại. Nó chạy cho đến khi bạn được nâng cấp lên phiên bản mới nhất.

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

3. Sửa các tệp cấu hình về trạng thái trước đó của chúng

Sau đó, bạn sẽ phải di chuyển các tệp cấu hình được sao lưu đến vị trí trước đó vì quá trình nâng cấp đã đặt cấu hình mặc định vào vị trí của chúng.

Không hài lòng với câu trả lời mặc định?

Anh chàng này có cách chuẩn bị trước câu trả lời cho từng lời nhắc, nhưng nhược điểm là bạn phải biết có bao nhiêu lời nhắc


5

Để xác nhận những gì Thomas Ward nêu trong câu trả lời của mình và mâu thuẫn với câu trả lời được chấp nhận, do-release-upgrade -d -f DistUpgradeViewNonInteractiveKHÔNG LÀM VIỆC.

Trong thực tế tại dấu nhắc đầu tiên, nó đã phá vỡ phân vùng kiểm tra 16.04 đến 18.04 của tôi bị hỏng và tôi phải đóng lại nó. Đây là nơi kịch bản đóng băng:

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...

Do các chất ức chế đầu vào, không khởi động lại cũng không tắt máy sẽ hoạt động sau khi tắt tập lệnh. Bạn phải tắt máy lạnh (giữ nút nguồn ~ 10 giây).

Cảm ơn trời, đây là bản nâng cấp bản sao 16.04 chứ không phải trên phân vùng 16.04 thực.


Để làm cho cuộc sống thú vị hơn nữa, một phân vùng 898 MB mới đã được thêm vào SSD NVMe của tôi và các phân vùng thông thường của tôi đã thay đổi:

$ 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 đã từng là nơi phân vùng Ubuntu 16.04 của tôi cư trú nhưng bây giờ nó đang bật nvme0n1p7
  • nvme0n1p8 đã từng là nơi phân vùng kiểm tra 18.04 của tôi cư trú nhưng bây giờ nó đang bật nvme0n1p8

LƯU Ý: Tôi cũng đã nâng cấp Windows 10 từ Build 1709 lên Build 1803 vào chiều nay để có thể tạo nvme0n1p5phân vùng 898 MB mới ở ntfsđịnh dạng.


Tuy nhiên, đó là một vấn đề lớn, vì vậy bạn nên báo cáo tại Launchpad. Đã sử dụng cách không tương tác thông qua một số nâng cấp phân phối trước đó
oligofren

nâng cấp cả Ubuntu và windows trên cùng một hộp trong cùng một ngày? bạn phải tận hưởng nỗi đau
JDS

@JDS Windows đã bị hỏng. 1700 nâng cấp bị thiếu, tất cả các loại phụ thuộc bị hỏng Python 2 so với Python 3. Tôi phải xóa và cài đặt lại Ubuntu 16.04 từ Windows Store thở dài .
WinEunuuchs2Unix

2

Bạn có thể làm điều này thông qua thiết bị đầu cuối, sử dụng sudo apt-get -y upgrade. Điều này sẽ trả lời "có" cho tất cả các lời nhắc. Tuy nhiên, nó sẽ không chạy tự động, vì vậy bạn phải chạy nó. Nó nên hoạt động. AFAIK không có cách nào để sử dụng trình quản lý cập nhật GUI để thực hiện nâng cấp không giám sát cho phần mềm ( điều này KHÔNG giống như nâng cấp phát hành! )

Nếu bạn đang cố nâng cấp lên phiên bản Ubuntu khác (còn gọi là nâng cấp phát hành và thường là bản phát hành tiếp theo trong dòng phát hành so với phiên bản Ubuntu của bạn), bạn phải kích hoạt thủ công . sudo do-release-upgradecó thể làm việc. Không có cách nào để bỏ qua lời nhắc trong quá khứ. Đây là lý do tại sao bạn bắt đầu nâng cấp khi bạn sẽ có mặt cho các lời nhắc như vậy - sẽ có lời nhắc.


1
"Không có cách nào để bỏ qua lời nhắc trong quá khứ". Còn cờ DistUpTHERViewNonInteractive thì sao? Điều đó bỏ qua các lời nhắc.
oligofren

1
@oligofren Thomas đúng vì -f DistUpgradeViewNonInteractivecờ khiến tập lệnh bị khóa ở (Y/I/N/O/D/Z)dấu nhắc đầu tiên . Xem câu trả lời của tôi, tôi vừa đăng.
WinEunuuchs2Unix

-4

Hãy thử thêm -ytùy chọn vào apt-getnhưng biết rằng nó sẽ trả lời ytất cả các truy vấn.


1
Tôi đang sử dụng trình quản lý cập nhật đồ họa, không phải apt-get. Tôi có thể thực hiện cập nhật trong bảng điều khiển, nhưng tôi đã nghe nói 'apt-get dist-Nâng cấp' không hoạt động trong nhiều năm (để nâng cấp giữa các bản phát hành), vì vậy lệnh sẽ không phải là 'apt-get'.
jdm

@jdm apt-get dist-upgradenên hoạt động tốt. Bạn đã ở đâu không làm việc nữa?
Seth

3
@Seth apt-get dist-upgradehiện tại và chưa bao giờ, trong bất kỳ hệ điều hành nào, đã tự mình thực hiện nâng cấp bản phát hành. Xem man apt-get. upgradechỉ nâng cấp các gói có thể được nâng cấp mà không có gói nào mới được cài đặt hoặc gỡ cài đặt. dist-upgradenâng cấp các gói ngay cả khi nó có nghĩa là các gói được gỡ bỏ hoặc thêm vào. Điều này chủ yếu hữu ích để thực hiện các cập nhật thông thường - ví dụ, upgradesẽ không nâng cấp hạt nhân.
Eliah Kagan

2
Thay đổi sources.listđể trỏ đến kho lưu trữ của bản phát hành tiếp theo và sau đóapt-get dist-upgrade sẽ chạy , nếu thành công , sẽ thực hiện nâng cấp bản phát hành. Điều này được hỗ trợ trong Debian mặc dù được khuyến nghị sử dụng aptitude dist-upgradethay vì độ phân giải phụ thuộc nâng cao hơn. Trong Ubuntu, không có gì như thế này được hỗ trợ cả , mặc dù nó có thể thành công. Thay vào đó, để nâng cấp lên bản phát hành sau trong dòng lệnh, do-release-upgradeđược sử dụng. Tiện ích đó không có -ycờ, vì vậy câu trả lời này không áp dụng cho tình huống nâng cấp lên bản phát hành mới .
Eliah Kagan

Hừ, thú vị. Tôi đã phải đọc về Debian rồi.
Seth
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.