การติดตั้งไฟล์ pkg แบบอัตโนมัติ


14

มีความเป็นไปได้ที่จะสร้างการติดตั้งแพคเกจ pkg แบบอัตโนมัติหรือไม่?

เช่นสร้าง mpkg และเรียกใช้สคริปต์ที่ติดตั้งแพ็คเกจผ่านคอนโซลและตัวติดตั้ง

แบ็คกราวด์: ฉันต้องปรับใช้แพคเกจกับผู้ใช้หลายคนของ osx เราไม่มีเดสก์ท็อปของ Apple และไม่สามารถเข้าถึงเครื่องเหล่านี้ได้ นี่เป็นแพ็กเกจ pkg ที่กำหนดคอนฟิกไว้ล่วงหน้า แต่หากผู้ใช้เรียกใช้ในแบบปกติการกำหนดค่าล่วงหน้าจะถูกเขียนทับ บน windows ฉันตระหนักถึงสิ่งนี้ด้วยไฟล์เก็บถาวรแบบเรียกใช้งานได้ซึ่งเปิดใช้งาน msi พร้อมการติดตั้งแบบเงียบ บน linux ฉันสร้างแพ็คเกจ rpm / deb แต่บน osx ฉันไม่พบวิธีที่เหมาะสม :(

คำตอบ:


17

คำตอบสั้น ๆ : ใช่

คำตอบยาว: ใช่ แต่…คำตอบเต็มรูปแบบสำหรับคำถามนี้รวมถึงคำตอบทางเทคนิคและข้อกังวลในทางปฏิบัติ

ก่อนคำตอบทางเทคนิค

คุณสามารถติดตั้ง. pkg หรือ. mp4 โดยใช้ไวยากรณ์นี้:

sudo installer -verboseR -pkg "/path/to/pkg/foo.mpkg"

หากตัวติดตั้งไม่ 'ลงชื่อ' อย่างถูกต้องคุณจะต้องเพิ่ม -allowUntrusted

sudo installer -allowUntrusted -verboseR -pkg "/path/to/pkg/foo.mpkg"

คุณอาจต้องระบุตำแหน่งที่คุณต้องการติดตั้งโดยใช้-target /(ฉันไม่แน่ใจ 100% ว่าต้องใช้สิ่งนี้ แต่เป็นความคิดที่ดี):

sudo installer -allowUntrusted -verboseR -pkg "/path/to/pkg/foo.mpkg" -target /

ตอนนี้ปัญหาคือว่าจะไปขอรหัสผ่านของผู้ดูแลระบบของคุณเมื่อคุณพยายามที่จะเรียกsudo installerหากคุณต้องการทำสิ่งนี้โดยอัตโนมัติคุณต้องแจ้งให้ Mac ของคุณไม่ต้องใช้sudoรหัสผ่านเมื่อเรียกใช้ตัวติดตั้ง ในการทำเช่นนั้นคุณสามารถเพิ่มบรรทัดนี้ใน/etc/sudoersไฟล์ของคุณ:

%admin ALL=NOPASSWD: /usr/sbin/installer

ดูman visudoคำแนะนำในการแก้ไขไฟล์นั้น

ประการที่สองความกังวลในทางปฏิบัติ

หากคุณเป็นคนเดียวที่ใช้ Mac ของคุณการเพิ่มบรรทัดด้านบนลงไป/etc/sudoersไม่ใช่เรื่องใหญ่

อย่างไรก็ตามหากนี่เป็น Mac ที่แชร์คนอื่น ๆ ที่อยู่ในกลุ่ม 'admin' จะสามารถทำงานได้/usr/sbin/installerโดยไม่ต้องใส่รหัสผ่าน

นอกจากนี้ยังเห็นได้ชัดว่าถ้ามีคนได้รับในบัญชีของคุณ 'ผู้ดูแลระบบ' /usr/sbin/installerพวกเขาก็สามารถทำได้ในทางทฤษฎีสาเหตุที่ก่อความเสียหายกับ แม้ว่าฉันจะสูญเสียที่จะคิดว่าสิ่งที่พวกเขาจะทำมันก็คือการแลกเปลี่ยนความปลอดภัยกับความสะดวกสบาย

ประการที่สามสคริปต์ GitHub

ฉันเขียนpkginstall.shเพื่อทำสิ่งที่ดีเช่นบันทึกกระบวนการเช่นเดียวกับบอกคุณว่าคุณควรจะรีบูตหลังจากติดตั้งแพคเกจ

สุดท้าย แต่ไม่ท้ายสุด: ทำให้อัตโนมัติเป็น"อย่างไร"

เท่าที่คุณต้องการติดตั้งอัตโนมัติขึ้นอยู่กับเฉพาะเจาะจงมากขึ้นของสิ่งที่คุณพยายามทำ ตัวอย่างเช่นคุณสามารถสร้างโฟลเดอร์เช่น ~ / Action / AutoInstallPKG / และบอกlaunchdให้ติดตั้งไฟล์. pkg หรือ .mpkg ใด ๆ ที่เพิ่มเข้าไปในโฟลเดอร์นั้นแล้วย้ายไปด้านหลัง

ฉันตั้งใจจะทำอะไรแบบนี้มานานแล้วในที่สุดฉันก็รวมมันเข้าด้วยกัน คุณสามารถค้นหาได้ที่https://github.com/tjluoma/autopkginstall คำแนะนำในการติดตั้งรวมอยู่ที่ Github ดังนั้นฉันจะไม่ทำซ้ำที่นี่


ขอบคุณนี่เป็นก้าวสำคัญสำหรับฉัน แต่ก็ยังไม่ใช่ทางออกสุดท้าย ฉันต้องปรับใช้แพคเกจกับแม็คที่แตกต่างกัน (ดังนั้น sudoes ไม่ใช่ตัวเลือก), ที่ผู้ใช้ไม่ได้รับอนุญาตให้เปลี่ยนการกำหนดค่า ดังนั้นวิธีที่ดีที่สุด (ซึ่งทำงานบน windows และ linux) ซึ่งเป็นไฟล์ที่ผู้ใช้สามารถคลิกและส่วนที่เหลือจะทำโดยอัตโนมัติ แต่ฉันจะตรวจสอบวิธีการแก้ปัญหาของคุณเป็นไปได้ร่วมกับภูเขาน้ำแข็งหรือแพคเกจฉันสามารถหาวิธีการจับคู่ ดังนั้นหวังว่านี้ก็โอเคถ้าผมออกจากคำถามนี้เปิดวันบางมากขึ้นเพื่อให้ผู้อื่นสามารถมีส่วนร่วมมีคำตอบ ...
Megachip

3
นอกจากนี้สำหรับการอ้างอิงในอนาคตรายละเอียดเช่นนี้จะเป็นประโยชน์ในการรวมไว้ในคำถามเริ่มต้นของคุณ คำตอบสำหรับผู้ใช้ที่มองหาการติดตั้งแบบอัตโนมัติบนระบบของพวกเขานั้นแตกต่างไปจากเดิมอย่างสิ้นเชิงสำหรับคนที่พยายามแจกจ่ายให้กับ Macs และระบบปฏิบัติการหลายเครื่อง คุณไม่น่าจะหาวิธีที่ใช้งานได้เหมือนกันใน Windows และ Linux และ Mac OS X แม้แต่ บริษัท ที่ใหญ่เท่า Dropbox ก็มีตัวติดตั้งที่แตกต่างกันสำหรับแต่ละระบบปฏิบัติการ
TJ Luoma

คุณพูดถูกต้องขอโทษด้วย เป็นไปได้ฉันควรเพิ่มคำถามนี้
Megachip

ขอบคุณอีกครั้งสำหรับการทำงานทั้งหมดของคุณฉันตอบคำถามของฉัน [ที่นี่] ( apple.stackexchange.com/questions/120026/… ) autopkginstall ของคุณเป็นสิ่งที่ดี แต่ฉันต้องการให้ "ติดตั้ง" นี้ในไคลเอนต์ทุกอันซึ่งไม่สามารถทำได้ ดูคำถามของฉันที่นี่ไม่เป็นรูปธรรมพอ ขออภัยที่
Megachip

2

ฉันคิดว่าคุณอาจจะเต้นใกล้เคียงกับคำตอบของคุณเอง คุณพูดถึงว่าคุณไม่มีเดสก์ท็อประยะไกลของ Apple ฉันอยากจะแนะนำให้พิจารณาสิ่งที่คุณพยายามทำ ฉันใช้มันตามที่คุณอธิบายตลอดเวลา - ฉันมีไฟล์. pkg ที่ต้องติดตั้งในคอมพิวเตอร์หลายเครื่องใน LAN ของฉันฉันจะเน้นคอมพิวเตอร์ที่ฉันต้องการติดตั้งและบอก Remote Desktop ให้ทำการติดตั้ง มันทำอะไรได้มากกว่านี้ แต่มันจะทำการติดตั้งระยะไกลเหล่านี้ให้คุณ มันคือ $ 80 สำหรับใบอนุญาตกับลูกค้าไม่ จำกัด

ถ้า $ 80 เป็นจุดผสาน - คุณสามารถดูmunkiซึ่งก็คือ

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

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

หวังว่าคุณสามารถใช้หนึ่งในสองโปรแกรมนี้เพื่อทำสิ่งที่คุณเป็น


ใช่ แต่เท่าที่ฉันรู้ว่าคุณต้องการเข้าถึงรูทสำหรับการใช้เดสก์ท็อประยะไกล?
Megachip

คุณจะต้องเข้าถึงผู้ดูแลระบบเพื่อตั้งค่าเดสก์ท็อประยะไกลบนเครื่องไคลเอนต์ รพช. จะไม่ยอมให้คุณติดตั้งไฟล์บน mac ใด ๆ ที่คุณเห็นบนเครือข่ายจะไร้ประโยชน์ :)
evilblender

ความเป็นไปได้นี้ไม่ได้รับขอโทษ
Megachip

2

สุดท้ายต้องขอบคุณdr.nixonการแก้ปัญหาของคำถามที่เป็นรูปธรรมของฉันฉันมีที่จะจัดการกับการสร้างติดตั้งแบบอัตโนมัติตามที่อธิบายไว้ในคำถามผ่านทางตุ่นปากเป็ด

ผู้ใช้จะต้องเริ่มแอพที่เหลือจะทำโดยอัตโนมัติ


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