Pertanyaan Bagaimana saya bisa menjalankan Debian stabil tetapi menginstal beberapa paket dari pengujian?


Katakanlah Anda menjalankan server dan Anda tidak ingin meng-upgrade ke Testing (Squeeze) dari Stable (Lenny) untuk menginstal satu atau dua paket yang diperlukan.

Apa cara terbaik untuk menginstal hanya paket tertentu dari Testing?


180
2018-06-09 07:53




Ini adalah dokumentasi resmi terakhir yang harus dikatakan: Paket dari berbagai sumber arsip. - Alexey


Jawaban:


Banyak orang tampaknya takut mencampur stabil dengan pengujian, tetapi terus terang, pengujian cukup stabil dalam dirinya sendiri, dan dengan preferensi dan pemeriksaan yang tepat, Anda dapat menghindari "pergeseran stabilitas" yang menempatkan paket inti Anda pada jalur yang tidak stabil.

"Pengujiannya cukup stabil ??", Anda bertanya. Iya nih. Agar paket untuk bermigrasi dari tidak stabil ke pengujian, itu harus memiliki bug nol terbuka selama 10 hari berturut-turut. Kemungkinannya adalah bahwa, terutama untuk paket yang lebih populer, seseorang akan mengirimkan laporan bug untuk versi yang tidak stabil jika ada yang salah.

Bahkan jika Anda tidak ingin mencampur lingkungan, masih bagus untuk memiliki opsi di sana jika Anda mengalami sesuatu yang memerlukan versi yang lebih baru daripada yang stabil.

Inilah yang saya sarankan untuk menyiapkan ini:

Pertama, buat file berikut di /etc/apt/preferences.d:

security.pref:

Package: *
Pin: release l=Debian-Security
Pin-Priority: 1000

stable.pref:

Package: *
Pin: release a=stable
Pin-Priority: 900

testing.pref:

Package: *
Pin: release a=testing
Pin-Priority: 750

unstable.pref:

Package: *
Pin: release a=unstable
Pin-Priority: 50

experimental.pref:

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 uji akan berperilaku, karena hanya akan menginstal paket yang Anda inginkan dalam pengujian.)

Sekarang, buat satu set yang cocok untuk /etc/apt/sources.list.d:

security.list:

deb     http://security.debian.org/         stable/updates  main contrib non-free
deb     http://security.debian.org/         testing/updates main contrib non-free

stable.list:

deb     http://mirror.steadfast.net/debian/ stable main contrib non-free
deb-src http://mirror.steadfast.net/debian/ stable main contrib non-free
deb     http://ftp.us.debian.org/debian/    stable main contrib non-free
deb-src http://ftp.us.debian.org/debian/    stable main contrib non-free

testing.list: Sama dengan stable.list, kecuali dengan testing.

unstable.list: Sama dengan stable.list, kecuali dengan unstable.

experimental.list: Sama dengan stable.list, kecuali dengan experimental.

Anda dapat mengganti cermin steadfast.net dengan apa pun yang Anda inginkan. Saya akan merekomendasikan menggunakan netselect-apt untuk mencari cermin tercepat, dan menggunakannya untuk pilihan pertama Anda. Itu ftp.us.debian.org dapat digunakan sebagai cadangan. Ini juga penting untuk menggunakan ketentuan stable, testing, unstable, dll., bukannya squeeze, wheezy, sid, dll., sejak stable adalah target yang bergerak dan ketika tiba saatnya untuk meng-upgrade ke stabil terbaru, apt / aptitude akan mengetahuinya secara otomatis.

Anda juga dapat menambahkan oldstable di 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 bisa menggunakannya http://archive.debian.org/debian/ dan "hardcode" versi Debian (etch, lenny, dll.).

Untuk menginstal versi pengujian paket, cukup gunakan aptitude install lib-foobar-package/testing, atau hanya melompat ke GUI dari aptitude dan pilih versi di dalam rincian paket (tekan enter pada paket yang Anda cari).

Jika Anda mendapatkan keluhan konflik paket, lihat solusinya terlebih dahulu. Dalam banyak kasus, yang pertama adalah "jangan menginstal versi ini". Pelajari cara menggunakan opsi percepter accept / reject resolver. Misalnya, jika Anda menginstal foobar-package / testing, dan solusi pertama adalah "jangan instal foobar-paket / pengujian", kemudian tandai pilihan tersebut sebagai ditolak, dan solusi lain tidak akan pernah menyimpang ke jalur itu lagi. Dalam kasus seperti ini, Anda mungkin harus memasang beberapa paket pengujian lainnya.

