Đừng phá hỏng hệ thống Debian!

Debian là một hệ thống mạnh mẽ và đáng tin cậy. Nhưng người dùng mới vẫn rất dễ dàng phá hỏng hệ thống này, bằng cách không thực hiện mọi thứ theo cách của Debian. Bài viết này liệt kê các lỗi phổ biến mà người dùng mới hay mắc phải. Một số điều được liệt kê ở đây có thể được thực hiện một cách an toàn, nhưng chỉ khi bạn có đủ kinh nghiệm để biết cách khắc phục hệ thống nếu có sự cố xảy ra.

Hậu quả không phải lúc nào cũng dễ nhận thấy ngay lập tức và có thể khiến việc nâng cấp trong tương lai không thể thực hiện được nếu không cài đặt lại hoàn toàn. Nếu việc nâng cấp mà không phải cài đặt lại hoàn toàn rất quan trọng đối với bạn, hãy cẩn thận để không mắc phải những lỗi được nêu dưới đây.

Một trong những ưu điểm chính của Debian là kho lưu trữ trung tâm với hàng ngàn gói phần mềm. Nếu bạn tìm đến Debian sau khi đã sử dụng một hệ điều hành khác, bạn có thể đã quen với việc cài đặt phần mềm mà bạn tìm thấy đâu đó trên một trang web ngẫu nhiên. Trên Debian, việc cài đặt phần mềm từ các trang web ngẫu nhiên là một thói quen xấu. Sẽ luôn tốt hơn nếu sử dụng phần mềm từ kho lưu trữ Debian chính thức nếu có thể. Các gói trong kho Debian được cho là hoạt động khá tốt. Chỉ sử dụng phần mềm từ kho Debian cũng an toàn hơn nhiều so với cài đặt từ các trang web ngẫu nhiên (có thể dễ dàng gặp phải phần mềm độc hại và các rủi ro bảo mật khác).

Đừng tạo ra một FrankenDebian!

Đừng tạo ra một FrankenDebian!

Debian Stable không nên được kết hợp với các bản phát hành khác. Nếu bạn đang cố gắng cài đặt phần mềm không có sẵn trong bản phát hành Debian Stable hiện tại, thì không nên thêm kho lưu trữ cho các bản phát hành Debian khác. Vấn đề có thể không xảy ra ngay lập tức, nhưng bạn có thể gặp rắc rối khi cài đặt bản cập nhật vào lần tới.

Lý do việc này có thể phá vỡ hệ thống là vì phần mềm được đóng gói cho một bản phát hành Debian được xây dựng để tương thích với phần còn lại của phần mềm dành riêng cho bản phát hành đó. Ví dụ, cài đặt các gói từ buster trên một hệ thống stretch cũng có thể đồng thời cài đặt các phiên bản mới hơn của thư viện chính, bao gồm libc6. Điều này dẫn đến một hệ thống không hoàn toàn là testing hoặc stable mà là sự pha trộn của giữa hai loại này.

Các kho lưu trữ có thể tạo ra FrankenDebian (một loại hệ thống tạo ra từ việc trộn các gói bên ngoài Debian với hệ thống Debian cơ sở), nếu được sử dụng với Debian Stable:

  • Bản phát hành Debian testing (hiện nay là buster)
  • Bản phát hành unstable (không ổn định, còn gọi là sid) 
  • Debian Ubuntu, Mint hoặc các kho lưu trữ phái sinh khác không tương thích với Debian
  • Ubuntu PPA (Personal Package Archive)

Không sử dụng script cài đặt của nhà sản xuất GPU

Debian bao gồm các driver mã nguồn mở miễn phí hỗ trợ hầu hết các card video. Những driver miễn phí này cung cấp khả năng tích hợp tốt nhất với phần còn lại của hệ thống Debian và hoạt động khá tốt đối với hầu hết người dùng.

