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à sudo
sẽ 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 sudo
mậ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/sudoers
tệp của mình :
%admin ALL=NOPASSWD: /usr/sbin/installer
Xem man visudo
hướ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/sudoers
khô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/installer
mà 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 launchd
cầ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.