ฉันจะเรียกใช้ Debian เสถียร แต่ติดตั้งแพคเกจบางอย่างจากการทดสอบได้อย่างไร


206

สมมติว่าคุณกำลังใช้เซิร์ฟเวอร์และคุณไม่ต้องการอัปเกรดเป็นการทดสอบ (บีบ) จาก Stable (Lenny) เพียงแค่ติดตั้งแพ็คเกจที่ต้องการหรือสองชุด

วิธีที่ดีที่สุดในการติดตั้งแพคเกจเฉพาะจากการทดสอบคืออะไร


2
นี่คือสิ่งที่เอกสารทางการฉบับล่าสุดกล่าวถึง: แพคเกจจากแหล่งรวมเอกสารสำคัญ
Alexey

คำตอบ:


183

ดูเหมือนว่าหลายคนกลัวที่จะผสมความเสถียรกับการทดสอบ แต่ตรงไปตรงมาการทดสอบนั้นค่อนข้างคงที่ในสิทธิของตนเองและด้วยการตั้งค่าที่เหมาะสมและการตรวจสอบการแก้ไขคุณสามารถหลีกเลี่ยง

"การทดสอบค่อนข้างเสถียรหรือไม่?" , คุณถาม. ใช่. เพื่อให้แพคเกจที่จะย้ายจากที่ไม่เสถียรไปยังการทดสอบจะต้องมีศูนย์เปิดบั๊กเป็นเวลา 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.listtesting

unstable.list: เหมือนกับstable.listยกเว้นunstableและลบรายการความปลอดภัย

experimental.list: เหมือนกับยกเว้นunstable.listexperimental

นอกจากนี้คุณยังสามารถเพิ่ม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 หรือเคอร์เนลหรือระบบคอร์ขนาดใหญ่อื่น ๆ ) คุณสามารถปฏิเสธเส้นทางการอัปเกรดเหล่านั้นหรือกลับออกจากการอัพเกรดเริ่มต้นพร้อมกัน โปรดจำไว้ว่ามันจะทำการอัปเกรดสิ่งต่าง ๆ เพื่อทดสอบ / ไม่เสถียรถ้าคุณอนุญาตเท่านั้น

แก้ไข: แก้ไขพินบุริมภาพบางส่วนและอัปเดตรายการ


4
คุณรันapt-get updateหลังจากสร้างไฟล์กำหนดค่าแล้วหรือยัง
Flow

3
ฉันได้รับ (สิ่งที่ดูเหมือนว่าฉัน) พฤติกรรมที่ไม่สอดคล้องกันโดยใช้วิธีนี้ "apt-get install -t testing appX" ไม่ได้ให้เหมือนกับ "apt-get install appX / การทดสอบ" (ดูserverfault.com/q/646934/132528 ) - ฉันเดาว่ามันเป็นเพียงวิธีการที่วิธีนี้ ทำให้การจัดลำดับความสำคัญได้รับการแก้ไขแม้ว่าจะไม่ง่ายสำหรับฉัน
eugenevd

7
สำคัญ: ผู้เขียนเลือกค่าการกำหนดค่าปักหมุดสำหรับความเสถียร / ความปลอดภัยที่สูงกว่าค่าการปล่อยเริ่มต้น ... ดูserverfault.com/a/653552/120130สำหรับข้อมูลเพิ่มเติม
Alex Ryan

7
คำตอบนี้ทำลายระบบของฉัน หลังจากพยายามทำsudo apt-get updateฉันได้รับข้อผิดพลาดในการอัปเดต จากนั้นรีสตาร์ทซึ่งให้ฉันXsession errorรีสตาร์ทอีกครั้งและตอนนี้ฉันไม่มี gui /dev/sda1/อยู่ในขณะนี้อย่างเต็มรูปแบบ ยิ่งใหญ่
luchonacho

