Gói kho hay gói ứng dụng khách VPN: cái nào trước?
Gói phát hành chỉ đăng ký một nguồn và một khóa ký. Hãy quyết định xem kho của nhà cung cấp có đáng không, rồi cài ứng dụng khách như một bước riêng.
Bạn cài gói của nhà cung cấp, lệnh trả về số không, và vẫn không có ứng dụng VPN nào để khởi chạy. Điều đó xảy ra khi gói bạn cài đã cấu hình một kho thay vì cung cấp ứng dụng khách, và sự khác biệt nằm ở những gì nó để lại trên đĩa. Có cần cả hai hay không, và theo thứ tự nào, phụ thuộc vào ba điều kiện chứ không phải cách đặt tên của nhà cung cấp. Quyết định dưới đây giữ việc thiết lập nguồn, làm mới siêu dữ liệu và cài đặt ứng dụng thành những hành động riêng với bằng chứng riêng.
Mỗi gói thực sự thay đổi điều gì
Gói cấu hình kho ghi một mục nguồn APT, nhập khóa ký mà mục đó tin cậy, rồi thoát. Nội dung của nó là vài tệp dưới /etc/apt cùng một chùm khóa, và không có gì để chạy. Gói ứng dụng khách cung cấp daemon hoặc ứng dụng máy tính để bàn, các thư viện và phụ thuộc của nó, và đó là đối tượng xuất hiện trong menu hoặc trong một đơn vị systemd.
Tên tệp kết thúc bằng -release gợi ý loại thứ nhất, nhưng hậu tố là quy ước, không phải bảo đảm. Phát biểu đáng tin về vai trò của một gói là danh sách tệp và các phụ thuộc của nó, cả hai đều đọc được trước khi cài bất cứ thứ gì. Nhà cung cấp định hình lại cách đóng gói sẽ giữ nguyên tên tệp và thay đổi nội dung, nên một câu trả lời chép từ một luồng hai năm trước có thể mô tả một gói không còn tồn tại. Hãy đọc hướng dẫn hiện tại của nhà cung cấp cho bản phát hành bạn đang chạy, rồi kiểm tra những gì gói khai báo.
Ba giai đoạn nảy sinh từ sự tách bạch đó: đăng ký nguồn, làm mới siêu dữ liệu mà nó nuôi dưỡng, rồi cài ứng dụng theo tên. Hướng dẫn cài đặt cho Debian và Ubuntu giữ chúng tách biệt, vì thế ứng dụng khách được yêu cầu ở bước sau chứ không phải bởi gói đã thiết lập nguồn.
Ba điều kiện quyết định thứ tự
Điều kiện thứ nhất là nhà cung cấp có phát hành kho cho đúng bản phát hành phân phối của bạn hay không. Một dòng nguồn dựng cho một bộ có thể được giải quyết dựa trên phụ thuộc của bộ khác và cài một hỗn hợp mà không ai đã thử.
Điều kiện thứ hai là phân phối của bạn đã có sẵn ứng dụng khách hay chưa. Khi có, gói của phân phối đi theo các chuyển đổi thư viện và bản cập nhật bảo mật của bản phát hành bạn, trong khi gói của nhà cung cấp có thể di chuyển nhanh hơn và mang theo bản sao riêng của các thư viện dùng chung.
Điều kiện thứ ba là bạn thực sự cần những tính năng nào. Bản dựng của nhà cung cấp có thể cung cấp cách hiện thực giao thức mới hơn hoặc tích hợp máy tính để bàn mà phân phối của bạn chưa đóng gói, và đó là lý do thật để chấp nhận nguồn thứ hai. Nếu bản dựng của phân phối bao phủ việc dùng của bạn, thêm một kho bên thứ ba mua lấy công việc cập nhật và thêm một quan hệ tin cậy với giá rất nhỏ.
Hãy giải quyết ba câu trả lời đó trước khi dòng nguồn tồn tại, vì gỡ nó sau này nghĩa là thanh lọc gói và khóa của nó. Khi đã rõ, trình tự trong đường của nhà cung cấp không còn là lựa chọn: nguồn trước, siêu dữ liệu thứ hai, ứng dụng thứ ba, không bao giờ ngược lại.
Kiểm tra những gì gói phát hành để lại
Trước khi cài bất cứ thứ gì khác, hãy đọc danh sách tệp thay vì phần mô tả. Trên các hệ thống thuộc họ Debian, bản kê gói trả lời nó đã cấu hình gì và khóa đã nằm ở đâu.
dpkg -L proton-vpn-release | grep -E 'apt|keyring'
apt-cache policy proton-vpn-gnome-desktop
grep -r protonvpn /etc/apt/sources.list.d/
Dòng đầu cho thấy tệp nguồn và đường dẫn chùm khóa, còn dòng thứ hai báo cáo phiên bản mà các nguồn đã cấu hình có thể cung cấp. Nếu apt-cache policy không in gì cho tên ứng dụng khách, việc làm mới siêu dữ liệu chưa xảy ra hoặc nguồn nhắm tới bộ khác. Dòng thứ ba xác nhận mục nằm đúng nơi APT thực sự đọc.
Đối chiếu đường dẫn chùm khóa với trường signed-by= trong dòng nguồn. Một khóa trong thư mục sai tạo ra lỗi nguồn chưa xác thực, đó là lỗi khác với gói không khả dụng.
Coi lỗi phụ thuộc là một giai đoạn riêng
Cài một .deb đã tải xuống bằng dpkg -i không giải quyết gì: nó kiểm tra phụ thuộc, báo cáo những gì thiếu và để gói ở trạng thái cấu hình dở. Đó là hành vi mong đợi, không phải bản tải xuống hỏng.
apt --fix-broken install sau đó yêu cầu APT tạo trạng thái nhất quán từ các nguồn bạn có. APT không biết bạn muốn VPN nào, và kế hoạch của nó có thể gỡ gói để thỏa mãn ràng buộc tìm thấy. Hãy đọc giao dịch được đề xuất trước khi trả lời có, và dừng lại nếu việc gỡ chạm vào thứ bạn cần. Lặp lại việc sửa mà không đọc kế hoạch là cách một khoảng trống phụ thuộc nhỏ biến thành chiếc máy tính để bàn không còn khởi động.
Giữ thông điệp có nghĩa đầu tiên từ trình quản lý gói và phân loại nó trước khi hành động. Một kho không ký, một gói mà các nguồn đã cấu hình không có, xung đột phiên bản và ứng dụng khách khởi chạy rồi chết là bốn lỗi riêng biệt.
Xác minh ứng dụng, không phải kho
Xác nhận ứng dụng khách đã đạt trạng thái đã cài, rồi xác nhận chương trình khởi chạy. dpkg-query -W -f='${Status} ${Version}' proton-vpn-gnome-desktop phải báo cáo install ok installed kèm phiên bản, và hỏng khi khởi chạy sau đó là vấn đề ứng dụng chứ không phải đóng gói.
Ghi lại chủ sở hữu kho và gói ứng dụng như hai đối tượng riêng, để lần gỡ sau lấy đúng cái và để cái kia nguyên vẹn. Khi nhà cung cấp đổi hướng dẫn, mục nguồn là thứ bạn đọc lại; tên ứng dụng khách là thứ bạn cài lại.