สมมติว่าคุณกำลังใช้เซิร์ฟเวอร์และคุณไม่ต้องการอัปเกรดเป็นการทดสอบ (บีบ) จาก 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/
และ "hardcode" เวอร์ชัน Debian (etch, lenny ฯลฯ )
ในการติดตั้งแพ็คเกจทดสอบให้ใช้aptitude install lib-foobar-package/testing
หรือเพียงข้ามไปยัง GUI ของความถนัดและเลือกเวอร์ชันภายในรายละเอียดแพ็คเกจ (กด Enter บนแพ็คเกจที่คุณกำลังดู)
หากคุณได้รับข้อร้องเรียนเกี่ยวกับความขัดแย้งของบรรจุภัณฑ์ให้ดูที่วิธีแก้ปัญหาก่อน ในกรณีส่วนใหญ่อันแรกจะเป็น "อย่าติดตั้งเวอร์ชันนี้" เรียนรู้การใช้ตัวเลือกตัวแก้ไขตัวเลือกการยอมรับ / ปฏิเสธต่อแพ็คเกจ ตัวอย่างเช่นหากคุณกำลังติดตั้ง foobar-package / การทดสอบและโซลูชั่นแรกคือ "ไม่ติดตั้ง foobar-package / การทดสอบ" ให้ทำเครื่องหมายตัวเลือกนั้นว่าถูกปฏิเสธและโซลูชันอื่น ๆ จะไม่เปลี่ยนเส้นทางไปอีกครั้ง ในกรณีเช่นนี้คุณอาจต้องติดตั้งชุดทดสอบอื่น ๆ สองสามชุด
หากมีขนดกเกินไป (เช่นพยายามอัพเกรด libc หรือเคอร์เนลหรือระบบคอร์ขนาดใหญ่อื่น ๆ ) คุณสามารถปฏิเสธเส้นทางการอัปเกรดเหล่านั้นหรือกลับออกจากการอัพเกรดเริ่มต้นพร้อมกัน โปรดจำไว้ว่ามันจะทำการอัปเกรดสิ่งต่าง ๆ เพื่อทดสอบ / ไม่เสถียรถ้าคุณอนุญาตเท่านั้น
แก้ไข: แก้ไขพินบุริมภาพบางส่วนและอัปเดตรายการ
apt-get update
หลังจากสร้างไฟล์กำหนดค่าแล้วหรือยัง
sudo apt-get update
ฉันได้รับข้อผิดพลาดในการอัปเดต จากนั้นรีสตาร์ทซึ่งให้ฉันXsession error
รีสตาร์ทอีกครั้งและตอนนี้ฉันไม่มี gui /dev/sda1/
อยู่ในขณะนี้อย่างเต็มรูปแบบ ยิ่งใหญ่
ในการ/etc/apt/apt.conf.d
เพิ่มไฟล์ต่อไปนี้
99defaultrelease
:
APT::Default-Release "stable";
ใน/etc/apt/sources.list.d
- เพิ่ม URL สำหรับการทดสอบ / แหล่งที่ไม่เสถียร
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
ระวังให้มากถ้าคุณติดตั้งสิ่งที่มีการอ้างอิงมากมาย อย่าทำสิ่งนี้กับการผลิตโดยเฉพาะ
คุณสามารถลองเสี่ยงโชคที่backportหรือพื้นที่เก็บข้อมูลที่คล้ายกัน
apt_preferences
กำหนดระดับเริ่มต้นที่ระบบควร 'safe-upgrade' เป็นไฟล์ / etc / apt / preferences:
man apt_preferences
มีหลายสิ่งที่คุณสามารถทำได้ด้วย apt_preferences แต่เพื่อความเรียบง่าย ...
ฉันต้องการติดตั้งแพคเกจเดียว (autoMysqlBackup) ซึ่งมีให้เฉพาะในการทดสอบเท่านั้น วิธีแก้ไขคือการเพิ่มสิ่งต่อไปนี้ลงใน / 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
เมื่อเพิ่มที่เก็บหลายแห่งลงใน /etc/apt/sources.list ความสามารถจะอัปเกรดเป็นรุ่นที่คุณระบุเท่านั้นแม้ว่าจะมีรายชื่อ repos ใหม่ในภายหลัง (ในกรณีนี้คือ 'เสถียร')
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) จะต้องมีการปรับปรุง (เพื่อติดตั้งซอฟต์แวร์จากการทดสอบ) และเมื่อแพ็คเกจพื้นฐานเหล่านี้ย้ายไปที่การทดสอบระบบทั้งหมดสามารถดริฟท์
นี่คือสองทางเลือก:
เอกสารเดเบียนมีเนื้อหาครอบคลุมและฉันขอแนะนำให้ขุดเพราะมันจะเปิดเผยความงามของระบบเดเบียนอย่างแท้จริง
ลองดูที่วิธีการรักษาระบบผสมมันจะอธิบายทุกสิ่งที่คุณจำเป็นต้องรู้
อีกวิธีหนึ่งที่สามารถป้องกันการติดตั้งพึ่งพามากเกินไปจากการทดสอบหรือ Sid คือ: คุณบอก apt-get เพื่อรับแหล่งที่มาของแพคเกจจากการทดสอบหรือ Sid และสร้างแพ็คเกจสำหรับระบบของคุณโดยใช้เครื่องมือ Debian (ไม่จำเป็นต้องคนจรจัดด้วยตนเอง กับแหล่งที่มา)
อ้างจากที่นี่:
https://wiki.debian.org/DebianUnstable#How_do_I_backport_a_sid_package_to_testing_or_stable.3F
ฉันจะส่งกลับแพคเกจ sid เพื่อทดสอบหรือเสถียรได้อย่างไร
ติดตั้งแหล่ง Debian (และเครื่องมือในการพัฒนาโดยเฉพาะอย่างยิ่ง debhelper, devscripts และ build-essential) จากนั้นสร้างแพ็คเกจ
เป็นขั้นเป็นตอน:
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
ฉันได้ทำมันมาเป็นระยะเวลานานเพื่อให้มั่นใจในการพูดว่ามันปลอดภัยและสะดวกสบาย การติดตั้งเวอร์ชั่นเสถียรด้านล่างจะติดตั้งตามค่าเริ่มต้นอย่างไรก็ตาม Aptitude จะช่วยให้คุณเลือกเวอร์ชันที่ไม่เสถียรหรือไม่เสถียรหากต้องการ:
มีสี่สิ่งที่ต้องแก้ไขการตั้งค่าเริ่มต้นการปักหมุดจำเป็นต้องมีการตั้งค่าแหล่งที่มาต้องมีการเพิ่ม backport และการเพิ่มความไม่เสถียรลดลำดับความสำคัญในการปักหมุดสำหรับแพคเกจ backport / ไม่เสถียรและการตั้งค่าการแสดง
Apt :: default-release "เสถียร";
# deb cdrom: [Debian GNU / Linux 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/ บีบ / ปรับปรุงหลัก # squeeze-update ก่อนหน้านี้ทราบว่าเป็น 'ระเหย' deb http://ftp.us.debian.org/debian/ squeeze-updates หลัก deb-src http://ftp.us.debian.org/debian/ บีบการอัพเดทหลัก # บีบ backport # http://backports.debian.org/Instructions/ deb http://backports.debian.org/debian-backports หน้าหลัก squeeze-backports # ไม่เสถียร # http://wiki.debian.org/AptPreferences deb http://ftp.us.debian.org/debian/ หลักที่ไม่เสถียร deb-src http://ftp.us.debian.org/debian/ main ไม่เสถียร # ตัวอย่างที่ไม่ใช่ฟรี อาทิตย์จาวา #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 # # ติดตั้ง PIN สูงสุดในเปลือกถั่ว # # ค่าเริ่มต้น Pining มีดังต่อไปนี้ซึ่งนอกเหนือจากการตั้งค่าของเรา: # 990 - สำหรับรุ่นที่ไม่ได้ติดตั้ง แต่ DO อยู่ในการตั้งค่า `APT :: Default-Relase" เสถียร "" # 500 - สำหรับเวอร์ชันที่ไม่ได้ติดตั้งและไม่ได้เป็นของรีลีสเป้าหมาย # 100 - สำหรับแพ็คเกจที่ติดตั้งไว้แล้วนี่หมายถึงแพ็คเกจรุ่นเดียวกันด้วย # 1 - สำหรับแพ็คเกจทดลอง แพ็คเกจด้วย "NotAutomatic: ใช่" # # รางวัลของเรา # 400 - backport ที่สามารถติดตั้งได้อย่างปลอดภัยโดยไม่จำเป็นต้องอัพเดตแพ็คเกจอื่น ๆ # 50 - แพ็คเกจที่ไม่เสถียรติดตั้งแบบบังคับในหน้าจอรายละเอียดอาจทำให้เกิดข้อขัดแย้ง แพ็คเกจ: * Pin: ปล่อย n = squeeze-backport ลำดับความสำคัญ Pin: 400 แพ็คเกจ: * Pin: ปล่อย a = unstable
Aptitude :: 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/StableProposedUpdates ; สองอันสุดท้ายคือแหล่งเก็บข้อมูลเพิ่มเติม
หากการเลือกแพ็กเกจของคุณมีส่วนร่วมมากขึ้นหรือการติดตั้งซ้ำในหลายเครื่องคุณอาจพิจารณาตั้งค่าที่เก็บส่วนตัวที่สะท้อนชุดย่อยของที่เก็บอย่างเป็นทางการ สิ่งนี้ต้องการการทำงานเล็กน้อยในการกำหนดค่าที่เก็บ แต่รางวัลนั้นง่ายต่อการบำรุงรักษาด้วยการกำหนดค่าขั้นต่ำเปล่าบนไคลเอนต์แต่ละรายการและผลลัพธ์ที่ทำซ้ำได้เมื่อทำการติดตั้งหลายสิบครั้ง ฉันพบว่าสิ่งนี้มีประโยชน์แม้ว่าจะมีเพียงหนึ่งหรือสองแพ็คเกจเท่านั้นที่กำลังติดตั้งและใช้วิธีนี้ในการทำให้การติดตั้งระบบคลาวด์เป็นไปโดยอัตโนมัติ เซิร์ฟเวอร์เดียวใน VPS ราคาถูกสามารถจัดการกับที่เก็บส่วนตัวหลายสิบแห่ง
ในการกำหนดค่าเซิร์ฟเวอร์ที่เก็บส่วนตัวของคุณ:
# 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
จากนั้นกำหนดค่าเว็บเซิร์ฟเวอร์ที่คุณเลือกเพื่อให้บริการไฟล์ที่เก็บแบบคงที่ อาจปกป้องที่เก็บด้วยใบรับรองความปลอดภัยและการพิสูจน์ตัวตนพื้นฐาน
ในการรักษาที่เก็บส่วนตัวของคุณโดยอัตโนมัติและดึงการอัปเดตจากอัปสตรีมให้ใส่สคริปต์ข้างต้นและเรียกใช้จากงาน cron
ในการกำหนดค่าเครื่องไคลเอนต์บนเครื่องไคลเอนต์ของคุณ:
# 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 สามารถสร้างแพ็คเกจต้นทางโดยอัตโนมัติหลังจากดาวน์โหลด ด้วยวิธีนี้แพ็คเกจที่เสถียรของคุณจะไม่ได้รับผลกระทบจากการทดสอบอัปเดต ข้อเสียอย่างเดียวคือมันใช้เวลามากกว่าการดาวน์โหลดและติดตั้งแพ็คเกจไบนารี
ในการกำหนดค่า APT ให้ดาวน์โหลดแพ็คเกจต้นทางจากการทดสอบเพียงเพิ่ม:
deb-src http://<your debian mirror here> testing main
หากคุณเพียงต้องการติดตามการทดสอบปัจจุบันและไม่ใช่การทดสอบในอนาคตให้แทนที่ "การทดสอบ" ด้วยชื่อรหัสปัจจุบัน (เนื่องจากการเขียนนี้เป็น "บัสเตอร์")