จะอัพเกรดซอฟต์แวร์ที่ติดตั้งจากแหล่งที่มาได้อย่างไร


10

ฉันติดตั้ง NGinx จากต้นทางตั้งแต่แพ็คเกจจากที่เก็บ ubuntu นั้นค่อนข้างเก่า ฉันสงสัยว่าวิธีใดดีที่สุดในการอัปเกรดการติดตั้งประเภทนี้

เวิร์กโฟลว์ปัจจุบันของฉันเกี่ยวข้องกับ

  • กำลังดาวน์โหลดแหล่งที่มาใหม่
  • ติดตั้งซอฟต์แวร์ด้วยพา ธ เดียวกัน
  • รีสตาร์ทซอฟต์แวร์

มีบางอย่างบอกฉันว่านี่ไม่ใช่เส้นทางที่ดีที่สุด

ข้อเสนอแนะ?

คำตอบ:


9

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

เมื่อทำงานกับการแจกแจงลินุกซ์คุณควรยึดการจัดการแพกเกจให้มากที่สุด

ข้อดีของการใช้การจัดการแพคเกจ:

  • สนับสนุนการพึ่งพา
  • ติดตั้ง / ถอดง่าย
  • สินค้าคงคลังซอฟต์แวร์
  • รองรับการอัพเกรด / ดาวน์เกรดรวมถึงการจัดการไฟล์การกำหนดค่า
  • แพคเกจแหล่งที่มาโดยทั่วไปเอกสารกระบวนการสร้างของคุณและโดยอัตโนมัติสำหรับคุณเมื่อมันเขียน
  • ลงนามแพ็คเกจ
  • และอื่น ๆ.

เมื่อคุณเริ่มทำงานจากแหล่งข้อมูลเท่านั้นคุณจะสูญเสียฟีเจอร์ที่ยอดเยี่ยมเหล่านี้ทั้งหมดและสิ่งต่าง ๆ เริ่มยุ่งเหยิงอย่างรวดเร็ว

เพื่อที่จะแก้ปัญหา spesific ของคุณคุณควรตรวจสอบที่เก็บ ubuntu backportsบางทีพวกมันอาจมี NGinx รุ่นที่ปรับปรุงแล้วที่คุณสามารถใช้ได้

หากพวกเขาไม่มีเวอร์ชั่นที่เหมาะสมแล้วทางออกที่ดีที่สุดคือสร้างแพ็คเกจอูบุนตู backported ด้วยตัวคุณเอง มันไม่ได้ยากขนาดนั้นและมันก็ทำงานได้น้อยกว่าการคอมไพล์จากซอร์สด้วยตนเองทุกครั้ง โดยทั่วไปแล้ว Backporting นั้นจำเป็นต้องนำซอร์สโค้ดจาก Ubuntu มาแทนที่ไฟล์ upsteam tar.gz เก่าด้วยไฟล์ล่าสุดที่คุณต้องการและสร้างแพ็คเกจใหม่

คุณสามารถใช้คำแนะนำนี้เพื่อช่วยคุณสำรองแพคเกจ


8

ฉันพบว่ามันค่อนข้างสะดวกในการติดตั้งรุ่นที่แตกต่างกันในสถานที่แยกต่างหากและเพียงเชื่อมโยงกับรุ่นที่คุณต้องการใช้เช่น:

lrwxr-xr-x  1 root  wheel     7B Jun  7 18:26 /usr/local/foo -> foo-1.0
drwxr-xr-x  2 root  wheel   512B Jun  7 18:26 /usr/local/foo-1.0
drwxr-xr-x  2 root  wheel   512B Jun  7 18:26 /usr/local/foo-1.1

ประโยชน์คือ:

  • ลดการหยุดทำงานของบริการระหว่างการอัพเกรด
  • ย้อนกลับง่าย
  • คุณยังสามารถใช้เส้นทางเดียวกันได้เช่น /usr/local/foo/bin/bar

แน่นอนคุณยังคงต้องสมัครใหม่การกำหนดค่าการเปลี่ยนแปลงใด ๆ ที่คุณเคยทำกับรุ่นก่อนหน้า แต่การที่คุณสามารถใช้ระบบบางรุ่น (RCS / SVN / GIT) หรือเครื่องมือจัดการการกำหนดค่าเช่นBcfg2

และแน่นอนว่ามันเหมาะสำหรับโฮสต์ไม่กี่คนเท่านั้น


นี่คือสิ่งที่ฉันทำในบางกรณีที่การสร้างแพ็คเกจไม่ใช่คำตอบที่เหมาะสมยกเว้นว่าฉันมักจะใช้ / opt แทน / usr / local
freiheit


1

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


1

ไม่มีทางที่ดี เหตุผลที่สร้างแพคเกจการจัดการที่มีประสิทธิภาพคือการแก้ปัญหานี้มาก การอัพเกรดและถอนการติดตั้งสิ่งที่คอมไพล์ซอร์สนั้นทำได้ยาก

ฉันเห็นด้วยกับทอมและเดวิด

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


0

ฉันเกรงว่านี่จะเป็นวิธีเดียวเท่านั้น หากคุณมีเซิร์ฟเวอร์มากขึ้นในการรักษา - พิจารณาการมีสภาพแวดล้อมการทดสอบแยกต่างหากที่คุณรวบรวมและอาจเป็นผลแพคเกจของการรวบรวมของคุณ

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

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