Jika sudah terlalu berbulu (seperti mencoba meningkatkan libc atau kernel atau beberapa sistem inti besar lainnya), maka Anda dapat menolak jalur peningkatan tersebut atau hanya mundur dari upgrade awal sama sekali. Ingat bahwa itu hanya akan meng-upgrade barang ke pengujian / tidak stabil jika Anda mengizinkannya.


166
2018-04-23 02:38



Terima kasih, gunakan metode ini dan semuanya bekerja seperti yang saya harapkan! - Brad F Jacobs
Saya mencoba menggunakan ini, tetapi saya tidak dapat menyelesaikan semua dependensi sama sekali. Sepertinya tidak apt-get, tidak akan mencari kecocokan dalam repositori pengujian. Apakah ada cara untuk menyelesaikannya? - Tamás Szelei
Apakah Anda lari apt-get update setelah Anda membuat file konfigurasi? - Flow
PENTING: penulis memilih nilai preferensi penyematan untuk stabil / keamanan yang ada lebih tinggi dari nilai Rilis Default ... lihat serverfault.com/a/653552/120130 untuk info lebih lanjut - Alex Ryan
Jawaban ini baru saja merusak sistem saya. Setelah upaya dilakukan sudo apt-get update, Saya mendapat kesalahan pembaruan. Kemudian restart, yang memberi saya Xsession error, restart lagi, dan sekarang saya tidak punya gui. itu /dev/sda1/ sekarang penuh. Besar. - luchonacho


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

menjalankan

apt-get update

lalu instal apa yang Anda butuhkan

apt-get -t testing install something

Berhati-hatilah jika Anda menginstal barang yang memiliki banyak ketergantungan. Sebaiknya jangan lakukan ini pada produksi.

Anda juga dapat mencoba keberuntungan Anda di backports atau repositori serupa.


90
2018-06-09 07:57



Wow. Itu tadi cepat. Saya memposting untuk membagikan informasi yang baru saja saya temui! Bagus sekali! - Gareth
Saya tidak pernah benar-benar menggunakan metode apt.conf sebelumnya. Tampaknya lebih sederhana bahwa metode file preferensi, tetapi memberi Anda kontrol yang kurang tepat. - Coops - Coops
Jawaban perlu ditingkatkan; konfigurasi ini akan memecahkan semua hal dengan sempurna sekarang karena tekanan telah menjadi stabil dan lenny telah menjadi kuno. - El Yobo
Tidak bisa digunakan lagi, harap perbarui - Lothar
dalam rilis debian yang lebih baru tidak ada file apt.conf, sebagai gantinya edit /etc/apt/apt.conf.d/70debconf - Hayden Thring


apt_preferences

Tentukan tingkat default bahwa sistem harus 'aman-upgrade' ke dalam file / etc / apt / preferences:
pria apt_preferences

Ada banyak yang bisa Anda lakukan dengan apt_preferences tetapi demi kesederhanaan ...

Saya perlu menginstal satu paket (autoMysqlBackup) yang hanya tersedia di Pengujian. Solusinya adalah menambahkan hal 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 ditambahkan ke /etc/apt/sources.list aptitude sekarang hanya akan meng-upgrade ke rilis yang Anda tetapkan meskipun repositori rilis kemudian 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 

46
2018-06-09 08:04



Ini adalah metode yang bagus juga, tidak secepat semudah apt.conf, tetapi memungkinkan Anda mengontrol semua sumber yang berbeda secara relatif. - Coops
Ini terlalu rumit untuk tugas ... Menggunakan APT :: Default-Release tidak mengatur prioritas pin rilis ke 990 (mirip dengan bagaimana Anda mengaturnya menjadi 900) dan pin negatif untuk sisanya tidak benar-benar diperlukan .. Selama dist-upgrade paket stabil memiliki prioritas dan segera setelah Anda mendaftarkan sesuatu secara eksplisit pada baris perintah, prioritas pinning negatifnya akan diabaikan. - Raphaël Hertzog
Saya tidak yakin bagaimana membalas Anda @Raphael. Tampaknya cara yang sangat elegan dalam melakukan sesuatu. Saya sudah pernah menggunakan pin sebelum bertahun-tahun yang lalu, tetapi saya tidak pernah benar-benar 'mendapatkannya'. Contoh yang saya gunakan di atas langsung dari halaman manual apt_preferences. - Gareth
Konfirmasikan ini berfungsi dengan baik saat ditekan - tomfanning
@Lothar: Ini bekerja pada Debian 6. Hanya karena file tidak ada tidak berarti tidak berfungsi. Cukup buat file dan tambahkan pengaturan. Kutipan dari halaman manual: "Jika tidak ada file preferensi atau jika tidak ada entri dalam file yang berlaku untuk versi tertentu maka prioritas yang ditetapkan untuk versi itu adalah prioritas distribusi yang dimiliki oleh versi tersebut." - rzetterberg