Nếu bắt buộc phải có driver nguồn đóng (closed source) độc quyền, đừng tải chúng trực tiếp từ trang web của nhà sản xuất! Cài đặt driver theo cách này chỉ hoạt động cho kernel hiện tại và sau khi cập nhật kernel tiếp theo, driver video của bạn sẽ không hoạt động cho đến khi chúng được cài đặt lại theo cách thủ công.

May mắn thay, Debian có một cách để cài đặt driver card video độc quyền bằng cách sử dụng các gói trong kho lưu trữ. Cài đặt driver theo cách này sẽ đảm bảo rằng các driver tiếp tục hoạt động sau khi cập nhật kernel.

  • AtiHowTo có hướng dẫn sử dụng driver mã nguồn mở miễn phí cho card video ATI/AMD. Link tham khảo: https://wiki.debian.org/AtiHowTo.
  • ATIProprietary có hướng dẫn cài đặt driver nguồn đóng ATI/AMD theo cách của Debian. Link tham khảo: https://wiki.debian.org/ATIProprietary.
  • NvidiaGraphicsDrivers có hướng dẫn cài đặt driver nguồn đóng Nvidia theo cách của Debian. Link tham khảo: https://wiki.debian.org/NvidiaGraphicsDrivers.

Đừng “có mới nới cũ”!

Debian Stable

Lý do mà Debian Stable rất đáng tin cậy là vì phần mềm được kiểm tra và sửa lỗi trước khi đưa vào sử dụng. Điều này có nghĩa là phiên bản phần mềm mới nhất thường không có sẵn trong kho Stable. Nhưng điều đó không có nghĩa là phần mềm này đã lỗi thời!

Trước khi thử cài đặt phiên bản mới nhất của một số phần mềm từ nơi nào đó ngoài kho lưu trữ Debian Stable, đây là một số điều cần lưu ý:

  • Debian backport các bản sửa lỗi bảo mật và thêm các tính năng mới, đánh giá phần mềm bằng cách so sánh số phiên bản của gói Debian với số phiên bản upstream.
  • Phiên bản mới nhất của phần mềm bạn đang cố sử dụng cũng có thể xuất hiện lỗi mới.
  • Cài đặt phần mềm từ những nơi không phải là kho lưu trữ Debian chính thức sẽ không được nhóm Bảo mật của Debian bảo vệ.

“make install” có thể xung đột với các gói

Việc biên dịch phần mềm từ tarball mã nguồn được tải xuống từ trang web của phần mềm khá dễ dàng, nhưng không phải lúc nào cũng dễ dàng gỡ bỏ nó sau đó. Thông thường, mã nguồn bao gồm các hướng dẫn để sử dụng những lệnh như:

./configure && make && make install

Khi cài đặt phần mềm theo cách này, bạn sẽ không thể xóa phần mềm bằng apt-get hoặc Synaptic. Hệ thống gói APT chỉ có thể xóa phần mềm đã được cài đặt bởi chính hệ thống này. Thậm chí tệ hơn, phần mềm được cài đặt theo cách này đôi khi có thể xung đột với phần mềm có sẵn cho Debian.

Phần mềm được cài đặt theo cách này cũng không được hưởng lợi từ các bản cập nhật bảo mật giống như những gói Debian khác. Nếu bạn muốn cập nhật hệ thống của mình mà không phải biên dịch thủ công và cài đặt lại phần mềm cho mỗi bản cập nhật, hãy sử dụng các gói Debian.

Script make install có thể đưa ra các giả định không hợp lệ về nơi file nhị phân được biên dịch và những file được liên kết của nó sẽ tồn tại trong hệ thống file và quyền được thiết lập để chạy chúng. Phần mềm được cài đặt theo cách này cũng có thể thay thế phần mềm quan trọng đối với việc bảo trì hệ thống và gói, gây khó khăn cho việc sửa chữa hệ thống bằng các công cụ Debian tiêu chuẩn.

Đừng mù quáng làm theo lời khuyên vớ vẩn!

