Score:2

Flatpak ไม่อัปเดตแอปเมื่อรันผ่าน cron

ธง us

สคริปต์อย่างง่ายนี้ทำงานอย่างถูกต้องเมื่อเปิดใช้งานด้วยตนเอง:

#!/bin/sh

flatpak -y อัปเดต 2>&1 >> ~/cron/cron-flatpak.log

เมื่อรันด้วย 00 07 * * * sh ~/cron/cron-flatpak.sh (ผู้ใช้ทั่วไปคนเดียวกัน ไม่ใช่รูท crontab) มันสร้างสิ่งต่อไปนี้:

กำลังมองหาการอัปเดตâ¦


 1. org.chromium.Chromium.Codecs เสถียร u flathub < 1.1Â MB
 2. org.chromium.Chromium.Locale เสถียร u flathub < 112.8Â kB (บางส่วน)
 3. org.qbittorrent.qBittorrent เสถียร u flathub < 8.3Â MB



กำลังอัปเดต 1/3⦠                                                                
คำเตือน: ไม่สามารถรับซ็อกเก็ตฟิวส์ revokefs จากผู้ช่วยเหลือระบบ: ไม่อนุญาตให้ใช้งานระบบ Flatpak GetRevokefsFd สำหรับผู้ใช้

กำลังอัปเดต 1/3⦠âââ 13% 41.1 kB/s
กำลังอัปเดต 1/3⦠âââââââââââââââ âââââ 100% 674.8 กิโลไบต์/วินาที
กำลังอัปเดต 1/3⦠âââââââââââââââ âââââ 100% 674.8 กิโลไบต์/วินาที
กำลังอัปเดต 2/3⦠                                                                
คำเตือน: ไม่สามารถรับซ็อกเก็ตฟิวส์ revokefs จากผู้ช่วยเหลือระบบ: ไม่อนุญาตให้ใช้งานระบบ Flatpak GetRevokefsFd สำหรับผู้ใช้

กำลังอัปเดต 2/3⦠âââââââââââââââ âââââ 100% 592 ไบต์/วินาที
กำลังอัปเดต 3/3⦠                                                                
คำเตือน: ไม่สามารถรับซ็อกเก็ตฟิวส์ revokefs จากผู้ช่วยเหลือระบบ: ไม่อนุญาตให้ใช้งานระบบ Flatpak GetRevokefsFd สำหรับผู้ใช้

กำลังอัปเดต 3/3⦠âââââââââââââââ âââââ 100% 0 ไบต์/วินาที
การอัปเดตเสร็จสมบูรณ์

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

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

wizardpurple avatar
cn flag
คุณสามารถติดตั้ง flatpaks เวอร์ชันเฉพาะ เช่น เวอร์ชันเก่า โดยใช้ ```flatpak remote-info --log flathub PACKAGE_NAME``` เพื่อแสดงรายการประวัติคอมมิชชัน จากนั้น 'อัปเดต' flatpak เป็นเวอร์ชันเฉพาะนั้น: ``` อัปเดต flatpak --commit=COMMIT_STRING PACKAGE_NAME``` ใช้แฟล็ก ```--user``` สำหรับแพ็กเกจผู้ใช้ สำหรับแพ็คเกจระบบ sudo จำเป็นต้องติดตั้งคอมมิชชันเฉพาะ
us flag
@wizardpurple การกลิ้งแอปทดสอบของฉันกลับไปใช้คอมมิชชันที่เก่ากว่าช่วยฉันประหยัดเวลาได้มาก ขอบคุณ.
Score:4
ธง cn

ไม่ใช่วิธีแก้ปัญหาหรือเบาะแสที่เป็นไปได้ แต่เป็นการติดตั้ง Chromium ด้วย --ผู้ใช้ ธง (flatpak ใช้ --ระบบ โดยค่าเริ่มต้น) และการอัปเดตทำงานได้ดีใน cron

flatpak ติดตั้ง flathub org.chromium.Chromium # เริ่มต้น มีปัญหา cron
ติดตั้ง flatpak --user flathub org.chromium.Chromium # ไม่มีปัญหา cron

ขออภัย ฉันไม่แน่ใจว่าเหตุใดความสามารถในการอัปเดตระบบ flatpaks จึงลดลงใน cronâอย่างน้อยสำหรับ Chromium flatpak เนื่องจากดูเหมือนว่า flatpak ตัวที่สามสามารถอัปเดตได้ บางทีปัญหาอาจเกิดจากแฟลตแพ็กนั้น

แก้ไข: ฉันพลาดข้อผิดพลาดที่สามในผลลัพธ์ ซึ่งไม่ใช่เฉพาะสำหรับ Chromium

แก้ไข 2: เพียงชี้แจงเพิ่มเติม / ขั้นตอนสำหรับการใช้ของ flatpak --ผู้ใช้ ธง. เนื่องจากแพ็กเกจระบบและผู้ใช้ได้รับการจัดการแยกกัน ซึ่งหมายความว่าการเพิ่ม/การลบรีโมต การติดตั้ง และการอัพเดตต้องทำแยกกันด้วย แพ็คเกจผู้ใช้ไม่สามารถดึงจากระยะไกลของระบบและในทางกลับกัน