Dokumentasi debian sangat luas dalam subjek dan saya sangat menyarankan untuk menggali karena itu akan benar-benar mengungkap keindahan sistem debian.

Silahkan lihat Bagaimana menjaga sistem campuran, itu akan menjelaskan semua yang Anda butuhkan untuk diketahui.


12
2018-06-09 08:24



Ini tampaknya merupakan metode yang sama yang digunakan dalam jawaban oleh @ pQd, jadi ini tidak berlaku untuk debian> = 6.0. Juga judul tautan mengatakan "dokumentasi usang" sekarang. Juga kebanyakan hanya tautan jawaban. - dequis
Meskipun @dequis benar dalam hal bahwa tautan tampaknya sudah ketinggalan zaman, saya hanya mengikuti instruksi pada Debian 8 (pengujian) untuk menginstal paket dari tidak stabil, dan semuanya tampak berfungsi dengan baik. Ada yang punya tautan dokumentasi terbaru? - domsson
Ini mungkin yang Anda cari:debian.org/doc/manuals/debian-reference/… - tomdeb


Untuk apa nilainya, saran umum yang selalu saya lihat adalah, "Jangan campur aduk dengan apa pun." Sebagian besar tutorial sistem campuran untuk mencampur pengujian dan tidak stabil.

Alasannya adalah bahwa jika Anda mencampur stabil dengan pengujian, paket yang sangat dasar (seperti libc6) akan memerlukan pembaruan (untuk menginstal perangkat lunak dari pengujian), dan setelah paket dasar ini berpindah ke pengujian, seluruh sistem dapat melayang seperti itu.

Berikut dua alternatif:

  1. Menggunakan Backports.
  2. Instal baris sumber dari pengujian, dan coba buat versi yang lebih baru yang Anda inginkan dari sumber.

10
2018-06-09 13:09



Saya setuju. Saya baru saja mencoba memutakhirkan libdvdread4 dari pengujian karena bug dalam versi yang tidak stabil / stabil. Ia ingin membawa libc terbaru. Jadi saya hanya mengambil paket source untuk libdvdread4 dari stabil dan menambalnya dengan perubahan sumber 1 baris dan membangunnya kembali. Jauh lebih baik daripada menarik semua jenis paket dari pengujian. Sekarang semua paket masih "stabil" dan saya hanya memiliki perubahan 1 baris yang saya perlukan. - dgrant


Cara lain, yang dapat mencegah menginstal terlalu banyak ketergantungan dari Pengujian atau Sid, adalah ini: Anda memberitahu apt-get untuk mendapatkan sumber paket dari Testing atau Sid dan membuat paket untuk sistem Anda menggunakan alat Debian (tidak perlu secara manual mengotak-atik dengan sumber).

Mengutip dari sini:
https://wiki.debian.org/DebianUnstable#How_do_I_backport_a_sid_package_to_testing_or_stable.3F

Bagaimana saya mengaitkan paket sid ke pengujian atau stabil?

Instal sumber Debian (dan alat pengembangan, khususnya   debhelper, devscripts, dan build-essential), dan kemudian membangun   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 

Debs yang dihasilkan harus berada di direktori saat ini dan bisa   diinstal dengan dpkg -i the.deb.


7
2018-03-13 17:02





Saya telah melakukannya untuk jangka waktu yang lama untuk menjadi percaya diri dengan mengatakan itu cukup aman dan dapat dibuat nyaman. Dengan versi stabil setup di bawah ini akan diinstal secara default, namun Aptitude juga akan memungkinkan Anda untuk memilih versi backport atau tidak stabil jika diinginkan:

enter image description here

Ada empat hal yang perlu diedit, penyalinan penyematan default perlu diatur, sumber memerlukan backports dan penambahan tidak stabil, menurunkan prioritas pemasangan paket backports / tidak stabil, dan pengaturan tampilan aptitude perlu dimodifikasi untuk menampilkan pinning.

  • Membuat '/etc/apt/apt.conf.d/10defaultrelease' dan buat isinya sebagai berikut:
Apt :: default-Release "stable";
  • Edit Anda '/etc/apt/sources.list' untuk menambahkan sumber yang tidak stabil dan backports sehingga terlihat seperti ini:
# deb cdrom: [Debian GNU / Linux 6.0.0 _Squeeze_ - Multi-arsitektur Resmi amd64 / i386 NETINST # 1 20110205-14: 45] / remas utama

