सवाल मैं डेबियन स्थिर कैसे चला सकता हूं लेकिन परीक्षण से कुछ पैकेज स्थापित कर सकता हूं?


मान लें कि आप एक सर्वर चला रहे हैं और आप एक आवश्यक पैकेज या दो स्थापित करने के लिए स्थिर (लेनी) से परीक्षण (निचोड़) में अपग्रेड नहीं करना चाहते हैं।

परीक्षण से केवल कुछ पैकेज स्थापित करने का सबसे अच्छा तरीका क्या है?


180
2018-06-09 07:53


मूल


नवीनतम आधिकारिक दस्तावेज यह कहना है: अभिलेखागार के मिश्रित स्रोत से पैकेज। - Alexey


जवाब:


बहुत से लोग परीक्षण के साथ स्थिर मिश्रण करने से डरते हैं, लेकिन स्पष्ट रूप से, परीक्षण अपने दायरे में काफी स्थिर है, और उचित वरीयताओं और समाधान जांच के साथ, आप "स्थिरता बहाव" से बच सकते हैं जो आपके मूल पैकेज को अस्थिर पथ पर रखता है।

"परीक्षण काफी स्थिर है ??", तुम पूछो। हाँ। पैकेज को अस्थिर से परीक्षण करने के लिए माइग्रेट करने के लिए, लगातार 10 दिनों के लिए शून्य खुली बग होनी चाहिए। संभावना है कि, खासकर अधिक लोकप्रिय पैकेजों के लिए, अगर कोई गलत है तो कोई अस्थिर संस्करण के लिए एक बग रिपोर्ट सबमिट करने जा रहा है।

यहां तक ​​कि यदि आप वातावरण को मिश्रण नहीं करना चाहते हैं, तो यह भी अच्छा है कि अगर आप किसी ऐसी चीज में भाग लेते हैं जिसमें स्थिर स्थिरता की तुलना में एक नया संस्करण की आवश्यकता होती है तो वहां विकल्प होता है।

यहां यह सेट करने के लिए मैं अनुशंसा करता हूं:

सबसे पहले, निम्न फाइलें बनाएँ /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

(यहां अस्थिर / प्रयोगात्मक सामान से डरो मत। प्राथमिकताएं इतनी कम हैं कि यह कभी भी उस सामान को स्वचालित रूप से इंस्टॉल नहीं करेगा। यहां तक ​​कि परीक्षण शाखा भी व्यवहार करेगी, क्योंकि यह केवल उन संकुल को स्थापित करने जा रहा है जिन्हें आप बनना चाहते हैं परीक्षण में।)

अब, के लिए एक मिलान सेट बनाना /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: के समान stable.list, को छोड़कर testing

unstable.list: के समान stable.list, को छोड़कर unstable

experimental.list: के समान stable.list, को छोड़कर experimental

आप जो कुछ भी चाहते हैं उसके साथ steadfast.net दर्पण को प्रतिस्थापित कर सकते हैं। मैं उपयोग करने की सिफारिश करेंगे netselect-apt सबसे तेज़ दर्पण को समझने के लिए, और अपनी पहली पसंद के लिए इसका उपयोग करें। ftp.us.debian.org बैकअप के रूप में इस्तेमाल किया जा सकता है। शर्तों का उपयोग करना भी महत्वपूर्ण है stable, testing, unstable, आदि के बजाय squeeze, wheezy, sid, आदि, के बाद से stable एक चलती लक्ष्य है और जब नवीनतम स्थिरता में अपग्रेड करने का समय आता है, तो उपयुक्त / उपयुक्तता स्वचालित रूप से बाहर आ जाएगी।

आप एक भी जोड़ सकते हैं oldstable में sources.lists.d तथा preferences.d (1 की प्राथमिकता का उपयोग करें), हालांकि यह moniker अगले स्थिर चक्र से पहले समाप्त हो जाएगा और गायब हो जाएगा। इस तरह के मामलों में, आप इसका उपयोग कर सकते हैं http://archive.debian.org/debian/ और डेबियन संस्करण (etch, lenny, आदि) "हार्डकोड"।

किसी पैकेज के परीक्षण संस्करण को स्थापित करने के लिए, बस उपयोग करें aptitude install lib-foobar-package/testing, या बस योग्यता के जीयूआई में कूदें और पैकेज विवरण के अंदर संस्करण का चयन करें (उस पैकेज पर एंटर दबाएं जिसे आप देख रहे हैं)।

