Giả sử bạn đang chạy một máy chủ và bạn không muốn nâng cấp lên Kiểm tra (Bóp) từ Ổn định (Lenny) để chỉ cài đặt một hoặc hai gói yêu cầu.
Cách tốt nhất để chỉ cài đặt các gói nhất định từ Kiểm tra là gì?
Giả sử bạn đang chạy một máy chủ và bạn không muốn nâng cấp lên Kiểm tra (Bóp) từ Ổn định (Lenny) để chỉ cài đặt một hoặc hai gói yêu cầu.
Cách tốt nhất để chỉ cài đặt các gói nhất định từ Kiểm tra là gì?
Câu trả lời:
Nhiều người dường như sợ pha trộn ổn định với thử nghiệm, nhưng thật lòng mà nói, thử nghiệm khá ổn định theo cách riêng của mình, và với việc kiểm tra giải pháp và sở thích phù hợp, bạn có thể tránh được "độ ổn định" đặt các gói cốt lõi của mình vào con đường không ổn định.
"Kiểm tra là khá ổn định ??" , bạn hỏi. Đúng. Để một gói chuyển từ không ổn định sang thử nghiệm, nó phải không có lỗi mở trong 10 ngày liên tiếp. Rất có thể, đặc biệt là đối với các gói phổ biến hơn, ai đó sẽ gửi báo cáo lỗi cho phiên bản không ổn định nếu có gì đó không đúng.
Ngay cả khi bạn không muốn trộn lẫn các môi trường, vẫn rất tốt để có tùy chọn ở đó trong trường hợp bạn gặp phải thứ gì đó yêu cầu phiên bản mới hơn phiên bản ổn định.
Đây là những gì tôi khuyên bạn nên thiết lập này:
Đầu tiên, tạo các tệp sau trong /etc/apt/preferences.d
:
stable.pref
:
# 500 <= P < 990: causes a version to be installed unless there is a
# version available belonging to the target release or the installed
# version is more recent
Package: *
Pin: release a=stable
Pin-Priority: 900
testing.pref
:
# 100 <= P < 500: causes a version to be installed unless there is a
# version available belonging to some other distribution or the installed
# version is more recent
Package: *
Pin: release a=testing
Pin-Priority: 400
unstable.pref
:
# 0 < P < 100: causes a version to be installed only if there is no
# installed version of the package
Package: *
Pin: release a=unstable
Pin-Priority: 50
experimental.pref
:
# 0 < P < 100: causes a version to be installed only if there is no
# installed version of the package
Package: *
Pin: release a=experimental
Pin-Priority: 1
(Đừng sợ những thứ không ổn định / thử nghiệm ở đây. Các ưu tiên đủ thấp để nó không bao giờ tự động cài đặt bất kỳ thứ gì trong số đó. Ngay cả nhánh thử nghiệm cũng sẽ hoạt động, vì nó sẽ chỉ cài đặt các gói bạn muốn trong thử nghiệm.)
Bây giờ, tạo một bộ phù hợp cho /etc/apt/sources.list.d
:
stable.list
: Sao chép từ bản gốc của bạn /etc/apt/sources.list
. Đổi tên tập tin cũ thành một cái gì đó như sources.list.orig
.
testing.list
: Giống như stable.list
, ngoại trừ với testing
.
unstable.list
: Giống như stable.list
, ngoại trừ với unstable
và xóa danh sách bảo mật.
experimental.list
: Giống như unstable.list
, ngoại trừ với experimental
.
Bạn cũng có thể thêm oldstable
vào sources.lists.d
và preferences.d
(sử dụng một ưu tiên trong tổng số 1), mặc dù biệt danh này sẽ có xu hướng hết hạn và biến mất trước khi chu kỳ ổn định tiếp theo. Trong trường hợp như vậy, bạn có thể sử dụng http://archive.debian.org/debian/
và "mã hóa cứng" phiên bản Debian (etch, lenny, v.v.).
Để cài đặt phiên bản thử nghiệm của gói, chỉ cần sử dụng aptitude install lib-foobar-package/testing
hoặc chỉ cần nhảy vào GUI của aptitude và chọn phiên bản bên trong chi tiết gói (nhấn enter trên gói bạn đang xem).
Nếu bạn nhận được khiếu nại về xung đột gói, hãy xem các giải pháp trước. Trong hầu hết các trường hợp, cái đầu tiên sẽ là "không cài đặt phiên bản này". Tìm hiểu để sử dụng các lựa chọn chấp nhận / từ chối mỗi gói. Ví dụ: nếu bạn đang cài đặt gói / thử nghiệm foobar và giải pháp đầu tiên là "không cài đặt gói foobar / thử nghiệm", thì hãy đánh dấu lựa chọn đó là bị từ chối và các giải pháp khác sẽ không bao giờ quay lại đường dẫn đó nữa. Trong những trường hợp như thế này, có lẽ bạn sẽ phải cài đặt một vài gói thử nghiệm khác.
Nếu nó quá nhiều lông (như nó đang cố nâng cấp libc hoặc kernel hoặc một số hệ thống lõi lớn khác), thì bạn có thể từ chối các đường dẫn nâng cấp đó hoặc hoàn toàn rút lui khỏi bản nâng cấp ban đầu. Hãy nhớ rằng nó sẽ chỉ nâng cấp công cụ lên thử nghiệm / không ổn định nếu bạn cho phép.
EDIT: Đã sửa một số chân ưu tiên và cập nhật danh sách.
apt-get update
sau khi bạn tạo các tập tin cấu hình?
sudo apt-get update
, tôi đã nhận được một lỗi cập nhật. Sau đó khởi động lại, điều đó đã cho tôi Xsession error
, khởi động lại một lần nữa và bây giờ tôi không có gui. các /dev/sda1/
hiện đã đầy. Tuyệt quá.
Trong /etc/apt/apt.conf.d
thêm các tập tin sau đây
99defaultrelease
:
APT::Default-Release "stable";
trong /etc/apt/sources.list.d
- thêm url để kiểm tra / nguồn không ổn định
stable.list
:
deb http://ftp.de.debian.org/debian/ stable main contrib non-free
deb-src http://ftp.de.debian.org/debian/ stable main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
testing.list
:
deb http://ftp.de.debian.org/debian/ testing main contrib non-free
deb-src http://ftp.de.debian.org/debian/ testing main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free
chạy
apt-get update
và sau đó cài đặt những gì bạn cần với
apt-get -t testing install something
Hãy rất cẩn thận nếu bạn cài đặt những thứ có nhiều phụ thuộc. Tốt nhất không làm điều này trên sản xuất.
Bạn cũng có thể thử vận may của mình tại backport hoặc kho tương tự.
apt_preferences
Xác định mức mặc định mà hệ thống sẽ 'nâng cấp an toàn' lên trong tệp / etc / apt / Preferences:
man apt_preferences
Có rất nhiều thứ bạn có thể làm với apt_preferences nhưng vì mục đích đơn giản ...
Tôi cần cài đặt một gói duy nhất (autoMysqlBackup) chỉ có sẵn trong Kiểm tra. Giải pháp là thêm các mục sau vào / etc / apt / Preferences:
Explanation: Uninstall or do not install any Debian-originated
Explanation: package versions other than those in the stable distro
Package: *
Pin: release a=stable
Pin-Priority: 900
Package: *
Pin: release o=Debian
Pin-Priority: -10
Với nhiều kho lưu trữ được thêm vào /etc/apt/source.list, giờ đây sẽ chỉ nâng cấp lên bản phát hành được chỉ định của bạn mặc dù các bản phát hành sau được liệt kê (trong trường hợp này là 'ổn định').
deb http://mirror.aarnet.edu.au/debian/ lenny main
deb-src http://mirror.aarnet.edu.au/debian/ lenny main
deb http://mirror.aarnet.edu.au/debian/ squeeze main
deb-src http://mirror.aarnet.edu.au/debian/ squeeze main
Vì vậy, để cài đặt gói đó, tất cả những gì bạn phải làm là:
$ aptitude install -t testing packageName
Đối với những gì nó có giá trị, lời khuyên chung mà tôi luôn thấy là "Đừng trộn ổn định với bất cứ điều gì." Hầu hết các hướng dẫn hệ thống hỗn hợp là để thử nghiệm trộn và không ổn định.
Lý do dường như là nếu bạn kết hợp ổn định với thử nghiệm, các gói rất cơ bản (như libc6) sẽ yêu cầu cập nhật (để cài đặt phần mềm từ thử nghiệm) và khi các gói cơ bản này chuyển sang thử nghiệm, toàn bộ hệ thống có thể chuyển theo cách đó.
Đây là hai lựa chọn thay thế:
Các tài liệu về debian có rất nhiều về chủ đề này và tôi thực sự khuyên bạn nên khai thác vì nó thực sự sẽ tiết lộ vẻ đẹp của hệ thống debian.
Hãy xem Làm thế nào để giữ một hệ thống hỗn hợp , nó sẽ giải thích tất cả những gì bạn cần tio biết.
Một cách khác, có thể ngăn cài đặt quá nhiều phụ thuộc từ Kiểm tra hoặc Sid, đó là: bạn nói với apt-get để lấy nguồn của gói từ Kiểm tra hoặc Sid và tạo gói cho hệ thống của bạn bằng các công cụ Debian (không cần phải tự sửa với các nguồn).
Trích dẫn từ đây:
https://wiki.debian.org/DebianUnurdy#How_do_I_backport_a_sid_package_to_testing_or_ sóng.3F
Làm cách nào để backport một gói sid để kiểm tra hoặc ổn định?
Cài đặt nguồn Debian (và các công cụ phát triển, đặc biệt là debrcper, devscripts và build-Essential), sau đó xây dựng gói.
Từng bước một:
add a deb-src line for sid to your sources.list apt-get update apt-get build-dep PACKAGE_NAME apt-get -b source PACKAGE_NAME
Các cuộc tranh luận kết quả phải nằm trong thư mục hiện tại và có thể được cài đặt với dpkg -i the.deb.
Tôi đã làm điều đó trong một thời gian dài để tự tin nói rằng nó đủ an toàn và có thể được thực hiện thuận tiện. Với thiết lập bên dưới, phiên bản ổn định sẽ được cài đặt theo mặc định, tuy nhiên Aptitude cũng sẽ cho phép bạn chọn phiên bản backported hoặc không ổn định nếu muốn:
Có bốn điều cần được chỉnh sửa, cần phải thiết lập bản phát hành ghim mặc định, các nguồn cần backport và không ổn định, giảm mức độ ưu tiên ghim của backport / gói không ổn định và cài đặt hiển thị năng khiếu cần được sửa đổi để hiển thị ghim.
Apt :: default-Release "ổn định";
# deb cdrom: [Debian GNU / Linux 6.0.0 _Squeeze_ - Kiến trúc đa kiến thức amd64 / i386 NETINST # 1 20110205-14: 45] / bóp chính deb http://ftp.us.debian.org/debian/ bóp chính deb-src http://ftp.us.debian.org/debian/ bóp chính deb http://security.debian.org/ bóp / cập nhật chính deb-src http://security.debian.org/ bóp / cập nhật chính # bóp-cập nhật, trước đây được gọi là 'dễ bay hơi' deb http://ftp.us.debian.org/debian/ vắt cập nhật chính deb-src http://ftp.us.debian.org/debian/ bóp-cập nhật chính # bóp lưng # http://backports.debian.org/In thi / deb http://backports.debian.org/debian-backports bóp lưng chính # không ổn định # http://wiki.debian.org/AptPreferences deb http://ftp.us.debian.org/debian/ không ổn định chính deb-src http://ftp.us.debian.org/debian/ chính không ổn định # không miễn phí cũ. mặt trời java #deb http://ftp.us.debian.org/debian/ bóp không miễn phí # deb-src http://ftp.us.debian.org/debian/ bóp không miễn phí
etc/apt/preferences
tệp ghim - nếu tệp không tồn tại, hãy tạo tệp.# Ưu tiên ghim gói # Xem http://wiki.debian.org/AptPreferences và http://manpages.debian.net/cgi-bin/man.cgi?query=apt_preferences # # Trong vỏ ốc, mã PIN cao nhất được cài đặt # # Mặc định Pining là như sau ngoài cài đặt của chúng tôi: # 990 - cho phiên bản chưa được cài đặt nhưng DO thuộc về cài đặt `APT :: Default-Relase" ổn định ". # 500 - cho các phiên bản chưa được cài đặt và không thuộc về bản phát hành mục tiêu # 100 - đối với các gói đã được cài đặt, điều này cũng có nghĩa là các phiên bản khác của cùng gói # 1 - cho các gói thử nghiệm; các gói có "NotAutomatic: yes" # # Ghim của chúng tôi # 400 - backport có thể được cài đặt một cách an toàn mà không cần cập nhật các gói khác # 50 - gói không ổn định, cài đặt bắt buộc trong màn hình chi tiết, có thể dẫn đến xung đột Gói: * Pin: phát hành n = bóp-backport Pin-Ưu tiên: 400 Gói: * Pin: phát hành a = không ổn định
Aptitude :: UI :: Gói-Hiển thị-Định dạng "% c% a% M% p% Z% v% V% i";
source.list
đó nên nói tên mã jessie
thay vì squeeze
. Chính sách của Debian testing
gần ổn định và các gói gần như mới từ unstable
kho lưu trữ. Tôi sắp hết dung lượng ở đây, vì vậy hãy xem: wiki.debian.org/DebianRelease , wiki.debian.org/StableUpdates và wiki.debian.org/StableProposesUpdates ; hai cuối cùng là các nguồn lưu trữ bổ sung.
Nếu lựa chọn gói của bạn có liên quan nhiều hơn hoặc cài đặt sẽ được lặp lại trên nhiều máy, bạn có thể xem xét việc thiết lập một kho lưu trữ riêng phản ánh tập hợp con của kho lưu trữ chính thức. Điều này đòi hỏi một chút công việc để cấu hình kho lưu trữ nhưng phần thưởng rất dễ duy trì với cấu hình tối thiểu trên mỗi máy khách và kết quả lặp lại khi thực hiện hàng tá cài đặt. Tôi thấy điều này hữu ích ngay cả khi chỉ có một hoặc hai gói được cài đặt và sử dụng phương pháp này để tự động hóa và duy trì cài đặt đám mây. Một máy chủ duy nhất trên VPS giá rẻ có thể xử lý hàng tá kho lưu trữ riêng.
Để cấu hình máy chủ kho lưu trữ riêng của bạn:
# Install aptly.
apt-get install aptly
# Create local mirror (choose a source mirror near you).
aptly mirror create -filter="mirror-contains-no-packages" stretch-roundcube http://httpredir.debian.org/debian stretch main
# Configure filters for local mirror.
aptly mirror edit -filter="Name (% roundcube*)" stretch-roundcube
# Update local mirror.
aptly mirror update stretch-roundcube
# Drop previously published repositories and mirrors, if running these commands in a script.
aptly publish drop stretch
# Drop snapshot, if running these commands in a script.
aptly snapshot drop stretch-roundcube
# Create new snapshot.
aptly snapshot create stretch-roundcube from mirror stretch-roundcube
# Publish snapshot.
aptly publish snapshot -architectures=i386,amd64 -distribution=stretch -component=roundcube -label="Your Name" -origin="Your Name" stretch-roundcube
Sau đó cấu hình máy chủ web của bạn lựa chọn để phục vụ các tệp lưu trữ tĩnh. Có thể bảo vệ kho lưu trữ với chứng chỉ bảo mật và xác thực cơ bản.
Để tự động duy trì kho lưu trữ riêng tư của bạn và lấy các bản cập nhật từ thượng nguồn, hãy đặt phần trên vào tập lệnh và chạy từ công việc định kỳ.
Để định cấu hình máy khách của bạn, trên máy khách của bạn:
# Configure private repository without authentication.
echo 'deb http://private.repository.example.com/ stretch roundcube' > /etc/apt/sources.list.d/private.repository.example.com.list
# Configure private repository with authentication.
echo 'deb https://hostname:password@private.repository.example.com/ stretch roundcube' > /etc/apt/sources.list.d/private.repository.example.com.list
apt-get install apt-transport-https
# Update.
apt-get update
# Install package.
apt-get install roundcube
Để duy trì máy khách của bạn và cập nhật tất cả các cập nhật kho lưu trữ riêng tư của bạn, trên máy khách của bạn:
# Update.
apt-get update
# Upgrade.
apt-get upgrade
Một tùy chọn khác là tải xuống thay vì gói nguồn từ thử nghiệm. APT có thể tự động xây dựng gói nguồn sau khi tải xuống. Bằng cách này, các gói ổn định của bạn sẽ không bị ảnh hưởng bởi các bản cập nhật thử nghiệm. Sự đánh đổi duy nhất là nó sẽ mất nhiều thời gian hơn là chỉ tải xuống và cài đặt gói nhị phân.
Để định cấu hình APT để tải xuống các gói nguồn từ thử nghiệm, chỉ cần thêm:
deb-src http://<your debian mirror here> testing main
Nếu bạn chỉ muốn theo dõi thử nghiệm hiện tại và không phải thử nghiệm trong tương lai, hãy thay thế "thử nghiệm" bằng tên mã hiện tại (vì khi viết bài này, nó là "buster")