3
ฉันจะแนะนำให้คนฟังความคิดเห็นเชิงลบในโพสต์นี้ ฉันเพิ่งได้รับมันในการอัพเดท Debian 9 ล่าสุดซึ่งได้รับการแก้ไขโดยการคืนค่าการเปลี่ยนแปลงเหล่านี้ ฟังคำแนะนำในบทความของ Debian ในเรื่องนี้: wiki.debian.org/DontBreakDebian (เลื่อนไปที่อย่าทำ FrankenDebian)
Brandon Arnold

98

ในการ/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หรือพื้นที่เก็บข้อมูลที่คล้ายกัน


1
ว้าว. นั่นเป็นเรื่องด่วน ฉันโพสต์เพื่อแบ่งปันข้อมูลที่ฉันเพิ่งเจอ! ทำได้ดีนี่!
Gareth

ฉันไม่เคยใช้วิธี apt.conf มาก่อน ดูเหมือนง่ายกว่าที่วิธีการตั้งค่าไฟล์ แต่ให้การควบคุมที่แม่นยำน้อยลง - Coops
Coops

4
คำตอบต้องการการอัพเกรด; การกำหนดค่านี้จะทำลายสิ่งต่าง ๆ อย่างสมบูรณ์ในขณะนี้ที่บีบได้กลายเป็นมั่นคงและเงินเลนนี่กลายเป็นเก่าแก่
El Yobo

1
ไม่สามารถใช้งานได้อีกโปรดอัปเดต
Lothar

4
ในรุ่นเดเบียนที่ใหม่กว่าไม่มีไฟล์ apt.conf ให้แก้ไข /etc/apt/apt.conf.d/70debconf แทน
Hayden Thring

49

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 

นี่เป็นวิธีที่ดีเช่นกันไม่ใช่อย่างง่ายเหมือน apt.conf แต่ให้คุณควบคุมแหล่งข้อมูลต่าง ๆ ทั้งหมดในลักษณะที่สัมพันธ์กัน
Coops

2
สิ่งนี้ซับซ้อนเกินไปสำหรับงาน ... การใช้ APT :: Default-Release ตั้งค่าลำดับความสำคัญของการปล่อยให้เป็น 990 (คล้ายกับที่คุณตั้งไว้ที่ 900) และการตรึงเชิงลบสำหรับส่วนที่เหลือไม่จำเป็นจริงๆ .. ในระหว่างการอัพเกรด dist แพคเกจที่เสถียรมีระดับความสำคัญอยู่ดีและทันทีที่คุณแสดงรายการบางอย่างอย่างชัดเจนในบรรทัดคำสั่ง
Raphaël Hertzog

ฉันไม่แน่ใจว่าจะตอบคุณอย่างไร @Rhahael ดูเหมือนจะเป็นวิธีที่สง่างามมากในการทำสิ่งต่างๆ ฉันเคยใช้การปักหมุดก่อนหน้าหลายปีที่ผ่านมา แต่ฉันไม่เคยได้รับมันเลย ตัวอย่างที่ฉันใช้ด้านบนนั้นมาจากหน้า man apt_preferences
Gareth

2
ยืนยันว่าใช้งานได้ดีในการบีบ
tomfanning

3
@ Lothar: มันทำงานบน Debian 6. เพียงเพราะไฟล์ไม่มีอยู่ไม่ได้หมายความว่ามันไม่ทำงาน เพียงสร้างไฟล์และเพิ่มการตั้งค่า อ้างจากหน้าคน: "หากไม่มีไฟล์กำหนดลักษณะหรือหากไม่มีรายการในไฟล์ที่ใช้กับรุ่นใดรุ่นหนึ่งลำดับความสำคัญที่กำหนดให้กับรุ่นนั้นจะเป็นลำดับความสำคัญของการแจกจ่ายที่เป็นของรุ่นนั้น"
rzetterberg

13

สำหรับสิ่งที่คุ้มค่าคำแนะนำทั่วไปที่ฉันเคยเห็นคือ "อย่ามั่วกับอะไรเลย" บทเรียนระบบแบบผสมส่วนใหญ่ใช้สำหรับการทดสอบแบบผสมและไม่เสถียร