यदि आपको पैकेज विवादों की शिकायतें मिलती हैं, तो पहले समाधान देखें। ज्यादातर मामलों में, पहला "इस संस्करण को स्थापित न करें" होने जा रहा है। प्रति-पैकेज स्वीकार / अस्वीकार करने वाले विकल्पों को अस्वीकार करने के लिए जानें। उदाहरण के लिए, यदि आप foobar-package / test संस्थापित कर रहे हैं, और पहला समाधान "foobar-package / test संस्थापित नहीं है", तो उस विकल्प को अस्वीकार के रूप में चिह्नित करें, और अन्य समाधान कभी भी उस पथ पर कभी भी नहीं जाएंगे। इन मामलों में, आपको शायद कुछ अन्य परीक्षण पैकेज स्थापित करना होगा।

अगर यह बहुत बालों वाली हो रही है (जैसे कि यह libc या कर्नेल या किसी अन्य विशाल कोर सिस्टम को अपग्रेड करने का प्रयास कर रहा है), तो आप या तो उन अपग्रेड पथ को अस्वीकार कर सकते हैं या केवल प्रारंभिक अपग्रेड से बाहर हो सकते हैं। याद रखें कि यह केवल परीक्षण / अस्थिर करने के लिए सामान को अपग्रेड करने जा रहा है यदि आप इसे अनुमति देते हैं।


166
2018-04-23 02:38



धन्यवाद, इस विधि का इस्तेमाल किया और सबकुछ काम कर रहा है जैसा कि मैंने उम्मीद की थी! - Brad F Jacobs
मैं इसका उपयोग करने की कोशिश कर रहा हूं, लेकिन मैं किसी भी निर्भरता को हल करने में सक्षम नहीं हूं। ऐसा लगता है कि न तो उपयुक्त है, न तो योग्यता परीक्षण रिपोज़ में निर्भरताओं की तलाश करेगा। क्या हल करने का कोई तरीका है? - Tamás Szelei
क्या तुम्हारा दौड़ना हुआ apt-get update कॉन्फ़िगरेशन फ़ाइलों को बनाने के बाद? - Flow
महत्वपूर्ण: लेखक ने स्थिर / सुरक्षा के लिए एक पिनिंग प्राथमिकता मान चुना है उच्चतर डिफ़ॉल्ट रिलीज मान से ... देखें serverfault.com/a/653552/120130 अधिक जानकारी के लिए - Alex Ryan
इस जवाब ने अभी मेरी प्रणाली तोड़ दी। करने के प्रयास के बाद sudo apt-get update, मुझे एक अद्यतन त्रुटि मिली है। फिर पुनरारंभ किया, जिसने मुझे दिया Xsession error, फिर से शुरू किया, और अब मेरे पास गुई नहीं है। /dev/sda1/ अब पूरा हो गया है महान। - luchonacho


में /etc/apt/apt.conf.d निम्न फ़ाइल जोड़ें

99defaultrelease:

APT::Default-Release "stable";

में /etc/apt/sources.list.d - परीक्षण / अस्थिर स्रोतों के लिए यूआरएल जोड़ें

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

रन

apt-get update

और उसके बाद आपको जो चाहिए उसे इंस्टॉल करें

apt-get -t testing install something

बहुत सावधान रहें यदि आप ऐसी चीजें इंस्टॉल करते हैं जिनमें बहुत निर्भरताएं हैं। अधिमानतः उत्पादन पर ऐसा मत करो।

आप अपनी किस्मत आज भी कोशिश कर सकते हैं backports या समान भंडार।


90
2018-06-09 07:57



वाह। यह जल्दी था। मैं उस जानकारी को साझा करने के लिए पोस्ट कर रहा था जो मैं अभी आऊंगा! अच्छा है! - Gareth
मैंने पहले कभी apt.conf विधि का उपयोग नहीं किया है। यह आसान लगता है कि प्राथमिकता फ़ाइल विधि, लेकिन आपको कम सटीक नियंत्रण देता है। - Coops - Coops
जवाब उन्नयन की जरूरत है; यह कॉन्फ़िगरेशन पूरी तरह से चीजों को तोड़ देगा कि निचोड़ स्थिर हो गया है और लेन पुरानी हो गई है। - El Yobo
अब उपयोग नहीं किया जा सकता है, कृपया अद्यतन करें - Lothar
नए डेबियन रिलीज़ में कोई apt.conf फ़ाइल नहीं है, इसके बजाय /etc/apt/apt.conf.d/70debconf संपादित करें - Hayden Thring


apt_preferences

