कहते हैं कि आप एक सर्वर चला रहे हैं और आप केवल एक आवश्यक पैकेज या दो को स्थापित करने के लिए Stable (Lenny) से परीक्षण (निचोड़) में अपग्रेड नहीं करना चाहते हैं।
परीक्षण से केवल कुछ पैकेजों को स्थापित करने का सबसे अच्छा तरीका क्या है?
कहते हैं कि आप एक सर्वर चला रहे हैं और आप केवल एक आवश्यक पैकेज या दो को स्थापित करने के लिए Stable (Lenny) से परीक्षण (निचोड़) में अपग्रेड नहीं करना चाहते हैं।
परीक्षण से केवल कुछ पैकेजों को स्थापित करने का सबसे अच्छा तरीका क्या है?
जवाबों:
कई लोग परीक्षण के साथ स्थिर मिश्रण करने से डरते हैं, लेकिन स्पष्ट रूप से, परीक्षण अपने आप में काफी स्थिर है, और उचित वरीयताओं और समाधान की जाँच के साथ, आप "स्थिरता बहाव" से बच सकते हैं जो आपके कोर पैकेजों को अस्थिर पथ पर रखता है।
"परीक्षण काफी स्थिर है ??" , तुम पूछो। हाँ। एक पैकेज के लिए अस्थिर से परीक्षण की ओर पलायन करने के लिए, इसमें लगातार 10 दिनों तक शून्य खुले बग होते हैं। संभावना है कि, विशेष रूप से अधिक लोकप्रिय पैकेजों के लिए, कोई व्यक्ति कुछ गलत होने पर अस्थिर संस्करण के लिए बग रिपोर्ट प्रस्तुत करने जा रहा है।
यहां तक कि अगर आप पर्यावरण को मिश्रण नहीं करना चाहते हैं, तब भी यह अच्छा है कि जब आप किसी चीज में भाग लेते हैं, तो स्थिर स्थिति में नए संस्करण की आवश्यकता होती है।
यहाँ मैं इसे स्थापित करने के लिए सलाह देता हूं:
सबसे पहले, निम्न फ़ाइलें बनाएँ /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
(यहां अस्थिर / प्रायोगिक सामान से डरो मत। प्राथमिकताएं काफी कम हैं कि यह कभी भी स्वचालित रूप से उस सामान को स्थापित करने वाला नहीं है। यहां तक कि परीक्षण शाखा भी व्यवहार करेगी, क्योंकि यह केवल उन पैकेजों को स्थापित करने के लिए जा रही है जिन्हें आप चाहते हैं। परीक्षण में।)
अब, इसके लिए एक मिलान सेट बनाना /etc/apt/sources.list.d
:
stable.list
: अपने मूल से कॉपी करें /etc/apt/sources.list
। पुरानी फ़ाइल का नाम कुछ इस तरह रखें sources.list.orig
।
testing.list
: के रूप में ही stable.list
, के अलावा testing
।
unstable.list
: के रूप में ही stable.list
, के अलावा unstable
, और सुरक्षा सूची को हटा दें।
experimental.list
: के रूप में ही unstable.list
, के अलावा experimental
।
तुम भी एक जोड़ सकते हैं oldstable
में sources.lists.d
और preferences.d
हालांकि इस उपनाम को समाप्त हो और अगले स्थिर चक्र से पहले गायब हो जाते हैं (1 की प्राथमिकता का उपयोग करें),। इस तरह के मामलों में, आप http://archive.debian.org/debian/
डेबियन संस्करण (etch, लेनी, आदि) का उपयोग और "हार्डकोड" कर सकते हैं ।
पैकेज के परीक्षण संस्करण को स्थापित करने के लिए, बस उपयोग करें aptitude install lib-foobar-package/testing
, या बस एप्टीट्यूड के GUI में कूदें और पैकेज विवरण के अंदर संस्करण का चयन करें (जिस पैकेज को आप देख रहे हैं उस पर हिट दर्ज करें)।
यदि आपको पैकेज संघर्ष की शिकायत मिलती है, तो पहले समाधान देखें। ज्यादातर मामलों में, पहला "इस संस्करण को स्थापित न करें" होने जा रहा है। प्रति-पैकेज स्वीकार / रिज़ॉल्वर विकल्पों को अस्वीकार करने का उपयोग करना सीखें। उदाहरण के लिए, यदि आप फ़ॉबोर-पैकेज / परीक्षण स्थापित कर रहे हैं, और पहला समाधान "फ़ॉबोरर-पैकेज / परीक्षण स्थापित नहीं है", तो उस विकल्प को अस्वीकार कर दिया गया के रूप में चिह्नित करें, और अन्य समाधान कभी भी उस पथ पर फिर से नहीं चलेंगे। इस तरह के मामलों में, आपको शायद कुछ अन्य परीक्षण पैकेज स्थापित करने होंगे।
यदि यह बहुत अधिक बालों वाला हो रहा है (जैसे यह libc या कर्नेल या किसी अन्य विशाल कोर सिस्टम को अपग्रेड करने का प्रयास कर रहा है), तो आप या तो उन अपग्रेड पथों को अस्वीकार कर सकते हैं या केवल प्रारंभिक अपग्रेड से पूरी तरह से वापस कर सकते हैं। याद रखें कि यह केवल परीक्षण / अस्थिर करने के लिए सामान को अपग्रेड करने जा रहा है यदि आप इसे अनुमति देते हैं।
संपादित करें: कुछ प्राथमिकता वाले पिनों को तय किया, और सूची को अद्यतन किया।
apt-get update
कॉन्फिग फाइल बनाने के बाद चलाया था ?
sudo apt-get update
, मुझे एक अद्यतन त्रुटि मिली। फिर से शुरू किया, जिसने मुझे दिया Xsession error
, फिर से शुरू किया, और अब मेरे पास गुई नहीं है। /dev/sda1/
अब भर गया है। महान।
में /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
Daud
apt-get update
और फिर आप के साथ क्या जरूरत है स्थापित करें
apt-get -t testing install something
यदि आप बहुत अधिक निर्भरता वाले सामान स्थापित करते हैं तो बहुत सावधान रहें। अधिमानतः उत्पादन पर ऐसा नहीं करते हैं।
तुम भी backports या इसी तरह के भंडार पर अपनी किस्मत की कोशिश कर सकते हैं ।
apt_preferences
डिफ़ॉल्ट स्तर को परिभाषित करें कि सिस्टम को / etc / apt / प्राथमिकताएं फ़ाइल में 'सुरक्षित-अपग्रेड' करना चाहिए:
आदमी apt_preferences
बहुत कुछ आप apt_preferences के साथ कर सकते हैं लेकिन सादगी के लिए ...
मुझे एक एकल पैकेज (ऑटोसिस्कलबैकअप) स्थापित करने की आवश्यकता थी जो केवल परीक्षण में उपलब्ध था। समाधान निम्नलिखित को / 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
इसके लायक क्या है, मैंने जो सामान्य सलाह देखी है वह है "किसी भी चीज के साथ स्थिर मिश्रण न करें।" मिश्रित सिस्टम ट्यूटोरियल के अधिकांश परीक्षण और अस्थिर मिश्रण के लिए हैं।
तर्क यह प्रतीत होता है कि यदि आप परीक्षण के साथ स्थिर मिश्रण करते हैं, तो बहुत मूल पैकेज (जैसे libc6) को अपडेट (परीक्षण से सॉफ़्टवेयर स्थापित करने के लिए) की आवश्यकता होगी, और एक बार ये मूल पैकेज परीक्षण के लिए चले जाते हैं, तो पूरी प्रणाली उस तरह से बहाव कर सकती है।
यहाँ दो विकल्प दिए गए हैं:
डेबियन प्रलेखन विषय में व्यापक है और मैं दृढ़ता से खुदाई करने की सलाह देता हूं क्योंकि यह डेबियन सिस्टम की सुंदरता का अनावरण करेगा।
मिश्रित प्रणाली कैसे रखें, इस पर एक नज़र डालें , यह आपको बताएंगे कि आपको tio की आवश्यकता है।
दूसरा तरीका, जो परीक्षण या सिड से बहुत अधिक निर्भरता स्थापित करने से रोक सकता है, यह है: आप apt-get को पैकेज के स्रोत को परीक्षण या सिड से प्राप्त करने के लिए कहते हैं और अपने सिस्टम के लिए डेबियन टूल्स (मैन्युअल रूप से टिंकर करने की आवश्यकता नहीं है) का उपयोग करके एक पैकेज बनाते हैं सूत्रों के साथ)।
यहाँ से उद्धरण:
https://wiki.debian.org/DebianUnstable#How_do_I_backport_a_sid_package_to_testing_or_stable.3F
परीक्षण या स्थिर करने के लिए मैं एक साइड पैकेज को कैसे वापस कर सकता हूं?
डेबियन स्रोत स्थापित करें (और विकास उपकरण, विशेष रूप से डीहेल्पर, डिस्क्रिप्स, और बिल्ड-एसेंशियल), और फिर पैकेज का निर्माण करें।
क्रमशः:
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
परिणामी डीबीएस वर्तमान निर्देशिका में होना चाहिए और dpkg -i the.deb के साथ स्थापित किया जा सकता है।
मैं इसे विस्तारित अवधि के लिए कर रहा हूं ताकि यह कहा जा सके कि यह पर्याप्त सुरक्षित है और इसे सुविधाजनक बनाया जा सकता है। नीचे सेटअप के साथ स्थिर संस्करण डिफ़ॉल्ट रूप से स्थापित हो जाएगा, हालांकि एप्टीट्यूड आपको बैकपोर्ट या अस्थिर संस्करण चुनने की अनुमति देगा यदि ऐसा हो तो:
चार चीजें हैं जिन्हें संपादित करने की आवश्यकता है, डिफ़ॉल्ट पिनिंग रिलीज़ को सेट करने की आवश्यकता है, स्रोतों को बैकपोर्ट / अस्थिर पैकेज की पिनिंग प्राथमिकता को कम करने और बैकस्ट को अस्थिर करने की आवश्यकता है और पिनिंग को प्रदर्शित करने के लिए एप्टीट्यूड डिस्प्ले सेटिंग्स को संशोधित करने की आवश्यकता है।
Apt :: डिफ़ॉल्ट-रिलीज़ "स्थिर";
# डेब cdrom: [डेबियन GNU / लिनक्स 6.0.0 _Squeeze_ - आधिकारिक मल्टी-आर्किटेक्चर amd64 / i386 NETINST # 1 20110205-14: 45] / मुख्य निचोड़ deb http://ftp.us.debian.org/debian/ निचोड़ मुख्य deb-src http://ftp.us.debian.org/debian/ मुख्य निचोड़ deb http://security.debian.org/ निचोड़ / अपडेट मुख्य deb-src http://security.debian.org/ निचोड़ / अपडेट मुख्य # निचोड़-अद्यतन, पहले 'अस्थिर' के रूप में जानते हैं deb http://ftp.us.debian.org/debian/ निचोड़-अद्यतन मुख्य deb-src http://ftp.us.debian.org/debian/ निचोड़-अपडेट मुख्य # निचोड़ बैकपोर्ट # http://backports.debian.org/Instructions/ deb http://backports.debian.org/debian-backports निचोड़-मुख्य निर्यात करता है # अस्थिर # http://wiki.debian.org/AptPreferences deb 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 # # अखरोट के खोल में सबसे ज्यादा पिन स्थापित होते हैं # # पिंग डिफ़ॉल्ट इस प्रकार हैं जो हमारी सेटिंग्स के अतिरिक्त हैं: # 990 - ऐसे संस्करण के लिए जो इंस्टॉल नहीं किए गए हैं, लेकिन हमारे 'APT :: Default-Relase "स्थिर" सेटिंग से संबंधित हैं। # 500 - ऐसे संस्करण के लिए जो इंस्टॉल नहीं किए गए हैं और वे लक्ष्य रिलीज़ से संबंधित नहीं हैं # 100 - पहले से इंस्टॉल किए गए पैकेज के लिए, यह भी उसी पैकेज के अन्य संस्करणों का मतलब है # 1 - प्रयोगात्मक पैकेज के लिए; "NotAutomatic: Yes" के साथ पैकेज # # हमारी पिनिंग # 400 - बैकपैक जो सुरक्षित रूप से अन्य पैकेजों को अपडेट करने की आवश्यकता के बिना स्थापित किए जा सकते हैं # 50 - अस्थिर पैकेज, विवरण स्क्रीन में मजबूर किया गया, जिसके परिणामस्वरूप विरोध हो सकता है पैकेज: * पिन: रिलीज एन = निचोड़-बैकपोर्ट पिन-प्राथमिकता: 400 पैकेज: * पिन: रिलीज ए = अस्थिर
योग्यता :: UI :: पैकेज-प्रदर्शन-प्रारूप "% c% a% M% p% Z% v% V% i";
source.list
इसमें कोड नाम के jessie
बजाय कहना चाहिए squeeze
। डेबियन की नीति testing
स्थिर है और पैकेज unstable
रिपॉजिटरी से लगभग नए हैं । मैं यहाँ से बाहर जा रहा हूँ, इसलिए कृपया यहाँ देखें: wiki.debian.org/DebianReleases , wiki.debian.org/StableUpdates , और wiki.debian.org/StableProposedUpates ; अंतिम दो अतिरिक्त भंडार स्रोत हैं।
यदि आपके पैकेज का चयन अधिक शामिल है या स्थापना को कई मशीनों पर दोहराया जाएगा, तो आप एक निजी रिपॉजिटरी स्थापित करने पर विचार कर सकते हैं जो आधिकारिक रिपॉजिटरी के एक सबसेट को दर्पण करता है। इसके लिए रिपॉजिटरी को कॉन्फ़िगर करने के लिए थोड़े से काम की आवश्यकता होती है लेकिन दर्जनों क्लाइंट्स के करते समय रिवॉर्ड प्रत्येक क्लाइंट पर नंगे न्यूनतम और रिप्लेसेबल परिणामों के साथ बनाए रखना आसान होता है। मुझे यह मददगार तब भी लगता है जब केवल एक या दो पैकेज स्थापित किए जा रहे हैं, और क्लाउड इंस्टॉल को स्वचालित और बनाए रखने के लिए इस पद्धति का उपयोग करें। सस्ते वीपीएस पर एक एकल सर्वर दर्जनों निजी रिपॉजिटरी को संभाल सकता है।
अपने निजी रिपॉजिटरी सर्वर को कॉन्फ़िगर करने के लिए:
# 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
फिर स्थिर रिपॉजिटरी फ़ाइलों की सेवा के लिए अपनी पसंद का वेब सर्वर कॉन्फ़िगर करें। संभवतः सुरक्षा प्रमाणपत्र और मूल प्रमाणीकरण के साथ भंडार की सुरक्षा करें।
अपने निजी भंडार को स्वचालित रूप से बनाए रखने और अपस्ट्रीम से अपडेट में खींचने के लिए, उपरोक्त को स्क्रिप्ट में रखें और क्रॉन जॉब से चलाएं।
अपने क्लाइंट मशीन पर अपने क्लाइंट मशीन को कॉन्फ़िगर करने के लिए:
# 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
अपने ग्राहक मशीन को बनाए रखने के लिए और अपने ग्राहक मशीन पर अपने सभी निजी रिपॉजिटरी अपडेट्स में खींच लें:
# Update.
apt-get update
# Upgrade.
apt-get upgrade
परीक्षण से स्रोत पैकेज के बजाय डाउनलोड करने के लिए एक और विकल्प है। एपीटी डाउनलोड करने के बाद स्रोत पैकेज को ऑटो-बिल्ड कर सकता है। इस तरह, आपके स्थिर पैकेज अपडेट के परीक्षण से प्रभावित नहीं होंगे। एकमात्र व्यापार-बंद यह है कि द्विआधारी पैकेज को डाउनलोड करने और स्थापित करने की तुलना में अधिक समय लगेगा।
परीक्षण से स्रोत पैकेज डाउनलोड करने के लिए APT को कॉन्फ़िगर करने के लिए, बस जोड़ें:
deb-src http://<your debian mirror here> testing main
यदि आप केवल वर्तमान परीक्षण का पालन करना चाहते हैं और भविष्य के परीक्षण नहीं, तो "परीक्षण" को वर्तमान कोडनेम से बदलें (जैसा कि यह लिखना "बस्टर" है)