เหตุผลน่าจะเป็นว่าถ้าคุณผสมมั่นคงกับการทดสอบแพคเกจพื้นฐานมาก (เช่น libc6) จะต้องมีการปรับปรุง (เพื่อติดตั้งซอฟต์แวร์จากการทดสอบ) และเมื่อแพ็คเกจพื้นฐานเหล่านี้ย้ายไปที่การทดสอบระบบทั้งหมดสามารถดริฟท์

นี่คือสองทางเลือก:

  1. ใช้backports
  2. ติดตั้งสายที่มาจากการทดสอบและพยายามที่จะสร้างรุ่นที่ใหม่กว่าที่คุณต้องการจากแหล่งที่มา

1
ฉันเห็นด้วย. ฉันเพิ่งลองอัปเดต libdvdread4 จากการทดสอบเนื่องจากมีข้อบกพร่องในรุ่นใน wheezy / เสถียร มันต้องการที่จะนำ libc ล่าสุด ดังนั้นฉันเพิ่งคว้าแพคเกจซอร์สสำหรับ libdvdread4 จากเสถียรและได้รับการแก้ไขด้วยการเปลี่ยนแหล่งข้อมูล 1 บรรทัดและสร้างใหม่ วิธีที่ดีกว่าการดึงแพคเกจทุกประเภทจากการทดสอบ ตอนนี้แพ็คเกจทั้งหมดยังคงเป็น "เสถียร" และฉันมีการเปลี่ยนแปลง 1 บรรทัดที่ฉันต้องการ
dgrant

12

เอกสารเดเบียนมีเนื้อหาครอบคลุมและฉันขอแนะนำให้ขุดเพราะมันจะเปิดเผยความงามของระบบเดเบียนอย่างแท้จริง

ลองดูที่วิธีการรักษาระบบผสมมันจะอธิบายทุกสิ่งที่คุณจำเป็นต้องรู้


1
นี่เป็นวิธีเดียวกับที่ใช้ในคำตอบโดย @pQd ดังนั้นจึงไม่ใช้กับ debian> = 6.0 ด้วยชื่อลิงค์ระบุว่า "เอกสารล้าสมัย" ในขณะนี้ ลิงก์ส่วนใหญ่ยังมีคำตอบเท่านั้น
dequis

ในขณะที่ @dequis อยู่ในตำแหน่งที่ดูเหมือนว่าลิงก์จะล้าสมัย แต่ฉันเพิ่งทำตามคำแนะนำบน Debian 8 (การทดสอบ) เพื่อติดตั้งแพ็กเกจจากความไม่เสถียรและทุกอย่างดูเหมือนจะทำงานได้อย่างสมบูรณ์แบบ ใครมีลิงค์เอกสารที่เป็นปัจจุบัน?
domsson

1
นี่น่าจะเป็นสิ่งที่คุณกำลังมองหา: debian.org/doc/manuals/debian-reference/ …
tomdeb

7

อีกวิธีหนึ่งที่สามารถป้องกันการติดตั้งพึ่งพามากเกินไปจากการทดสอบหรือ 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


4

ฉันได้ทำมันมาเป็นระยะเวลานานเพื่อให้มั่นใจในการพูดว่ามันปลอดภัยและสะดวกสบาย การติดตั้งเวอร์ชั่นเสถียรด้านล่างจะติดตั้งตามค่าเริ่มต้นอย่างไรก็ตาม Aptitude จะช่วยให้คุณเลือกเวอร์ชันที่ไม่เสถียรหรือไม่เสถียรหากต้องการ:

ป้อนคำอธิบายรูปภาพที่นี่