deb http://ftp.us.debian.org/debian/ peras utama
deb-src http://ftp.us.debian.org/debian/ peras utama

deb http://security.debian.org/ memeras / pembaruan utama
deb-src http://security.debian.org/ memeras / pembaruan utama

# memeras-update, sebelumnya dikenal sebagai 'volatile'
deb http://ftp.us.debian.org/debian/ peretasan-pemutakhiran utama
deb-src http://ftp.us.debian.org/debian/ memeras pembaruan utama

# Memeras backports
# http://backports.debian.org/Instructions/
deb http://backports.debian.org/debian-backports squeeze-backports main

# tidak stabil
# http://wiki.debian.org/AptPreferences
deb http://ftp.us.debian.org/debian/ utama tidak stabil
deb-src http://ftp.us.debian.org/debian/ utama tidak stabil

# non gratis ex. jawa matahari
#deb http://ftp.us.debian.org/debian/ memeras tidak bebas
# deb-src http://ftp.us.debian.org/debian/ memeras tidak bebas
  • Edit etc/apt/preferences menyematkan file - jika file tidak ada, buatlah.
# Paket pinning prioritas
# Lihat http://wiki.debian.org/AptPreferences dan http://manpages.debian.net/cgi-bin/man.cgi?query=apt_preferences
#
# Dalam pin kacang tertinggi PIN akan 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" stabil "`.
# 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 dipasang dengan aman tanpa perlu memperbarui paket lainnya
# 50 - paket tidak stabil, pasang paksa di layar detail, dapat mengakibatkan konflik

Paket: *
Pin: release n = squeeze-backports
Prioritas Pin: 400

Paket: *
Pin: lepaskan a = tidak stabil
  • Membuat '/etc/apt/apt.conf.d/100guiconf' dan untuk mengatur Aptitude sehingga menampilkan informasi yang disematkan.
Aptitude :: UI :: Package-Display-Format "% c% a% M% p% Z% v% V% i";

4
2018-02-04 22:59



Hanya pembaruan bahwa selain di atas saya telah menetapkan untuk menjalankan semua paket sistem saya dari repositori pengembangan 'pengujian'. Jadi dalam source.list seharusnya tertulis nama kode jessie dari pada squeeze. Kebijakan Debian testing mendekati stabil dan paket hampir sama baru dari unstable gudang. Saya kehabisan ruang di sini jadi silakan lihat: wiki.debian.org/DebianReleases, wiki.debian.org/StableUpdates, dan wiki.debian.org/StableProposedUpdates; dua yang terakhir adalah sumber repositori tambahan. - Daniel Sokolowski


Jika pilihan paket Anda lebih terlibat atau penginstalan akan diulang pada banyak mesin, Anda dapat mempertimbangkan untuk membuat repositori pribadi yang mencerminkan bagian dari repositori resmi. Ini membutuhkan sedikit pekerjaan untuk mengkonfigurasi repositori tetapi imbalannya mudah dipelihara dengan konfigurasi minimal pada setiap klien dan hasil yang dapat diulang ketika melakukan lusinan instalasi. Saya merasa ini membantu bahkan ketika hanya satu atau dua paket yang diinstal, dan menggunakan metode ini untuk mengotomatisasi dan mempertahankan pemasangan cloud. Satu server pada VPS murah dapat menangani lusinan repositori pribadi.

Untuk mengonfigurasi 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 Anda pilihan untuk melayani file repositori statis. Mungkin melindungi repositori dengan sertifikat keamanan dan otentikasi dasar.

Untuk secara otomatis memelihara repositori pribadi Anda dan menarik pembaruan dari hulu, letakkan di atas dalam skrip dan jalankan dari tugas cron.

Untuk mengkonfigurasi mesin klien Anda, di 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 menjaga mesin klien Anda dan tarik semua pembaruan repositori pribadi Anda, di komputer klien Anda:

# Update.
apt-get update

# Upgrade.
apt-get upgrade

2
2017-07-06 18:53





Pilihan lainnya adalah mengunduh paket sumber dari pengujian. APT dapat membuat paket sumber secara otomatis setelah mengunduhnya. Dengan cara ini, paket stabil Anda tidak akan terpengaruh oleh pembaruan pengujian. Satu-satunya trade-off adalah akan membutuhkan lebih banyak waktu daripada hanya mengunduh dan menginstal paket biner.

Untuk mengonfigurasi APT untuk mengunduh paket sumber dari pengujian, tambahkan saja:

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 codename saat ini (seperti yang dituliskan ini adalah "buster")


0
2018-02-16 03:15