डिफ़ॉल्ट स्तर को परिभाषित करें कि सिस्टम को / etc / apt / प्राथमिकता फ़ाइल में 'सुरक्षित-अपग्रेड' करना चाहिए:
आदमी apt_preferences

Apt_preferences के साथ आप बहुत कुछ कर सकते हैं लेकिन सादगी के लिए ...

मुझे एक पैकेज (autoMysqlBackup) स्थापित करने की आवश्यकता थी जो केवल परीक्षण में उपलब्ध था। समाधान निम्नलिखित को / etc / apt / प्राथमिकताओं में जोड़ना था:

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

/Etc/apt/sources.list योग्यता में जोड़े गए कई रिपॉजिटरीज के साथ अब केवल आपके निर्दिष्ट रिलीज़ में अपग्रेड हो जाएगा, भले ही बाद में रिलीज़ रेपो सूचीबद्ध हों (इस मामले में 'स्थिर')।

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

तो उस पैकेज को स्थापित करने के लिए, आपको बस इतना करना है:

$ aptitude install -t testing packageName 

46
2018-06-09 08:04



यह भी एक अच्छी विधि है, apt.conf जितनी जल्दी आसान नहीं है, लेकिन आपको अपने सभी अलग-अलग स्रोतों को सापेक्ष तरीके से नियंत्रित करने देता है। - Coops
यह कार्य के लिए बहुत जटिल है ... एपीटी का उपयोग करना :: डिफ़ॉल्ट-रिलीज रिलीज की पिन प्राथमिकता 9 0 9 तक सेट करता है (जैसा कि आप इसे 900 तक सेट करते हैं) और शेष के लिए नकारात्मक पिनिंग वास्तव में आवश्यक नहीं है .. दूरस्थ उन्नयन के दौरान स्थिर पैकेज को प्राथमिकता दी जाती है और जैसे ही आप कमांड लाइन पर कुछ स्पष्ट रूप से सूचीबद्ध करते हैं, इसकी नकारात्मक पिनिंग प्राथमिकता को अधिकतर अनदेखा किया जाएगा। - Raphaël Hertzog
मुझे यकीन नहीं है कि आपको @ राफेल का जवाब कैसे दिया जाए। यह चीजों को करने का एक बहुत ही शानदार तरीका प्रतीत होता है। मैंने कई साल पहले एपीटी पिनिंग का इस्तेमाल किया है, लेकिन मुझे वास्तव में कभी नहीं मिला। ऊपर दिए गए उदाहरण सीधे apt_preferences मैन पेज से हैं। - Gareth
निचोड़ पर यह ठीक काम करता है की पुष्टि करें - tomfanning
@ लोथर: यह डेबियन 6 पर काम करता है। सिर्फ इसलिए कि फ़ाइल मौजूद नहीं है इसका मतलब यह नहीं है कि यह काम नहीं करता है। बस फ़ाइल बनाएं और सेटिंग्स जोड़ें। मैन पेज से उद्धरण: "यदि कोई प्राथमिकता फ़ाइल नहीं है या यदि किसी विशेष संस्करण पर लागू होने वाली फ़ाइल में कोई प्रविष्टि नहीं है तो उस संस्करण को आवंटित प्राथमिकता उस संस्करण के वितरण की प्राथमिकता है, जिस पर वह संस्करण संबंधित है।" - rzetterberg


इस विषय में डेबियन दस्तावेज व्यापक है और मैं दृढ़ता से सलाह देने की सलाह देता हूं क्योंकि यह वास्तव में डेबियन सिस्टम की सुंदरता का अनावरण करेगा।

अच्छी तरह से देखिए एक मिश्रित प्रणाली कैसे रखें, यह आपको बताएगा कि आपको टियो पता होना चाहिए।


12
2018-06-09 08:24



यह @pQd द्वारा उत्तर में उपयोग की जाने वाली वही विधि प्रतीत होता है, इसलिए यह डेबियन> = 6.0 पर लागू नहीं होता है। इसके अलावा लिंक शीर्षक "अप्रचलित दस्तावेज़ीकरण" कहता है। इसके अलावा ज्यादातर जवाब केवल लिंक। - dequis
जबकि @dequis सही है कि लिंक पुराना प्रतीत होता है, मैंने अस्थिर से पैकेज स्थापित करने के लिए डेबियन 8 (परीक्षण) पर निर्देशों का पालन किया है, और सबकुछ ठीक से ठीक काम करता है। किसी को भी एक अद्यतित दस्तावेज लिंक मिला है? - domsson
यह वही हो सकता है जो आप खोज रहे हैं:debian.org/doc/manuals/debian-reference/... - tomdeb


