Cách nâng cấp Debian

Trong mỗi khoảng thời gian hai năm, Debian sẽ không có thay đổi gì. Các phiên bản chương trình và tính năng vẫn được giữ nguyên trong suốt khoảng thời gian này. Các bản sửa lỗi bảo mật được backport (lấy của phiên bản mới rồi chuyển sang phiên bản cũ). Đôi khi, có những trường hợp ngoại lệ hiếm gặp trong đó một gói cần các tính năng mới. Ví dụ, driver có thể được nâng cấp để thêm hỗ trợ cho phần cứng nhiều hơn. Nhưng trường hợp này rất hiếm khi xảy ra.

Việc giữ mọi thứ không đổi cũng có những lợi thế nhất định, chẳng hạn như làm cho hệ điều hành đáng tin cậy hơn. Bạn gần như không bao giờ gặp phải lỗi. Mọi thứ gần như không bao giờ bị phá vỡ sau khi cập nhật các gói. Không có tính năng mới đồng nghĩa với việc không có bất kỳ hành vi không mong muốn nào sẽ xảy ra.

Nhưng cứ sau (khoảng) hai năm, một phiên bản Debian mới lại được phát hành. Và phiên bản mới thường mang lại những cải tiến đáng kể và những tính năng mới. Trên một hệ thống “sạch”, việc nâng cấp từ phiên bản chính này sang phiên bản tiếp theo rất “mượt mà”, khiến bạn có cảm giác như mình vừa nâng cấp một vài gói không quan trọng vậy.

Trước khi nâng cấp, hãy dọn sạch sources.list!

Một số người dùng gặp phải sự cố khi họ cố gắng nâng cấp Debian, chẳng hạn như không thể giải quyết sự xung đột giữa các gói, phần mềm quan trọng bị xóa, v.v... Cuối cùng, họ chỉ còn cách gỡ bỏ cài đặt cũ và cài đặt mới phiên bản mới. Tuy nhiên, trong hầu hết mọi trường hợp, đó không phải là lỗi của Debian. Lý do mà những người dùng này gặp phải vấn đề thường là vì họ đã vô tình làm một số điều phá vỡ hệ điều hành của mình. Việc hệ điều hành vẫn đang hoạt động không có nghĩa là trình quản lý gói không có vấn đề. Đó là lý do tại sao bạn luôn được khuyến nghị loại bỏ bất kỳ tham chiếu nào đến phần mềm của bên thứ ba khỏi các file “sources.list” trước khi tiếp tục.

Hãy mở file này để chỉnh sửa:

sudo nano /etc/apt/source.list

Xóa mọi tham chiếu đến phần mềm bên ngoài kho lưu trữ chính thức của Debian. Chỉ có ba dòng bạn cần trong file này.

Dọn sạch sources.list

Nếu bạn cần một template, hãy sao chép ví dụ dưới đây và sửa đổi nó theo nhu cầu.

Điều quan trọng là bạn giữ được codename hiện tại của bản phát hành Debian! Ví dụ, nếu đó là năm 2021 và bạn đang chạy Debian Buster, hãy thay thế stretch bằng buster hoặc bất cứ điều gì áp dụng cho trường hợp của bạn.

deb http://deb.debian.org/debian stretch main
 deb http://deb.debian.org/debian stretch-updates main
 deb http://deb.debian.org/debian-security/ stretch/updates main

Ngoài ra, hãy giữ nguyên các chuỗi kết thúc. Trong ví dụ này, dòng kết thúc bằng chuỗi “main”. Nhưng nếu “sources.list” hiện tại của bạn kết thúc bằng “main contrib non-free”, thì hãy thêm “contrib non-free” ở cuối mỗi dòng. Trong trường hợp này, kết quả cuối cùng trông như sau:

deb http://deb.debian.org/debian stretch main contrib non-free
 deb http://deb.debian.org/debian stretch-updates main contrib non-free
 deb http://deb.debian.org/debian-security/ stretch/updates main contrib non-free

Để lưu file, nhấn Ctrl + X, theo sau là y và sau đó Enter.

Cập nhật thông tin gói:

sudo apt update

Nâng cấp các gói:

sudo apt upgrade

Nếu một thay đổi giống như hình ảnh sau đây xuất hiện, sau khi đọc xong, bạn có thể thoát bằng cách nhấn q.

Sau khi nâng cấp nhấn q để thoát

Loại bỏ các gói không cần thiết:

sudo apt autoremove

Chuẩn bị sources.list để nâng cấp

