ฉันจะเรียกใช้การปรับปรุงอย่างรับผิดชอบโดยอัตโนมัติบน Arch Linux ได้อย่างไร


15

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

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

  • เอาท์พุทเต็มรูปแบบของpacmanไม่จำเป็น ฉันไม่สนใจว่าการดาวน์โหลดใช้เวลานานแค่ไหนหรืออัปเดต 46 จาก 53
  • ส่วนใหญ่ฉันไม่สนใจเกี่ยวกับความสำเร็จ
  • ฉันสนใจข้อผิดพลาด หากการอัพเดทไม่สำเร็จฉันต้องการทราบเกี่ยวกับมันและข้อความแสดงข้อผิดพลาดเฉพาะควรได้รับการแก้ไข
  • ฉันสนใจเกี่ยวกับ "ประกาศ" ที่มอบให้ในระหว่างการติดตั้ง ตัวอย่างเช่นการอัพเดต systemd ของวันนี้กล่าวว่า:

    :: coredumps are no longer sent to the journal by default. To re-enable:  
    echo >/etc/sysctl.d/50-coredump.conf \  
        "kernel.core_pattern=|/usr/lib/systemd/systemd-coredump %p %u %g %s %t %e"
    

    หรือระบบไฟล์สร้างสิ่งนี้:

    warning: /etc/group installed as /etc/group.pacnew  
    warning: /etc/passwd installed as /etc/passwd.pacnew  
    warning: /etc/shadow installed as /etc/shadow.pacnew
    

    หมวดหมู่สุดท้ายนี้เป็นสิ่งที่กระตุ้นให้ฉันถามคำถามนี้เพราะดูเหมือนว่าสิ่งเหล่านี้จะไม่สอดคล้องกันมากในชุดแพ็กเกจ ดูเหมือนว่าสิ่งเหล่านี้จะถูกสร้างขึ้นโดยpost_upgrade()คนอื่นโดยinstall()ฯลฯ บางครั้งพวกเขาเขียนไปยัง stdout บางครั้งเพื่อ stderr รูปแบบของข้อความแตกต่างกันอย่างมาก: บางครั้งบล็อกทั้งหมดถูกนำหน้าด้วยการเยื้องในบางครั้งบางครั้งก็มีสตริง echoed เปล่า

ฉันต้องการทราบเกี่ยวกับสิ่งต่าง ๆ ที่อาจต้องใช้การแทรกแซงของฉันในระบบ แต่ไม่ต้องสนใจอย่างอื่น มีเครื่องมือในการจัดการข้อมูลนี้อย่างชาญฉลาดและช่วยให้การบริหารระบบง่ายขึ้นหรือไม่ มีวิธีการรับเอาท์พุทที่สร้างขึ้นโดยแพคเกจแยกต่างหากจากกระบวนการ pacman ติดตั้งพวกเขา? หรือฉันเองที่จะเขียนโปรแกรมแยกวิเคราะห์บางอย่างที่กรองสิ่งที่ไม่เป็นอันตรายออกจากบันทึกการติดตั้ง

¹ก่อนที่คุณจะกระโดดข้ามวิธีโง่นี่คือโปรดทราบว่าฉันฉลาดพอที่จะไม่ทำเช่นนี้ในเซิร์ฟเวอร์การผลิตและไม่มีการสำรองข้อมูลเต็มระบบตาม snapshot ที่จะทำให้การกู้คืนง่ายในกรณีที่เกิดภัยพิบัติ


สิ่งแรกที่ผมจะทำคือการเอาyaourtแท็กทั้งจากคำถามและรูปแบบความคิดของคุณ: พยายามที่จะทำเช่นนี้กับ Repos อย่างเป็นทางการจะเป็นเรื่องยากพอเพิ่มแพคเกจที่สุ่มจาก AUR การผสมจะทำให้มันเพ้อฝัน ...
jasonwryan

โอ้และนี่ไม่ใช่ความคิดที่โง่ แต่มันผลักดันอย่างมากกับวิธีการทำงานของ Arch การใช้งานcheckupdatesและ-Syuวันละครั้งเป็นงานที่ไม่สำคัญ ฉันไม่เห็นประโยชน์ที่แท้จริงใด ๆ สำหรับงานที่คุณเสนอทั้งหมด
jasonwryan

@ Jasonwryan ฉันหมายถึงการขยายตัว แต่จริงๆแล้วฉันมีแพ็คเกจ AUR บางตัวที่ฉันต้องการให้เหมาะกับเวิร์กโฟลว์เดียวกัน ปัจจุบันฉันใช้งาน yaourt อย่างกว้างขวางและพลาดความจริงที่ว่าไม่มีการสนับสนุนแบบแห้งสำหรับการดำเนินการจัดการแพคเกจ! : /
คาเลบ