इसके लायक होने के लिए, मैंने जो सामान्य सलाह देखी है वह है "किसी भी चीज़ के साथ स्थिर मिश्रण न करें।" अधिकांश मिश्रित सिस्टम ट्यूटोरियल मिश्रण और अस्थिर मिश्रण के लिए हैं।

तर्क यह प्रतीत होता है कि यदि आप परीक्षण के साथ स्थिर मिश्रण करते हैं, तो बहुत ही बुनियादी पैकेज (जैसे libc6) को अपडेट की आवश्यकता होगी (परीक्षण से सॉफ़्टवेयर इंस्टॉल करने के लिए), और एक बार ये मूल पैकेज परीक्षण करने के लिए जाते हैं, तो पूरी प्रणाली उस तरह से बहती है।

यहां दो विकल्प हैं:

  1. उपयोग backports
  2. परीक्षण से एक स्रोत लाइन स्थापित करें, और कोशिश करें बाद के संस्करण को आप स्रोत से बनाना चाहते हैं

10
2018-06-09 13:09



मैं सहमत हूँ। मैंने बस libdvdread4 को wheezy / स्थिर में संस्करण में एक बग की वजह से परीक्षण से अद्यतन करने का प्रयास किया। हालांकि यह नवीनतम libc लाने के लिए चाहता है। तो मैंने स्थिर से libdvdread4 के लिए स्रोत पैकेज को पकड़ लिया और इसे 1 लाइन स्रोत परिवर्तन के साथ चिपकाया और इसे पुनर्निर्मित किया। परीक्षण से सभी प्रकार के पैकेजों में खींचने से बेहतर तरीका है। अब सभी संकुल अभी भी "स्थिर" हैं और मेरे पास केवल 1-लाइन परिवर्तन की आवश्यकता है। - dgrant


एक और तरीका, जो परीक्षण या सिड से बहुत अधिक निर्भरताओं को स्थापित करने से रोक सकता है, यह है: आप टेस्टिंग या सिड से पैकेज का स्रोत प्राप्त करने के लिए उपयुक्त हैं और डेबियन टूल का उपयोग करके अपने सिस्टम के लिए एक पैकेज बनाएं (मैन्युअल रूप से टिंकर करने की आवश्यकता नहीं है सूत्रों के साथ)।

यहां से उद्धरण:
https://wiki.debian.org/DebianUnstable#How_do_I_backport_a_sid_package_to_testing_or_stable.3F

मैं परीक्षण या स्थिर करने के लिए एक एसआईडी पैकेज का बैकपोर्ट कैसे करूं?

डेबियन स्रोत (और विकास उपकरण, विशेष रूप से   डेबेलर, devscripts, और निर्माण आवश्यक), और फिर निर्माण   पैकेज।

क्रमशः:

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 वर्तमान निर्देशिका में होना चाहिए और हो सकता है   dpkg -i the.deb के साथ स्थापित किया गया।


7
2018-03-13 17:02





मैं इसे विस्तारित अवधि के लिए कर रहा हूं ताकि यह सुनिश्चित हो सके कि यह पर्याप्त सुरक्षित है और इसे सुविधाजनक बनाया जा सकता है। नीचे सेटअप स्थिर संस्करण डिफ़ॉल्ट रूप से स्थापित किया जाएगा, हालांकि योग्यता आपको वांछित होने पर बैकपोर्ट या अस्थिर संस्करण चुनने की अनुमति भी देगी:

enter image description here

चार चीजें जिन्हें संपादित करने की आवश्यकता है, डिफ़ॉल्ट पिनिंग रिलीज को सेट करने की आवश्यकता है, स्रोतों को बैकपोर्ट्स और अस्थिर जोड़ों की आवश्यकता है, बैकपोर्ट / अस्थिर पैकेजों की पिनिंग प्राथमिकता को कम करना, और उपयुक्तता प्रदर्शन सेटिंग्स को पिनिंग प्रदर्शित करने के लिए संशोधित करने की आवश्यकता है।

  • बनाओ '/Etc/apt/apt.conf.d/10defaultrelease' और इसकी सामग्री को निम्नानुसार बनाएं:
Apt :: डिफ़ॉल्ट-रिलीज "स्थिर";
  • अपना संपादित करें '/Etc/apt/sources.list' अस्थिर और बैकपोर्ट स्रोत जोड़ने के लिए ऐसा कुछ दिखता है:
