Làm cách nào để đặt gpg2 làm cài đặt gpg mặc định trên debian?


20

Cài đặt debian của tôi đi kèm với gpg 1.4.12, trong khi tôi muốn chạy 2.0.19. Cái trước đi kèm trong gói gnupgvà cái sau gnupg2. Họ có thể chung sống hòa bình theo như tôi biết, nhưng tôi thực sự muốn sử dụng gpg2làm nhà cung cấp mặc định gpg. Tôi biết debian có update-alternativesđược sử dụng để đặt mặc định, nhưng tôi không thể tìm thấy bất kỳ đề cập nào gpghoặc gnupgtrong đó.

Làm thế nào tôi có thể thiết lập này?

Câu trả lời:


13

Câu trả lời

update-alternativeschỉ hoạt động nếu một gói sử dụng rõ ràng hệ thống thay thế. gnupg và gnupg2 không.

Lý lịch

Thông thường lý do là giao diện người dùng khác nhau quá nhiều do đó các tập lệnh sử dụng một công cụ sẽ không hoạt động nữa nếu đột nhiên các công cụ khác chạy thay thế. Một ví dụ điển hình ở đây là markdown. Mỗi markdowntriển khai trong Debian có các tùy chọn dòng lệnh khá khác nhau, do đó hệ thống thay thế không được sử dụng ở đó.

gpgCác gpg2tùy chọn dòng lệnh của và dường như không khác nhau nhiều, nhưng có thể đầu ra của một số hành động hoặc mã thoát nhất định khác nhau đáng kể ở một số nơi.

Một điều mà chúng khác nhau và điều quan trọng đối với cài đặt và phương tiện cài đặt tối thiểu, là sự phụ thuộc của chúng. Mặc dù gnupggói có mức độ ưu tiên "tiêu chuẩn" (nghĩa là được cài đặt trong bản cài đặt tiêu chuẩn) và sự phụ thuộc của gói apt, gói đó gnupg2kéo theo khá nhiều thư viện hiện chỉ có mức độ ưu tiên "tùy chọn".

Có hai báo cáo lỗi mở trong Debian, một báo cáo đối với mỗi gói ( # 561540 so với gnupg# 483724 so với gnupg2 ), yêu cầu sử dụng hệ thống thay thế cho gnupggnupg2.

Hiện tại một trong những báo cáo lỗi này được gắn thẻ wontfix, nhưng thẻ được gọi là "cho đến bây giờ" và có một số gợi ý cần phải quan tâm trong trường hợp hệ thống thay thế sẽ được sử dụng (hoặc gnupg2sẽ trở thành mặc định) trong tương lai .

Làm thế nào để, trong trường hợp bạn thực sự muốn

Nếu bạn thực sự muốn gpg2được gọi nếu bạn đã gọi gpg, tôi khuyên bạn nên thêm một bí danh theo trong vỏ của bạn, ví dụ như với alias gpg=gpg2các vỏ tương thích bourne-shell. Không nên làm hại nhiều, nhưng sẽ chỉ hoạt động nếu được gọi từ dòng lệnh.

Nếu bạn thực sự muốn /usr/bin/gpgtrở thành gnupg2, bạn có thể làm điều đó với dpkg-divert, ví dụ như đổi tên gpgthành gpg1và sau đó gpg2thành gpg. Các tệp được đổi tên với dpkg-divertsẽ giữ tên mới ngay cả sau khi cập nhật các gói theo.

Nhưng được cảnh báo: APT yêu cầu và sử dụng gpgvà có thể không mong đợi nó thực sự được gpg2. Vì vậy, bạn có thể phá vỡ các phần của hệ thống của bạn nếu bạn sử dụng dpkg-diverttheo cách đó. (Bí danh Shell cho người dùng không root có liên quan đến điều đó.)


7

Sẽ sớm có câu trả lời mới cho câu hỏi đó: Sử dụng Debian 9 Stretch (sẽ được phát hành sau 2 năm hoặc lâu hơn ;-) hoặc mới hơn.

Bối cảnh: Tại DebConf15, các nhà bảo trì gói GnuPG của Debian đã thông báo rằng trong tương lai, GnuPG 2.x sẽ có /usr/bin/gpgtrong Debian và lệnh GnuPG 1.x sẽ được đổi tên thành /usr/bin/gpg1.

Bạn vẫn không thể chuyển sang /usr/bin/gpgphiên bản GnuPG khác theo sở thích của mình (xem câu trả lời khác của tôi vì lý do đằng sau điều này), nhưng ít nhất GnuPG 2.x sẽ là triển khai mặc định trong tương lai gần trong Kiểm tra Debian không ổn định và Debian và rất sớm trong Thử nghiệm Debian.


Lưu ý bên lề, 2017-06-14: các công cụ debian trong phiên bản ổn định mới nhất vẫn sử dụng gpg1 được mã hóa cứng trong nội bộ. Các dĩa Debian (ubfox, mint) dường như đã sửa nó.
peterh nói phục hồi Monica

Lưu ý bên lề, 2017-06-17: các công cụ debian trong phiên bản ổn định mới nhất sử dụng gpg2. (Vâng, tôi có thể nhìn thấy trong tương lai. ;-) Đùa thôi, nhưng @peterh đã viết nhận xét đó giống như ba ngày trước khi bản phát hành Debian Stable tiếp theo sẽ được phát hành sẽ thay đổi chính xác điều đó.
Axel Beckert

Khỏe cảm ơn! Tuy nhiên, việc đào sâu vào gpg2 đã dạy tôi khá tốt, tại sao bạn lại chậm chạp trong việc nâng cấp các phiên bản gpg. Tôi nghĩ rằng nguyên nhân thực sự của vấn đề là gpg. Tôi nghĩ, có lẽ một ngã ba dự án dường như cần thiết, làm thế nào về nó? Nếu ai đó chỉ đơn giản là mở một ngã ba gpg2 trên github và sửa tất cả các bản ghi của nó, làm thế nào để nhận được nó? Tôi đang suy nghĩ để làm điều đó, nhưng đơn giản là nó không đáng giá nếu nó vẫn là một kho lưu trữ bị lãng quên mãi mãi.
peterh nói phục hồi Monica
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.