2
DNA of Arch ทำให้มือของคุณสกปรก: นี่ไม่ใช่วิธีที่จะวิ่ง คุณอาจไปถึงที่นั่น แต่มันจะเป็นชัยชนะของ Pyrrhic และหากมีการบันทึกไว้ที่นี่จะนำมือใหม่จำนวนมากมาสู่หน้าผาที่พวกเขาไม่ได้เตรียมตัวไว้อย่างสมบูรณ์ ...
jasonwryan

2
ฉันใช้เวลาสักพักเมื่อปีที่แล้วและได้ข้อสรุปว่าวิธีเดียวที่จะประสบความสำเร็จในการอัพเกรดโดยไม่ต้องมีระบบฆ่าเป็นประจำคือการสร้างภาพใหม่ (ซึ่งดูเหมือนจะเป็นจุดทดสอบพื้นฐานและเชื่อถือได้ใน Arch) เครื่องมือการจัดการ อาจมีการอัปเดตตัดสินเล็กน้อย แต่มี 3-4 ในระยะเวลา 6 เดือนที่จะท่อระบบโดยไม่มีการแทรกแซงด้วยตนเอง
Matt

คำตอบ:


11

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

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

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

SYNC OPTIONS
...
-w  --downloadonly
    Retrieve all packages from the server, but do not install/upgrade anything.

จากนั้นคุณสามารถตั้งค่าcronงานให้ทำงานsudo pacman -Syuwได้ ฉันไม่คุ้นเคยอย่างมากกับcronความสามารถในการจัดตารางเวลา อย่างไรก็ตามถ้ามันสามารถทำงานได้เฉพาะหลังจากเงื่อนไขที่ระบุ (ตัวอย่างเช่นคำสั่งที่ส่งคืนค่าเฉพาะ) ดังนั้นมันจะเป็นเรื่องเล็กน้อยที่จะทริกเกอร์การดาวน์โหลดแพคเกจใหม่ตามต้องการ

ฉันจะจินตนาการว่าใช้การตรวจสอบกับcheckupdates | wc -lตัวอย่างเช่น ถ้ามันคืนค่าตัวเลขใด ๆ ที่สูงกว่าศูนย์คุณสามารถเปิดการดาวน์โหลดได้ อย่างไรก็ตามสิ่งนี้จะไม่แทนที่การทำงาน-Syuเมื่อคุณอยู่และพร้อมที่จะจัดการกับการอัพเกรด

/var/log/pacman.logสำหรับส่วนสุดท้ายของคำถามของคุณที่จะได้รับการส่งออกของสิ่งที่เกิดขึ้นในระหว่างการอัพเกรดที่คุณกำลังมองหา มันมีข้อมูลข้อผิดพลาดทั้งหมดที่คุณอาจสนใจ


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

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


2
ที่จริงสำหรับการประกาศอย่างเป็นทางการเกี่ยวกับแพคเกจที่จะต้องมีการแทรกแซงคู่มือฉันอยากจะแนะนำให้คุณทำตามซุ้มประตู dev สาธารณะและโค้งทั่วไป
HalosGhost

นอกจากนี้ @jasonwryan ถูกต้องทั้งหมด การทำเช่นนี้pacmanอาจเป็นไปได้ ทำกับมันyaourtไม่ได้
HalosGhost

yaourtอันที่จริงแล้วมันทำงานได้ดีกว่านี้เล็กน้อยpacmanอย่างที่ฉันคิดว่าคุณหมายความว่าการกำหนดค่าเริ่มต้นของมันเป็นมากกว่าผู้ช่วย aur จะทำลายสิ่งต่าง ๆ ในระยะยาว อย่างไรก็ตามสามารถกำหนดค่าได้อย่างมากและสามารถรักษาต้นไม้ต้นกำเนิดได้อย่างมีประสิทธิภาพ ทั้งสองyaourtและpacmanเพียงห่อalpmละค่ะ
mikeserv

หรือผมคิดว่ามันเป็นเรื่องจริงยิ่งที่จะบอกว่าyaourtการตัดpacmanและบางส่วนเพิ่มเติมalpmการทำงานและการตัดpacman alpmแต่ในกรณีใด ๆยื่นออกมาyaourt pacman
mikeserv

ตามที่ระบุไว้ที่นี่ , -Syuwอาจเป็นอันตรายมาก -Sแต่ก็มีความสามารถในการผลิตการปรับปรุงบางส่วนว่ามีการปรับปรุงจะไม่ได้นำไปใช้และซอฟต์แวร์ที่ติดตั้งในภายหลังด้วย
Sparhawk

1

มีสคริปต์เก่าที่ทำได้ดีมาก มันถูกเรียกว่าsafepac

แก้ไข: สคริปต์นี้ยังคงมีอยู่ใน github ที่นี่: https://github.com/bencahill/binfiles/blob/master/safepac

