Không cài đặt tập tin pkg


14

Có khả năng nào để tạo một bản cài đặt không giám sát của gói pkg không?

Ví dụ: tạo mpkg và chạy tập lệnh đã cài đặt gói thông qua bảng điều khiển và trình cài đặt.

Bối cảnh: Tôi đã phải triển khai một gói cho nhiều enduser osx. Chúng tôi không có máy tính để bàn táo và không có quyền truy cập root vào các máy này. đây là gói pkg được cấu hình sẵn, nhưng nếu người dùng khởi chạy nó theo cách thông thường, cấu hình trước sẽ bị ghi đè. Trên các cửa sổ, tôi nhận ra điều này với một kho lưu trữ tự thực hiện, nó sẽ khởi chạy một msi với cài đặt im lặng. Trên linux tôi xây dựng các gói rpm / deb nhưng trên osx tôi không tìm thấy cách nào phù hợp :(

Câu trả lời:


17

Trả lời ngắn gọn: có.

Câu trả lời dài: Có, nhưng một câu trả lời đầy đủ cho câu hỏi này bao gồm câu trả lời kỹ thuật và mối quan tâm thực tế.

Đầu tiên, câu trả lời kỹ thuật

Bạn có thể cài đặt .pkg hoặc .mpkg bằng cú pháp này:

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

Nếu trình cài đặt không được 'ký' đúng cách, bạn sẽ cần thêm -allowUntrusted

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

Bạn cũng có thể cần chỉ định nơi bạn muốn cài đặt, sử dụng -target /(Tôi không chắc chắn 100% điều này là bắt buộc , nhưng đó là một ý tưởng hay):

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

Bây giờ, vấn đề là sudosẽ hỏi bạn mật khẩu quản trị viên khi bạn cố chạy installer. Nếu bạn muốn tự động hóa việc này, bạn cần nói với máy Mac của bạn không yêu cầu sudomật khẩu của bạn khi chạy trình cài đặt. Để làm điều đó, bạn có thể thêm dòng này vào /etc/sudoerstệp của mình :

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

Xem man visudohướng dẫn chỉnh sửa tập tin đó.

Thứ hai, mối quan tâm thực tế

Nếu bạn là người duy nhất sử dụng máy Mac của mình, việc thêm dòng trên vào /etc/sudoerskhông phải là vấn đề lớn.

Tuy nhiên, nếu đây là máy Mac được chia sẻ, thì những người khác trong nhóm 'quản trị viên' sẽ có thể chạy /usr/sbin/installermà không cần được nhắc nhập mật khẩu.

Ngoài ra, rõ ràng nếu ai đó xâm nhập vào tài khoản 'quản trị viên của bạn, về mặt lý thuyết, họ cũng có thể gây ra sự nghịch ngợm /usr/sbin/installer. Mặc dù tôi không thể nghĩ chính xác những gì họ sẽ làm, nhưng đó là sự đánh đổi an ninh so với sự thuận tiện.

Thứ ba, một kịch bản github

Tôi đã viết pkginstall.sh để thực hiện một số việc hay ho như đăng nhập quy trình, cũng như cho bạn biết liệu bạn có nên khởi động lại hay không sau khi cài đặt gói.

Cuối cùng nhưng không kém phần quan trọng: Tự động hóa "thế nào?"

Theo như cách bạn muốn tự động hóa việc cài đặt, điều đó phụ thuộc vào chi tiết cụ thể hơn về những gì bạn đang cố gắng thực hiện. Ví dụ, bạn có thể tạo một thư mục như ~ / Action / AutoInstallPKG / và yêu launchdcầu cài đặt bất kỳ tệp .pkg hoặc .mpkg nào được thêm vào thư mục đó, sau đó di chuyển nó sang một bên.

Tôi đã có ý định làm một cái gì đó như thế này trong một thời gian dài, và vì vậy cuối cùng tôi đã đặt nó lại với nhau. Bạn có thể tìm thấy nó tại https://github.com/tjluoma/autopkginstall . Hướng dẫn cài đặt được bao gồm tại Github, vì vậy tôi sẽ không lặp lại chúng ở đây.


Thx, đây là một bước tiến lớn đối với tôi, nhưng vẫn chưa phải là giải pháp cuối cùng. Tôi phải triển khai một gói cho nhiều máy Mac khác nhau (vì vậy sudoes không phải là một tùy chọn), trong đó người dùng không được phép thay đổi cấu hình. Vì vậy, cách tốt nhất (hoạt động trên windows và linux) trong đó một tệp mà người dùng có thể nhấp vào và phần còn lại sẽ được thực hiện tự động. Nhưng tôi sẽ kiểm tra giải pháp của bạn, có thể kết hợp với tảng băng trôi hoặc các gói tôi có thể tìm thấy giải pháp phù hợp. Vì vậy, hy vọng điều này sẽ ổn nếu tôi để câu hỏi này mở thêm vài ngày nữa để những người khác có thể đóng góp câu trả lời cho ...
Megachip

3
Ngoài ra, để tham khảo trong tương lai, các chi tiết như thế này sẽ hữu ích để đưa vào câu hỏi ban đầu của bạn. Câu trả lời cho người dùng cuối muốn tự động hóa cài đặt trên hệ thống của họ là hoàn toàn khác nhau đối với ai đó đang cố gắng phân phối cho nhiều máy Mac và nhiều hệ điều hành. Bạn không có khả năng tìm ra cách hoạt động giống như trên Windows và Linux và Mac OS X. Ngay cả các công ty lớn như Dropbox cũng có các trình cài đặt khác nhau cho mỗi HĐH.
TJ Luoma

Bạn nói đúng, xin lỗi về điều đó. Có thể tôi nên thêm điều này vào câu hỏi.
Megachip

Cảm ơn một lần nữa cho tất cả các công việc của bạn, tôi đã cụ thể hóa câu hỏi của tôi [ở đây] ( apple.stackexchange.com/questions/120026/ .). Autopkginstall của bạn là một thứ tốt, nhưng nó đòi hỏi tôi phải "cài đặt" này trên mọi máy khách, điều này là không thể. Có vẻ câu hỏi của tôi ở đây không đủ cụ thể. Xin lỗi vì điều đó
Megachip

2

Tôi nghĩ rằng bạn có thể nhảy rất gần với câu trả lời của riêng bạn. Bạn đề cập rằng bạn không có Remote Desktop của Apple. Tôi sẽ khuyên bạn nên xem xét nó cho những gì bạn đang cố gắng làm. Tôi sử dụng nó như bạn đang mô tả mọi lúc - Tôi có một tệp .pkg cần được cài đặt trên nhiều máy tính trong mạng LAN của tôi, tôi nhấn mạnh các máy tính tôi muốn cài đặt và nói với Remote Desktop để cài đặt nó. Nó làm được nhiều hơn thế, nhưng nó S do thực hiện các cài đặt từ xa này cho bạn. Đó là $ 80 cho một giấy phép với khách hàng không giới hạn.

Nếu $ 80 là một điểm gắn bó - bạn có thể nhìn vào munki , đó là

"một bộ công cụ, được sử dụng cùng với kho lưu trữ gói và siêu dữ liệu gói dựa trên máy chủ web, có thể được quản trị viên OS X sử dụng để quản lý cài đặt phần mềm (và trong nhiều trường hợp loại bỏ) trên máy khách OS X."

Tôi đã không sử dụng nó cho mình, nhưng rất tôn trọng những người mã hóa nó và sử dụng nó trong cuộc sống thực. Nó được thiết lập và hoạt động nhiều hơn một chút so với Remote Desktop - nhưng cũng có nhiều tùy chọn hơn.

Hy vọng rằng bạn có thể sử dụng một trong hai chương trình này để làm những gì bạn đang theo đuổi.


Vâng, nhưng theo tôi biết bạn cần quyền truy cập root để sử dụng máy tính để bàn từ xa?
Megachip

Bạn sẽ cần quyền truy cập của quản trị viên để thiết lập máy tính từ xa trên máy khách. ARD sẽ không cho phép bạn chỉ cài đặt các tệp trên bất kỳ máy Mac nào bạn thấy trên mạng sẽ không hoạt động. :)
evilblender

Khả năng này không được đưa ra, xin lỗi.
Megachip

2

Cuối cùng, nhờ giải pháp dr.nixon cho câu hỏi cụ thể của tôi , tôi đã phải xử lý việc tạo ra một bản cài đặt không giám sát như được mô tả trong câu hỏi thông qua Platypus .

Người dùng phải khởi động ứng dụng, phần còn lại sẽ tự động thực hiện.


Người dùng có thể đặt nó trong các mục khởi động để luôn luôn khởi động khi khởi động.
AnneTheAgile
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.