# डेब सीडीआरओएम: [डेबियन जीएनयू / लिनक्स 6.0.0 _Squeeze_ - आधिकारिक मल्टी-आर्किटेक्चर amd64 / i386 नेटिनस्ट # 1 20110205-14: 45] / निचोड़ मुख्य

डेब http://ftp.us.debian.org/debian/ मुख्य निचोड़ें
deb-src http://ftp.us.debian.org/debian/ मुख्य निचोड़ें

डेब http://security.debian.org/ निचोड़ / अद्यतन मुख्य
deb-src http://security.debian.org/ निचोड़ / अद्यतन मुख्य

# निचोड़-अद्यतन, पहले 'अस्थिर' के रूप में जाना जाता है
डेब http://ftp.us.debian.org/debian/ निचोड़-अद्यतन मुख्य
deb-src http://ftp.us.debian.org/debian/ निचोड़-अद्यतन मुख्य

# निचोड़ बैकपोर्ट्स
# http://backports.debian.org/Instructions/
डेब http://backports.debian.org/debian-backports निचोड़-बैकपोर्ट मुख्य

# अस्थिर
# http://wiki.debian.org/AptPreferences
डेब http://ftp.us.debian.org/debian/ अस्थिर मुख्य
deb-src http://ftp.us.debian.org/debian/ अस्थिर मुख्य

# गैर मुक्त पूर्व। सूर्य जावा
#deb http://ftp.us.debian.org/debian/ नि: शुल्क नि: शुल्क निचोड़ें
# deb-src http://ftp.us.debian.org/debian/ नि: शुल्क निचोड़ें
  • संपादित करें etc/apt/preferences पिनिंग फ़ाइल - अगर फ़ाइल मौजूद नहीं है तो इसे बनाएं।
# पैकेजिंग प्राथमिकताओं पैकेजिंग
# Http://wiki.debian.org/AptPreferences और http://manpages.debian.net/cgi-bin/man.cgi?query=apt_preferences देखें
#
# अखरोट खोल में उच्चतम पिन स्थापित हो जाता है
#
# पिनिंग डिफॉल्ट के रूप में अनुसरण हैं जो हमारी सेटिंग्स के अतिरिक्त हैं:
# 9 0 9 - संस्करण के लिए जो स्थापित नहीं हैं लेकिन DO हमारे 'एपीटी :: डिफ़ॉल्ट-रिलेज़ "स्थिर" सेटिंग से संबंधित है।
# 500 - उन संस्करणों के लिए जो स्थापित नहीं हैं और लक्ष्य रिलीज से संबंधित नहीं हैं
# 100 - पहले से स्थापित संकुल के लिए, यह भी उसी पैकेज के अन्य संस्करणों का मतलब है
# 1 - प्रयोगात्मक पैकेज के लिए; "NotAutomatic: हाँ" के साथ पैकेज
#
# हमारे पिनिंग्स
# 400 - बैकपोर्ट जो अन्य पैकेजों को अपडेट करने की आवश्यकता के बिना सुरक्षित रूप से स्थापित किए जा सकते हैं
# 50 - अस्थिर पैकेज, विवरण स्क्रीन में मजबूर स्थापित, परिणामस्वरूप संघर्ष हो सकता है

पैकेज: *
पिन: रिलीज एन = निचोड़-बैकपोर्ट्स
पिन-प्राथमिकता: 400

पैकेज: *
पिन: एक = अस्थिर रिलीज
  • सर्जन करना '/Etc/apt/apt.conf.d/100guiconf' और योग्यता सेट अप करने के लिए यह पिनिंग जानकारी प्रदर्शित करता है।
योग्यता :: यूआई :: पैकेज-डिस्प्ले-प्रारूप "% सी% एक% एम% पी% जेड% वी% वी% i";

4
2018-02-04 22:59



बस एक अपडेट जो उपर्युक्त के अतिरिक्त है, मैंने अपने सभी सिस्टम पैकेजों को 'परीक्षण' विकास भंडार से चलाने पर बसने का फैसला किया है। तो अंदर source.list यह कोड नाम कहना चाहिए jessie के बजाय squeeze। डेबियन की नीति testing स्थिर के पास है और पैकेज लगभग उतने ही नए हैं unstable भंडार। मैं यहां अंतरिक्ष से बाहर चला रहा हूं इसलिए कृपया एक नज़र डालें: wiki.debian.org/DebianReleases, wiki.debian.org/StableUpdates, तथा wiki.debian.org/StableProposedUpdates; अंतिम दो अतिरिक्त भंडार स्रोत हैं। - Daniel Sokolowski