Tại sao apt-get không yêu cầu khởi động lại, nơi trình quản lý cập nhật thực hiện?


53

Thông thường, tôi cố gắng 'đánh bại' trình quản lý cập nhật bằng cách mở bảng điều khiển và nhập chuỗi

sudo apt-get update
sudo apt-get upgrade

theo hiểu biết tốt nhất của tôi, nên cập nhật tất cả các gói lên bản phát hành ổn định mới nhất của họ. Trình quản lý cập nhật cũng làm như vậy, theo như tôi biết.

Tuy nhiên, trình quản lý cập nhật đôi khi (thường xuyên nhất khi một kernel mới được phân phối) yêu cầu khởi động lại sau khi kết thúc. apt-getkhông bao giờ, ngay cả khi có vẻ như tôi đang nâng cấp kernel. Tại sao cái này rất?


Đáp lại phiếu bầu trùng lặp: Tôi không hỏi gói nào yêu cầu khởi động lại như câu hỏi được liên kết. Thay vào đó tôi đang hỏi tại sao apt-get không yêu cầu tôi khởi động lại ngay cả khi tôi nhận ra một gói đang được cập nhật mà trình quản lý cập nhật sẽ yêu cầu khởi động lại.


10
cũng đáng lưu ý rằng loại cập nhật được bao phủ apt-get dist-upgradenhưng không apt-get updgradecó nhiều khả năng là những bản cập nhật có thể khiến trình quản lý cập nhật đề xuất khởi động lại.
Jon Hanna

4
FWIW, bạn có thể kiểm tra xem có cần khởi động lại hay không bằng cách kiểm tra sự tồn tại của /var/run/reboot-required. Ngoài ra, Byobu hiển thị biểu tượng "yêu cầu cập nhật" trong thanh trạng thái khi cần.
Andrea Corbellini

2
@ Pilot6 Thậm chí từ xa đóng để trở thành một trùng lặp. Câu hỏi bạn đã đánh dấu là hỏi gói nào yêu cầu khởi động lại. Câu hỏi của tôi là hỏi tại sao một phương pháp cập nhật không yêu cầu tôi khởi động lại mặc dù tôi nhận ra một gói đang được cập nhật sẽ yêu cầu khởi động lại.
1

1
ĐỒNG Ý. Nhưng nó có liên quan chặt chẽ.
Pilot6

1
@ Pilot6 Rằng tôi có thể đồng ý;)
Jan

Câu trả lời:


81

Bởi vì apt-get(hoặc đơn giản apt) là dành cho ưu và khi thuận thì làm:

sudo apt-get dist-upgrade

và thấy một kernel mới đang được cài đặt, các chuyên gia biết rằng họ phải khởi động lại để kích hoạt nó ...

Bản cập nhật tự động dành cho những người khác ngoài kia!

;-)

Ngoài ra, giờ đây bạn có thể cài đặt Bản vá nhân Ubuntu Live từ phiên bản 16.04 trở đi , cho phép bạn cập nhật kernel trong khi máy chủ của bạn đang chạy.


4
Tôi ước tôi có thể chấp nhận cả ba câu trả lời vì về mặt kỹ thuật tất cả đều nói cùng một điều. Nhưng tôi nghĩ tôi sẽ lấy của bạn vì bạn khiến tôi cười toe toét nhất ;-)
Jan

6
> :) Một chút hài hước trong một câu trả lời là không bao giờ xấu! ;-)
Fabby

4
Hiện tại, hỗ trợ nhân trực tiếp đã có trong các nhân chính, vì vậy với một chút may mắn, chúng tôi có thể không phải khởi động lại nữa khi chúng tôi đến LTS 16.04.
kasperd

Mô tả của bạn về trận đấu apt-get upgradeso apt-get dist-upgradevới man apt-getkinh nghiệm của tôi không sử dụng công cụ này. Tôi khá chắc chắn rằng sự khác biệt có liên quan đến cách xử lý các phụ thuộc sẽ yêu cầu cài đặt hoặc gỡ bỏ các gói; "nâng cấp" bỏ qua các gói đó, "nâng cấp" cố gắng cài đặt / xóa gói để thực hiện nâng cấp.
derobert