Điều đáng lưu ý là bạn chỉ nên nâng cấp từ một phiên bản chính lên phiên bản tiếp theo. Ví dụ, bạn nên nâng cấp Debian 7 lên 8 hoặc 8 lên 9, chứ đừng nâng cấp từ 7 lên thẳng 9.

Chỉnh sửa tập tin nguồn phần mềm của bạn một lần nữa.

sudo nano /etc/apt/sources.list

Thay thế codename của bản phát hành Debian hiện tại bằng codename của phiên bản tiếp theo. Bạn có thể tìm thấy codename trên trang danh sách các bản phát hành Debian (link tham khảo: https://www.debian.org/releases/).

Ví dụ, để nâng cấp Debian 9 lên Debian 10, bạn sẽ thay đổi điều này:

deb http://deb.debian.org/debian stretch main contrib non-free
 deb http://deb.debian.org/debian stretch-updates main contrib non-free
 deb http://deb.debian.org/debian-security stretch/updates main contrib non-free

...thành:

deb http://deb.debian.org/debian buster main contrib non-free
 deb http://deb.debian.org/debian buster-updates main contrib non-free
 deb http://deb.debian.org/debian-security buster/updates main contrib non-free

Lưu file và sau đó làm mới thông tin gói:

sudo apt update

Nâng cấp Debian

Nếu bạn đang thực hiện nâng cấp trên desktop, hãy đăng xuất khỏi giao diện đồ họa. Quá trình cập nhật sẽ khởi động lại ngăn xếp đồ họa (graphical stack) tại một số điểm và khiến bạn mất quyền truy cập vào ứng dụng terminal.

Đăng nhập vào text console. Nhấn ALT + CTRL + F2 hoặc ALT + CTRL + F3, đăng nhập bằng tên người dùng và mật khẩu của bạn, sau đó nhập lệnh trên màn hình này.

Thực hiện nâng cấp an toàn trước tiên. Bước này sẽ nâng cấp tất cả các gói mà không loại bỏ bất cứ điều gì.

sudo apt upgrade

Hãy chú ý xem có bất kỳ xung đột nào dẫn đến các gói cần thiết bị gỡ bỏ không. Nếu dùng lệnh này và lệnh tiếp theo trên một số hệ thống, những thứ như ngăn xếp đồ họa có thể bị loại bỏ hoàn toàn. Tuy nhiên, điều đó sẽ không xảy ra trên các hệ thống “sạch”, nơi bạn chưa bao giờ cài đặt những thứ bên ngoài kho lưu trữ Debian.

Một số gói đi kèm với các file cấu hình mới. Bạn sẽ được hỏi muốn giữ cấu hình cũ hay nâng cấp lên cấu hình mới.

Nếu đã sửa đổi file cấu hình, bạn có thể muốn giữ hoặc nâng cấp và sau đó thêm các tùy chỉnh. Tuy nhiên, nếu bạn chưa bao giờ chạm vào file này, hãy chọn nâng cấp cấu hình mới (nhập Y). Bản nâng cấp có thể chứa những cải tiến quan trọng, sửa lỗi bảo mật hoặc các thay đổi cần thiết để phần mềm hoạt động. Đó là lý do tại sao bạn nên cài đặt phiên bản của gói bảo trì Google thường xuyên nhất có thể.

Bây giờ, hãy thực hiện nâng cấp toàn bộ. Điều này sẽ nâng cấp phần còn lại của các gói không thể được cập nhật bằng lệnh trước đó (nguyên nhân là vì chúng xung đột với các gói cũ hoặc những chương trình lỗi thời đang có trên hệ thống). Việc nâng cấp đầy đủ sẽ loại bỏ một số gói cũ để nhường chỗ cho gói mới.

sudo apt full-upgrade

Nâng cấp đầy đủ

Sau lệnh này, việc nâng cấp sẽ hoàn tất. Bạn có thể dọn sạch các gói không cần thiết bằng lệnh:

sudo apt autoremove

Cuối cùng, hãy khởi động lại máy tính hoặc máy chủ:

sudo systemctl reboot

Trong hầu hết các trường hợp, quá trình nâng cấp trên sẽ không gặp phải bất kỳ vấn đề gì. Nhưng nếu bạn đã thêm nguồn phần mềm của bên thứ ba vào trình quản lý gói của mình hoặc đã cài đặt các gói của bên thứ ba (với các lệnh như dpkg -i something.deb), bạn có thể gặp phải xung đột. Trong những trường hợp như vậy, bạn sẽ phải giải quyết chúng một cách thủ công, bằng cách loại bỏ các gói vi phạm trước với lệnh:

sudo apt autoremove badpackage

Chúc bạn thực hiện thành công!

Thứ Năm, 23/05/2019 17:50
52 👨 83