มันทำอะไรและมันทำงานอย่างไร

วิธีที่ฉันอัปเดต Arch คือการอ่านข่าวจากนั้นทำpacman -Syuหรือทำpacman -Syuและถ้ามีอะไรผิดพลาดให้อ่านข่าว ตอนนี้สคริปต์นี้ไม่ทำอะไรเลย: จะได้รับรายการข่าวล่าสุดจากฟีด RSS ทำsedเวทมนตร์และเปรียบเทียบชื่อของแพ็คเกจทั้งหมดที่มีการอัปเดตสำหรับข่าว มันตรงกับ "package-name" และ "package-name-" ในข่าวและหากชื่อแพ็กเกจปรากฏที่ใดที่หนึ่งในข่าวมันจะเพิกเฉยต่อแพคเกจและอัปเดตเฉพาะคนอื่น ๆ ทั้งหมด ด้วยวิธีนี้สิ่งที่อาจผิดพลาดจะถูกเลื่อนออกไปจนกว่าจะมีเวลาในการตรวจสอบเรื่องด้วยมือในขณะที่การอัปเดตที่ไม่สำคัญจะดำเนินการโดยอัตโนมัติ!

โดยปกติเมื่อคุณได้รับการปรับปรุงที่ไม่ราบรื่นคุณอาจไม่ต้องการที่จะsafepacเพิกเฉยต่อแพคเกจบางอย่างเพราะมันยังอยู่ในข่าว นั่นคือสิ่งที่นักอิกลิสต์มีไว้สำหรับ ดังนั้นทุกครั้งที่คุณอัปเดตด้วยตนเองคุณสามารถเพิ่มรายการข่าวที่เกี่ยวข้องลงในรายชื่อที่ไม่ใช้ด้วยซึ่งเป็นหมายเลขของรายการข่าว นอกจากนี้คุณยังสามารถระบุจำนวนข่าวล่าสุดที่คุณต้องการรวมไว้ในการแยกวิเคราะห์ด้วยสวิตช์ สคริปต์ยังฉลาดพอที่จะข้ามรายการที่ไม่มีอยู่ได้ หากคุณพบปัญหาเกี่ยวกับแพคเกจที่มีชื่อสั้นมากที่อาจปรากฏขึ้นโดยพลการในข่าว (เช่น "ใช่") คุณสามารถเพิ่มลงในรายการที่อนุญาตด้วยเพื่อให้พวกเขาจะติดตั้งแม้ว่าพวกเขาจะปรากฏในข่าวsafepac -Ia xxxxxx-nsafepac -Wa

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

การแยกวิเคราะห์pacmanเอาต์พุตเพื่อค้นหาคำเหล่านี้และเพิ่มลงในไดเจสต์:
"note" "pacnew" "ข้อผิดพลาด" "สำคัญ" "คำเตือน" "มีอยู่"

สคริปต์เก่า แต่ความคิดนั้นดีและอาจยังใช้งานได้กับการอัปเดตเล็กน้อยหากมี


ปัญหาหนึ่งที่เป็นไปได้คือการอัปเดตที่สำคัญ (หรือทำลาย) ไม่ได้บอกในข่าว แต่คุณต้องติดตามด้วยตัวเอง ตรงจุดอัพเดตจาก python2 เป็น python3
Lesto

ยังคงคุณสามารถใช้ checkupdates (Pacman-utils) และได้รับรายชื่อของแพคเกจแล้วจากระยะไกลรายการที่อนุญาตให้พวกเขาดีถ้าคุณมีสระว่ายน้ำ แต่แล้วอาจจะดีกว่าที่จะติดตั้งบางสิ่งบางอย่างเช่น repo ท้องถิ่น
Lesto

-2

ฉันใช้ความไม่ลงรอยกันของตัวเองเพื่อจัดการyaourtโดย cron


1
Yaourt ตายอย่างมีประสิทธิภาพ : นี่เป็นความคิดที่ไม่ดีอย่างน่าทึ่ง
jasonwryan

ฉันใช้มาyaourtหลายปีแล้ว มันเป็นเครื่องมือที่ดี แต่สิ่งที่สร้างขึ้นเพื่อ "ห่อ" ได้เปลี่ยนรูปร่างและตอนนี้มันก็ทำอะไรผิดไปหลายอย่างแล้ว ณ จุดนี้มันเป็นปัญหาอย่างมากที่ผู้เขียนของเครื่องมือได้กล่าวว่าแม้พวกเขาจะไม่ใช้มันเองอีกต่อไป หากคุณต้องการผู้ช่วย AUR ฉันขอแนะนำให้คุณลองใช้วิธีใดวิธีหนึ่งที่ได้รับการดูแล ฉันเปลี่ยนมาใช้yayตัวเองและมีความสุขมาก
Caleb

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