1
@Fabby hơi bối rối vì bạn hiện đã xóa đoạn đó, nhưng nếu bạn xem trang apt-get man, mô tả về "nâng cấp" nói ví dụ: "trong mọi trường hợp, các gói hiện chưa được cài đặt hoặc các gói chưa được cài đặt đã được truy xuất và được cài đặt. ". Vì vậy, nếu một bản cập nhật ứng dụng thông thường yêu cầu cài đặt gói mới (ví dụ như thư viện soname mới), thì nó sẽ không được thực hiện. Hoặc nếu một bản cập nhật kernel sử dụng cùng tên gói, nó sẽ được thực hiện.
derobert

37

Trình quản lý cập nhật đề xuất khởi động lại khi các hạt nhân được nâng cấp hoặc một số gói hệ thống khác với các dịch vụ được đánh dấu để khởi động lại khi được nâng cấp.

Trong trường hợp /var/run/reboot-requirednày được thiết lập bởi một kịch bản cài đặt gói.

Dòng lệnh apt-get upgradekhông đề xuất bất cứ điều gì, vì nó được nhắm mục tiêu đến người dùng cao cấp hơn có thể tự quyết định khi nào khởi động lại hệ thống ;-)

Nhưng sau khi nâng cấp bằng apt-get Update Manager, một lúc nào đó cũng sẽ đề nghị khởi động lại.


Tôi không thể tin điều đó, điều đó có đúng không? "các dịch vụ không thể khởi động lại mà không khởi động lại toàn bộ hệ thống."
AB

2
Đúng vậy đây là sự thật. Giống như "mới nổi" và một số người khác. Không nhiều.
Pilot6

2
@ Pilot6 Nghe có vẻ vô lý nếu không thể khởi động lại mà không khởi động lại. Nó được cho là một bản nâng cấp từ SysV init có thể được khởi động lại mà không cần khởi động lại.
kasperd

@kasperd Đó chỉ là một ví dụ. Tôi nhận thấy rằng Trình quản lý cập nhật yêu cầu khởi động lại trên một số gói không phải kernel. Phải có một số danh sách của các gói này. Tôi không chắc chắn mới bắt đầu ở đó.
Pilot6

1
@MaxNanasy Trình quản lý cập nhật sẽ bật lên và đề xuất khởi động lại. nó có thể xảy ra trong một thời gian
Pilot6

15

Khi bạn cài đặt kernel mới, bạn phải khởi động lại máy để các thay đổi có hiệu lực, apt-get chỉ không cằn nhằn về nó.


1
Không chỉ cập nhật kernel. Bạn cũng phải khởi động lại hoặc khởi động lại một số dịch vụ khi các gói khác được nâng cấp. Nếu bạn hiểu biết, bạn có thể thường xuyên khởi động lại các dịch vụ liên quan và tránh khởi động lại. Nếu bạn không, thì khởi động lại sẽ luôn hoạt động. Việc tìm ra các dịch vụ cần khởi động lại thường không đơn giản, vì các gói nâng cấp có thể liên quan đến các thư viện dùng chung mà nhiều phần mềm khác phụ thuộc trực tiếp hoặc gián tiếp thông qua phần mềm khác. Tôi cũng không nhất thiết phải tin tưởng 100% người quản lý cập nhật đồ họa.
thomasrutter

7

apt-get thực sự thông báo cho bạn trên thiết bị đầu cuối khi sau khi cài đặt một gói nhất định, nếu nó yêu cầu khởi động lại.

update-manager là một loại giải pháp tất cả trong một, tự mình chăm sóc tất cả các nhu cầu nâng cấp của bạn.

Tôi thích apt-get hơn, không biết tại sao :)


2

apt-get upgrade không cập nhật kernel.

apt-get dist-upgrade cập nhật kernel trong Ubuntu.

Các phiên bản kernel Linux trước 4.1 cần khởi động lại khi kernel được cập nhật.

Các gói khác không cần khởi động lại, chỉ cần khởi động lại ứng dụng. Một số ứng dụng Windows chạy trên Wine yêu cầu khởi động lại nhưng chỉ cần gõ lệnh:

wineserver -k

và khởi động lại ứng dụng.

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.