Thật không may, có rất nhiều lời khuyên vớ vẩn trên Internet. Các hướng dẫn được tìm thấy trên blog, diễn đàn và những trang web khác thường bao gồm nhiều hướng dẫn có khả năng phá hủy hệ thống của bạn theo nhiều cách khác nhau. Đừng chỉ làm theo lời khuyên đầu tiên bạn tìm thấy, hoặc hướng dẫn có vẻ dễ nhất! Hãy dành thời gian đọc tài liệu và so sánh sự khác biệt giữa các hướng dẫn.

Tốt hơn là dành thời gian tìm ra cách chính xác để làm điều gì đó, chứ đừng tốn thời gian để sửa chữa một hệ thống bị hỏng. Đừng thực thi bất kỳ lệnh nào mà không hiểu chúng dùng để làm gì!

Các bài viết trên blog và diễn đàn sẽ tồn tại mãi mãi. Tuy nhiên, những hướng dẫn này có thể đã an toàn một vài năm trước, còn hiện tại thì không. Nếu nghi ngờ, hãy tiếp tục nghiên cứu và đọc tài liệu dành cho phiên bản bạn đang sử dụng.

Tìm đọc những hướng dẫn hữu ích

Thường thì đọc một hướng dẫn chỉ đủ để có một ý tưởng chung về cách cài đặt hoặc sử dụng một ứng dụng nào đó. Hầu như tất cả các phần mềm đi kèm với Debian đều có ít nhất một số tài liệu có sẵn. Một số nơi để tìm những tài liệu này bao gồm:

  • Trang chủ tài liệu Debian: https://www.debian.org/doc/
  • The Debian Administrator's Handbook (Cẩm nang của quản trị viên Debian): https://debian-handbook.info/
  • Lệnh apropos sẽ giúp bạn tìm các trang hướng dẫn.
  • Lệnh man để đọc các trang hướng dẫn cho những lệnh mà bạn không hiểu.
  • Một số phần mềm có gói <package name>-doc riêng chứa tài liệu.
  • Mỗi gói Debian được cài đặt trên hệ thống đều có một thư mục trong /usr/share/doc, thường chứa file README.Debian, với thông tin về sự khác biệt từ phiên bản upstream của phần mềm cùng với tài liệu bổ sung.

Đừng gỡ bỏ phần mềm một cách mù quáng!

Thỉnh thoảng khi bạn loại bỏ một gói, trình quản lý gói cũng sẽ loại bỏ các gói khác. Điều này là do các gói bổ sung phụ thuộc vào gói bạn đang cố xóa.