มีสี่สิ่งที่ต้องแก้ไขการตั้งค่าเริ่มต้นการปักหมุดจำเป็นต้องมีการตั้งค่าแหล่งที่มาต้องมีการเพิ่ม backport และการเพิ่มความไม่เสถียรลดลำดับความสำคัญในการปักหมุดสำหรับแพคเกจ backport / ไม่เสถียรและการตั้งค่าการแสดง

  • สร้าง'/etc/apt/apt.conf.d/10defaultrelease'และสร้างเนื้อหาดังต่อไปนี้:
Apt :: default-release "เสถียร";
  • แก้ไข'/etc/apt/sources.list'ของคุณเพื่อเพิ่มแหล่งข้อมูลที่ไม่เสถียรและ backport เพื่อให้มีลักษณะดังนี้:
# 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
  • สร้าง'/etc/apt/apt.conf.d/100guiconf'และตั้งค่าความถนัดดังนั้นจึงแสดงข้อมูลการปักหมุด
Aptitude :: UI :: รูปแบบบรรจุภัณฑ์ - แสดงผล "% c% a% M% p% Z% v% V% i";

1
เพียงแค่อัปเดตที่นอกเหนือจากข้างต้นฉันได้ตัดสินในการใช้งานแพคเกจระบบทั้งหมดของฉันจากที่เก็บการพัฒนา 'ทดสอบ' ดังนั้นในsource.listมันควรจะพูดชื่อรหัสแทนjessie squeezeนโยบายของเดเบียนtestingใกล้คงที่และแพคเกจใหม่เกือบจะเหมือนของที่unstableเก็บ ฉันหมดพื้นที่ที่นี่ดังนั้นโปรดดูที่: wiki.debian.org/DebianReleases , wiki.debian.org/StableUpdatesและwiki.debian.org/StableProposedUpdates ; สองอันสุดท้ายคือแหล่งเก็บข้อมูลเพิ่มเติม
Daniel Sokolowski

2

หากการเลือกแพ็กเกจของคุณมีส่วนร่วมมากขึ้นหรือการติดตั้งซ้ำในหลายเครื่องคุณอาจพิจารณาตั้งค่าที่เก็บส่วนตัวที่สะท้อนชุดย่อยของที่เก็บอย่างเป็นทางการ สิ่งนี้ต้องการการทำงานเล็กน้อยในการกำหนดค่าที่เก็บ แต่รางวัลนั้นง่ายต่อการบำรุงรักษาด้วยการกำหนดค่าขั้นต่ำเปล่าบนไคลเอนต์แต่ละรายการและผลลัพธ์ที่ทำซ้ำได้เมื่อทำการติดตั้งหลายสิบครั้ง ฉันพบว่าสิ่งนี้มีประโยชน์แม้ว่าจะมีเพียงหนึ่งหรือสองแพ็คเกจเท่านั้นที่กำลังติดตั้งและใช้วิธีนี้ในการทำให้การติดตั้งระบบคลาวด์เป็นไปโดยอัตโนมัติ เซิร์ฟเวอร์เดียวใน 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

1

อีกตัวเลือกหนึ่งคือการดาวน์โหลดแทนแพ็คเกจต้นทางจากการทดสอบ APT สามารถสร้างแพ็คเกจต้นทางโดยอัตโนมัติหลังจากดาวน์โหลด ด้วยวิธีนี้แพ็คเกจที่เสถียรของคุณจะไม่ได้รับผลกระทบจากการทดสอบอัปเดต ข้อเสียอย่างเดียวคือมันใช้เวลามากกว่าการดาวน์โหลดและติดตั้งแพ็คเกจไบนารี

ในการกำหนดค่า APT ให้ดาวน์โหลดแพ็คเกจต้นทางจากการทดสอบเพียงเพิ่ม:

deb-src http://<your debian mirror here> testing main

หากคุณเพียงต้องการติดตามการทดสอบปัจจุบันและไม่ใช่การทดสอบในอนาคตให้แทนที่ "การทดสอบ" ด้วยชื่อรหัสปัจจุบัน (เนื่องจากการเขียนนี้เป็น "บัสเตอร์")

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.