# เพิ่มผู้ใช้ระยะไกล
flatpak รีโมตเพิ่ม --ถ้าไม่มีอยู่ --user REMOTE_NAME REMOTE_ADDRESS

# อัปเดตเฉพาะแพ็คเกจผู้ใช้
อัพเดท flatpak --user
us flag
เนื่องจาก cron ทำงานเป็นผู้ใช้แบบโต้ตอบเดียวกันกับที่เรียกใช้ `crontab -e` ข้อแตกต่างเพียงอย่างเดียวระหว่างการติดตั้งแอป flatpak สำหรับระบบและสำหรับผู้ใช้จะต้องอยู่ในไดเร็กทอรีใช่ไหม
wizardpurple avatar
cn flag
ใช่ แพ็คเกจ ```--user``` จะถูกติดตั้งใน ```$HOME/.local/share/flatpak/app/``` และ ```--system``` (วิธีเริ่มต้น) คือ ใน ```/var/lib/flatpak/app/```
us flag
ยอมรับอันนี้เพราะมันสะอาดกว่าโดยเฉพาะอย่างยิ่งเมื่อผู้ใช้ตั้งค่า flatpak ตั้งแต่เริ่มต้น
Score:1
ธง it

งานวิ่งผ่าน ครอน, หรือ ที่, หรือ ชุดไม่ได้ทำงานในสภาพแวดล้อมรันไทม์เดียวกันกับที่คุณมีบนเดสก์ท็อป ไม่มีของคุณ เส้นทาง การเปลี่ยนแปลงหรือการตั้งค่าตัวแปรสภาพแวดล้อมอื่นๆ จะถูกส่งไปยังของคุณโดยอัตโนมัติ ครอน งาน. ตัวอย่างเช่นไม่มี $จอแสดงผลดังนั้นโปรแกรม GUI จึงต้องการการดูแลเป็นพิเศษ (อ่าน ผู้ชาย xhost).

หนึ่งสามารถตั้งค่าตัวแปรสภาพแวดล้อมสำหรับทุกคน ครอน งานใน crontab ไฟล์ อ่าน ผู้ชาย 5 crontab.

ดูผลลัพธ์ของ echo "=== set ==";set;echo "=== env ==";env | sort;echo "=== นามแฝง ===";นามแฝง ในแต่ละสภาพแวดล้อมของคุณ

ตั้งแต่ สั่งการ ส่วนหนึ่งของ crontab บรรทัดถูกตีความโดยค่าเริ่มต้น /ถัง/shซึ่งมีไวยากรณ์ที่ง่ายกว่า /ถัง/ทุบตีฉันขอแนะนำให้มี สั่งการ เป็นสายไปยัง ทุบตี สคริปต์ (ปฏิบัติการ, เมาต์, ขึ้นต้นด้วย #!/bin/bash) ซึ่งตั้งค่าสภาพแวดล้อมแล้วเรียกใช้โปรแกรมที่ต้องการ

us flag
ผลลัพธ์ของ `set` สำหรับบัญชีผู้ใช้ของฉันคือ 72 KB และสำหรับ cron คือ 406 ไบต์ แม้ว่าจะไม่รวมความแตกต่างที่ไม่เกี่ยวข้องอย่างเห็นได้ชัด การทดสอบทีละบรรทัดอาจใช้เวลาหลายปี มีวิธีโหลดสภาพแวดล้อมผู้ใช้ทั้งหมดของฉันเป็น cron หรือไม่ ตอนนี้ฉันกำลังอ่านเกี่ยวกับการจัดหาตัวแปรสภาพแวดล้อม ค่อนข้างแน่ใจว่ามันเป็นทางตันเพราะมันฟังดูชัดเจนเกินไป จะได้รับการกล่าวถึงที่ไหนสักแห่งถ้ามันใช้งานได้
Score:0
ธง us

พบวิธีแก้ปัญหาราคาถูกและสกปรก: รัน flatpak ผ่าน cron ด้วย ซูโด. มีอย่างน้อย 3 วิธีที่จะทำ; ฉันไปกับการเพิ่ม flatpak ไปที่ ซูโดเออร์ แบบนี้:

Cmnd_Alias ​​FLATPAK = /usr/bin/flatpak
myusername ALL=(ALL) NOPASSWD: FLATPAK

สคริปต์จะเปลี่ยนตาม:

#!/bin/sh

sudo /usr/bin/flatpak -y อัปเดต 2>&1 >> ~/cron/cron-flatpak.log

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

ถ้าใครคิดว่าเป็นความคิดที่ไม่ดี โปรดอธิบายว่าทำไม

wizardpurple avatar
cn flag
แล้วการเรียกใช้จาก crontab ของรูทล่ะ ไม่จำเป็นต้องเพิ่ม flatpak ให้กับ sudoers ด้วยวิธีนี้
us flag
นี่คงเป็นหนทางที่สี่ ฉันยังคงสงสัยว่าทำไมมันถึงใช้งานได้ แต่เราอาจจะไม่มีทางรู้

โพสต์คำตอบ

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