Nếu điều này xảy ra, trình quản lý gói sẽ hiển thị cho bạn một danh sách các gói sẽ bị xóa và yêu cầu bạn xác nhận. Hãy chắc chắn đọc danh sách này một cách cẩn thận! Nếu bạn không biết một số gói cần xóa là gì, hãy đọc mô tả cho từng gói. Khi nghi ngờ, hãy dành thời gian nghiên cứu thêm. Một số tài nguyên có thể giúp bạn nghiên cứu các gói bao gồm:

  • https://www.debian.org/distrib/packages
  • Các lệnh apt-cache(8) (link tham khảo: https://manpages.debian.org/stretch/apt/apt-cache.8.fr.html):
    • apt-cache show <package name> để xem thông tin về gói
    • apt-cache policy <package name> để xem thông tin phiên bản cho một gói
    • apt-cache depends <package name> để xem các dependency của gói
  • Các lệnh aptitude(8) (link tham khảo: https://manpages.debian.org/stretch/aptitude/aptitude.8.fr.html):
    • aptitude why <package name> để hiển thị lý do không đầy đủ tại sao một gói được cài đặt
    • aptitude why-not <package name> để hiển thị lý do tại sao gói không thể được cài đặt
  • Sử dụng tùy chọn --simulate với apt-getaptitude, giống như các lệnh khác trong danh sách này không cần phải được chạy dưới dạng root:
    • apt-get --simulate remove <package name>

Đọc mô tả gói trước khi cài đặt

Bạn nên đọc mô tả của các gói trước khi cài đặt chúng. Đôi khi phần mềm sẽ có các gói khác nhau có sẵn trong kho Debian và mỗi gói được cấu hình theo một cách khác nhau. Đọc mô tả gói và tìm kiếm tên gói tương tự để đảm bảo bạn cài đặt đúng gói mình muốn.

Điểm này có thể đặc biệt quan trọng đối với các gói cài đặt các mô-đun kernel.

Ghi chép

Bạn rất dễ quên các bước đã thực hiện, khi làm một cái gì đó trên máy tính, đặc biệt là vài tháng sau khi bạn nâng cấp hệ thống. Thỉnh thoảng, khi bạn thử một vài cách khác nhau để giải quyết vấn đề, việc quên phương pháp nào đã thành công ngay ngày hôm sau cũng hoàn toàn có thể xảy ra!

Tốt nhất bạn nên ghi chú về phần mềm đã cài đặt và thay đổi cấu hình đã thực hiện. Khi chỉnh sửa các file cấu hình, bạn cũng nên đưa thêm nhận xét vào file, giải thích lý do cho các thay đổi này và ngày chúng được thực hiện.

Cách an toàn hơn để cài đặt phần mềm không có sẵn trong Debian Stable

Đôi khi, cần phải cài đặt phần mềm không được đóng gói sẵn cho Debian hoặc phiên bản mới hơn so với gói được phát hành ổn định. Dưới đây là một số cách để giảm thiểu rủi ro như đã đề cập ở trên.

Gói backport

Kho lưu trữ Debian Backports

Những phiên bản mới hơn của các gói thường có thể được tìm thấy trong kho lưu trữ Debian Backports. Các gói này không được kiểm tra kỹ như những gói có trong bản phát hành Debian Stable và nên được cài đặt ở mức độ vừa phải.

Những người chấp nhận nhiều rủi ro hơn đôi khi có thể tự tạo ra các bản sao lưu của phần mềm Debian mới nhất. Mặc dù không phải không có rủi ro, nhưng việc tự backport lại thường an toàn hơn các phương pháp khác. Khi tự backport không thành công, điều đó cho thấy rằng việc cài đặt phần mềm theo cách thủ công (ví dụ với make install hoặc một script trình cài đặt) có thể làm tổn hại hệ thống Debian của bạn.

  • SimpleBackportCreation: https://wiki.debian.org/SimpleBackportCreation
  • Các hướng dẫn thay thế có sẵn dưới dạng những mẩu thông tin thú vị từ Debian IRC bot: https://wiki.debian.org/IRC/DpkgBot
  • Ngoài ra trên IRC, judd bot cung cấp lệnh checkbackport để cung cấp một số hướng dẫn về việc có thể backport hay không bằng cách truy vấn UltimateDebianDatabase.

Build từ nguồn

Nếu bạn đang build phần mềm từ nguồn thu được khác với Debian, thì nên build và chạy nó như một người dùng bình thường, trong thư mục chính của người dùng đó. Nếu bạn giữ dữ liệu nhạy cảm, có giá trị hoặc không thể thay thế trong thư mục chính, có thể nên tạo một tài khoản người dùng khác cho mục đích này.

automake và các hệ thống build khác có thể cài đặt phần mềm tự build ở các vị trí không chuẩn. Sử dụng root hoặc "sudo" để cài đặt phần mềm tự build vào /usr/bin hoặc các vị trí tiêu chuẩn khác nơi các gói thông thường đặt file là một ý tưởng tồi. Thay vào đó, hầu như luôn luôn có thể cài đặt vào thư mục chính (sử dụng ./configure --prefix=~/.local hoặc tương tự). Nếu bạn hiểu cách chỉnh sửa Makefiles, thì bạn có thể thay đổi file Makefile theo cách kết xuất make install hữu ích cho hệ thống hoặc thêm tùy chọn prefix=~/.local.

Nếu bạn muốn cung cấp phần mềm cho tất cả người dùng, đừng cho phép phần mềm tự cài đặt vào hệ thống phân cấp thư mục /usr, vì chỉ các gói Debian được tạo file ở đó. Cài đặt phần mềm vào /usr/local sẽ giúp phần mềm có sẵn cho tất cả người dùng và sẽ không can thiệp vào trình quản lý gói. Gói stow có thể hữu ích để quản lý phần mềm được cài đặt vào /usr/local.

Sử dụng chroot, container và máy ảo

Một chiến lược khác để sử dụng phần mềm không có sẵn trong Debian Stable là chạy phần mềm trong hệ thống Debian ảo có trong thư mục hoặc file image. Điều này cho phép phần mềm được cài đặt trên hệ thống Debian ảo mà không có bất kỳ ảnh hưởng nào đến hệ thống chính hoặc máy chủ Debian chạy máy tính của bạn.

Debian bao gồm nhiều công cụ cung cấp mức độ cách ly khác nhau với hệ điều hành máy chủ. Một số công cụ bao gồm:

  • Schroot
  • LXC
  • gnome-boxes
  • libvirt và KVM
  • Gói systemd-container cho các lệnh container machinectlsystemd-nspawn
  • Docker, tiêu chuẩn thực tế để quản lý các container với hàng ngàn image và ứng dụng được build sẵn trên Docker hub
  • Flatpak - xem bên dưới
  • snap - xem bên dưới

Flatpak

Một số ứng dụng và game cũng có sẵn ở định dạng gói Flatpak mới. Flatpaks có thể được cài đặt cục bộ bởi người dùng không có quyền root và không can thiệp vào hệ thống gói Debian. Các ứng dụng Flatpak cũng có thể chạy trong sandbox. Một gói flatpak có sẵn cho Debian. Gnome-software có thể cập nhật và cài đặt ứng dụng Flatpak với gói gnome-software-plugin-flatpak được cài đặt. Để biết thêm thông tin, xem trang wiki FlatpakHowto: https://wiki.debian.org/FlatpakHowto

Snap

Một lựa chọn khác là hệ thống Snappy được phát triển bởi Canonical, công ty cung cấp hỗ trợ cho Ubuntu. Snap về cơ bản tương tự Flatpak nhưng hiện tại kho lưu trữ snapcraft trung tâm có nhiều ứng dụng được đóng gói hơn Flathub.

Tận dụng tối đa các nguồn hỗ trợ

Tận dụng tối đa các nguồn hỗ trợ

Khi tìm kiếm sự hỗ trợ, điều quan trọng cần nhớ là Debian là một dự án tình nguyện và mọi người sẽ có xu hướng giúp đỡ nhiều hơn, nếu bạn lịch sự và tự mình nỗ lực. Dưới đây là một số hướng dẫn chung giúp bạn nhận trợ giúp khi cần:

  • Trước tiên hãy tự mình nghiên cứu vấn đề, bao gồm đọc tài liệu và sử dụng các công cụ tìm kiếm.
  • Cung cấp chi tiết và đặt câu hỏi thông minh tại: http://www.catb.org/~esr/faqs/smart-questions.html.
  • Nếu bạn cảm thấy thất vọng, đừng tỏ thái độ với các tình nguyện viên cố gắng giúp đỡ.
  • Đừng mong đợi được “cầm tay chỉ việc”, nếu bạn cần được hướng dẫn từng bước một thì đó là dấu hiệu bạn cần tự tìm hiểu thêm bằng cách đọc tài liệu.
  • Nếu bạn biết cách trả lời một câu hỏi từ người dùng khác, bạn được khuyến khích đóng góp ý kiến!
  • Trên IRC, đặc biệt:
    • Đừng nhấn <enter> cứ sau vài từ, vì như vậy rất khó theo dõi.
    • Hãy kiên nhẫn đợi câu trả lời (mọi người thường biến mất ngay trước khi ai đó trả lời câu hỏi của mình).
    • Sử dụng https://paste.debian.net/ thay vì dán trực tiếp vào kênh.
Thứ Sáu, 28/06/2019 17:55
44 👨 781