Katakanlah Anda menjalankan server dan Anda tidak ingin memutakhirkan ke Testing (Squeeze) dari Stable (Lenny) untuk hanya menginstal satu atau dua paket yang diperlukan.
Apa cara terbaik untuk menginstal hanya paket tertentu dari Pengujian?
Katakanlah Anda menjalankan server dan Anda tidak ingin memutakhirkan ke Testing (Squeeze) dari Stable (Lenny) untuk hanya menginstal satu atau dua paket yang diperlukan.
Apa cara terbaik untuk menginstal hanya paket tertentu dari Pengujian?
Jawaban:
Banyak orang tampaknya takut mencampur stabil dengan pengujian, tetapi terus terang, pengujian cukup stabil dalam dirinya sendiri, dan dengan preferensi yang tepat dan pemeriksaan solusi, Anda dapat menghindari "stabilitas drift" yang menempatkan paket inti Anda di jalur yang tidak stabil.
"Pengujian cukup stabil ??" , Anda bertanya. Iya. Agar paket dapat bermigrasi dari tidak stabil ke pengujian, paket tidak boleh memiliki bug terbuka selama 10 hari berturut-turut. Kemungkinannya adalah, terutama untuk paket yang lebih populer, seseorang akan mengirimkan laporan bug untuk versi yang tidak stabil jika ada sesuatu yang salah.
Bahkan jika Anda tidak ingin mencampurkan lingkungan, masih bagus untuk memiliki opsi di sana jika Anda mengalami sesuatu yang memerlukan versi yang lebih baru daripada yang ada di stabil.
Inilah yang saya rekomendasikan untuk pengaturan ini:
Pertama, buat file berikut di /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
(Jangan takut dengan hal-hal yang tidak stabil / eksperimental di sini. Prioritasnya cukup rendah sehingga tidak akan pernah secara otomatis menginstal hal-hal itu. Bahkan cabang pengujian akan berperilaku, karena hanya akan menginstal paket yang Anda inginkan. dalam pengujian.)
Sekarang, membuat set yang cocok untuk /etc/apt/sources.list.d
:
stable.list
: Salin dari sumber asli Anda /etc/apt/sources.list
. Ubah nama file lama menjadi sesuatu seperti sources.list.orig
.
testing.list
: Sama seperti stable.list
, kecuali dengan testing
.
unstable.list
: Sama seperti stable.list
, kecuali dengan unstable
, dan menghapus daftar keamanan.
experimental.list
: Sama seperti unstable.list
, kecuali dengan experimental
.
Anda juga dapat menambahkan tanda oldstable
masuk sources.lists.d
dan preferences.d
(gunakan prioritas 1), meskipun moniker ini akan cenderung kedaluwarsa dan menghilang sebelum siklus stabil berikutnya. Dalam kasus seperti itu, Anda dapat menggunakan http://archive.debian.org/debian/
dan "hardcode" versi Debian (etch, lenny, dll.).
Untuk menginstal versi pengujian suatu paket, cukup gunakan aptitude install lib-foobar-package/testing
, atau langsung saja ke GUI aptitude dan pilih versi di dalam detail paket (tekan enter pada paket yang Anda cari).
Jika Anda mendapat keluhan tentang konflik paket, lihat solusinya terlebih dahulu. Dalam kebanyakan kasus, yang pertama adalah "jangan pasang versi ini". Belajarlah untuk menggunakan per-paket menerima / menolak pilihan resolver. Misalnya, jika Anda menginstal foobar-package / testing, dan solusi pertama adalah "jangan instal foobar-package / testing", maka tandai pilihan itu sebagai ditolak, dan solusi lain tidak akan pernah membelok ke jalur itu lagi. Dalam kasus seperti ini, Anda mungkin harus menginstal beberapa paket pengujian lainnya.
Jika terlalu berbulu (seperti mencoba untuk meng-upgrade libc atau kernel atau sistem inti besar lainnya), maka Anda dapat menolak jalur upgrade tersebut atau hanya mundur dari upgrade awal sama sekali. Ingatlah bahwa itu hanya akan memutakhirkan hal-hal menjadi pengujian / tidak stabil jika Anda mengizinkannya.
EDIT: Memperbaiki beberapa pin prioritas, dan memperbarui daftar.
apt-get update
setelah Anda membuat file konfigurasi?
sudo apt-get update
, saya mendapat kesalahan pembaruan. Kemudian restart, yang memberi saya Xsession error
, restart lagi, dan sekarang saya tidak punya gui. yang /dev/sda1/
sekarang penuh. Bagus.
Di /etc/apt/apt.conf.d
tambahkan file berikut
99defaultrelease
:
APT::Default-Release "stable";
di /etc/apt/sources.list.d
- tambahkan url untuk menguji / sumber tidak stabil
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
Lari
apt-get update
dan kemudian instal apa yang Anda butuhkan
apt-get -t testing install something
Berhati-hatilah jika Anda menginstal barang yang memiliki banyak dependensi. Lebih disukai tidak melakukan ini pada produksi.
Anda juga dapat mencoba keberuntungan Anda di backports atau repositori serupa.
apt_preferences
Tentukan level default yang harus di-upgrade oleh sistem ke dalam file / etc / apt / preferensi:
man apt_preferences
Ada banyak yang bisa Anda lakukan dengan apt_preferences tapi demi kesederhanaan ...
Saya perlu menginstal satu paket (autoMysqlBackup) yang hanya tersedia di Pengujian. Solusinya adalah menambahkan yang berikut ke / 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
Dengan beberapa repositori yang ditambahkan ke /etc/apt/sources.list aptitude sekarang hanya akan meningkatkan ke rilis yang Anda tentukan meskipun repos rilis berikutnya terdaftar (dalam hal ini 'stabil').
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
Jadi untuk menginstal paket itu, yang harus Anda lakukan adalah:
$ aptitude install -t testing packageName
Untuk apa nilainya, saran umum yang selalu saya lihat adalah "Jangan bergaul stabil dengan apa pun." Sebagian besar tutorial sistem campuran adalah untuk pengujian campuran dan tidak stabil.
Alasannya tampaknya bahwa jika Anda mencampur stabil dengan pengujian, paket yang sangat mendasar (seperti libc6) akan memerlukan pembaruan (untuk menginstal perangkat lunak dari pengujian), dan sekali paket dasar ini beralih ke pengujian, seluruh sistem dapat bergerak seperti itu.
Berikut adalah dua alternatif:
Dokumentasi debian sangat luas dalam subjek dan saya sangat menyarankan untuk menggali karena itu benar-benar akan mengungkap keindahan sistem debian.
Lihat Bagaimana menjaga sistem campuran , itu akan menjelaskan semua yang perlu Anda ketahui.
Cara lain, yang dapat mencegah instalasi terlalu banyak ketergantungan dari Testing atau Sid, adalah ini: Anda memberi tahu apt-get untuk mendapatkan sumber paket dari Testing atau Sid dan membuat paket untuk sistem Anda menggunakan alat Debian (tidak perlu mengotak-atik secara manual) dengan sumber).
Mengutip dari sini:
https://wiki.debian.org/DebianUnstable#How_do_I_backport_a_sid_package_to_testing_or_stable.3F
Bagaimana cara backport paket sid untuk pengujian atau stabil?
Instal sumber Debian (dan alat pengembangan, terutama debhelper, devscripts, dan build-essential), lalu buat paket.
Selangkah demi selangkah:
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
Hutang yang dihasilkan harus di direktori saat ini dan dapat diinstal dengan dpkg -i the.deb.
Saya telah melakukannya untuk waktu yang lama untuk percaya diri dalam mengatakan itu cukup aman dan dapat dibuat nyaman. Dengan setup versi stabil di bawah ini akan diinstal secara default, namun Aptitude juga akan memungkinkan Anda untuk memilih versi backported atau tidak stabil jika diinginkan:
Ada empat hal yang perlu diedit, rilis pinning default perlu diatur, sumber perlu backports dan tidak stabil ditambahkan, menurunkan prioritas pinning backports / paket tidak stabil, dan pengaturan tampilan aptitude perlu dimodifikasi untuk menampilkan pinning.
Apt :: default-Release "stable";
# deb cdrom: [Debian GNU / Linux 6.0.0 _Squeeze_ - Resmi Multi-arsitektur amd64 / i386 NETINST # 1 20110205-14: 45] / memeras main deb http://ftp.us.debian.org/debian/ pemerasan utama deb-src http://ftp.us.debian.org/debian/ pemerasan utama deb http://security.debian.org/ pemerasan / pembaruan utama deb-src http://security.debian.org/ pemerasan / pembaruan utama # squeeze-update, yang sebelumnya dikenal sebagai 'volatile' deb http://ftp.us.debian.org/debian/ pemerasan-pembaruan utama deb-src http://ftp.us.debian.org/debian/ pemerasan-pembaruan utama # peras backport # http://backports.debian.org/Instructions/ deb http://backports.debian.org/debian-backports squeeze-backports utama # tidak stabil # http://wiki.debian.org/AptPreferences deb http://ftp.us.debian.org/debian/ tidak stabil utama deb-src http://ftp.us.debian.org/debian/ tidak stabil utama # bukan bebas ex. matahari jawa #deb http://ftp.us.debian.org/debian/ memeras tidak bebas # deb-src http://ftp.us.debian.org/debian/ memeras tidak bebas
etc/apt/preferences
pinning file - jika file tidak ada, buatlah.# Paket menyematkan prioritas # Lihat http://wiki.debian.org/AptPreferences dan http://manpages.debian.net/cgi-bin/man.cgi?query=apt_preferences # # Dalam kacang shell PIN tertinggi diinstal # # Pining default adalah sebagai berikut yang merupakan tambahan dari pengaturan kami: # 990 - untuk versi yang tidak diinstal tetapi DO milik pengaturan `APT :: Default-Relase" stable "kami. # 500 - untuk versi yang tidak diinstal dan bukan milik rilis target # 100 - untuk paket yang sudah diinstal, ini juga berarti versi lain dari paket yang sama # 1 - untuk paket eksperimental; paket dengan "NotAutomatic: yes" # # Pinnings Kami # 400 - backports yang dapat diinstal dengan aman tanpa perlu memperbarui paket lain # 50 - paket tidak stabil, instal paksa di layar detail, dapat mengakibatkan konflik Paket: * Pin: lepaskan n = squeeze-backports Pin-Prioritas: 400 Paket: * Pin: lepaskan a = tidak stabil
Aptitude :: UI :: Package-Display-Format "% c% a% M% p% Z% v% V% i";
source.list
dalamnya harus menyebutkan nama kode jessie
alih-alih squeeze
. Kebijakan Debian testing
hampir stabil dan paket hampir sama baru dari unstable
repositori. Saya kehabisan ruang di sini jadi silakan lihat di: wiki.debian.org/DebianReleases , wiki.debian.org/StableUpdates , dan wiki.debian.org/StableProposedUpdates ; dua yang terakhir adalah sumber repositori tambahan.
Jika pilihan paket Anda lebih terlibat atau instalasi akan diulang pada beberapa mesin, Anda dapat mempertimbangkan untuk menyiapkan repositori pribadi yang mencerminkan subset dari repositori resmi. Ini membutuhkan sedikit usaha untuk mengkonfigurasi repositori tetapi hadiahnya mudah dipertahankan dengan konfigurasi minimal pada setiap klien dan hasil yang dapat diulang ketika melakukan lusinan instalasi. Saya menemukan ini membantu bahkan ketika hanya satu atau dua paket sedang diinstal, dan menggunakan metode ini untuk mengotomatisasi dan memelihara pemasangan cloud. Sebuah server tunggal pada VPS murah dapat menangani puluhan repositori pribadi.
Untuk mengkonfigurasi server repositori pribadi Anda:
# 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
Kemudian konfigurasikan server web pilihan Anda untuk menyajikan file repositori statis. Mungkin melindungi repositori dengan sertifikat keamanan dan otentikasi dasar.
Untuk menjaga repositori pribadi Anda secara otomatis dan menarik pembaruan dari hulu, letakkan yang di atas dalam sebuah skrip dan jalankan dari tugas cron.
Untuk mengkonfigurasi mesin klien Anda, pada mesin klien Anda:
# 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
Untuk memelihara mesin klien Anda dan menarik semua pembaruan repositori pribadi Anda, di mesin klien Anda:
# Update.
apt-get update
# Upgrade.
apt-get upgrade
Pilihan lain adalah mengunduh paket sumber dari pengujian. APT dapat secara otomatis membuat paket sumber setelah mengunduhnya. Dengan cara ini, paket stabil Anda tidak akan terpengaruh oleh pengujian pembaruan. Satu-satunya trade-off adalah bahwa itu akan memakan waktu lebih dari sekedar mengunduh dan menginstal paket biner.
Untuk mengonfigurasi APT untuk mengunduh paket sumber dari pengujian, cukup tambahkan:
deb-src http://<your debian mirror here> testing main
Jika Anda hanya ingin mengikuti pengujian saat ini dan bukan pengujian di masa mendatang, ganti "pengujian" dengan nama kode saat ini (saat penulisan ini adalah "buster")