无人值守安装pkg文件


14

是否有可能创建无人看管的pkg软件包安装?

例如,创建一个mpkg并运行一个脚本,该脚本通过控制台和安装程序安装了该软件包。

背景:我必须将软件包部署到许多osx最终用户。我们没有Apple桌面,也没有root访问这些计算机的权限。这些是预配置的pkg软件包,但是如果用户以正常方式启动它,则预配置将被覆盖。在Windows上,我通过一个可自我执行的存档实现了这一目的,该存档通过静默安装启动了一个msi。在Linux上,我构建了rpm / deb软件包,但在osx上,我没有找到任何正确的方法:(

Answers:


17

简短的回答:是的。

长答案:是的,但是……对该问题的完整答案包括技术答案和实际问题。

一,技术答案

您可以使用以下语法安装.pkg或.mpkg:

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。如果要自动执行此操作,则需要sudo在运行安装程序时告诉Mac不需要密码。为此,您可以将以下行添加到/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中,所以在此不再赘述。


谢谢,这对我来说是一大进步,但仍不是最终解决方案。我必须将程序包部署到许多不同的Mac(因此sudoes不是一个选择),不允许用户更改配置。因此,最好的方法(在Windows和Linux上都有效)是用户可以单击并自动完成其余操作的文件。但我会检查您的解决方案,可能与冰山或包装结合使用,我可以找到匹配的解决方案。因此,希望如果我将这个问题再开放几天,以便其他人可以对...做出贡献,就可以了……
Megachip 2013年

3
另外,为方便将来参考,类似的详细信息将有助于将其包含在您的初始问题中。对于试图在其系统上自动进行安装的最终用户来说,答案与试图分发到许多Mac和许多OS的人完全不同。在Windows,Linux和Mac OS X上,您不太可能找到相同的工作方式。即使像Dropbox一样大的公司,每个OS的安装程序也不同。
TJ Luoma 2013年

您是对的,对此感到抱歉。可能我应该将此添加到问题中。
Megachip

再次感谢您所做的所有工作,我在[此处](apple.stackexchange.com/questions/120026/…)提出了我的具体问题。您的autopkginstall是一件好事,但它要求我在每个客户端上都进行此“安装”,这是不可能的。看起来我的问题在这里还不够具体。对不起,那
百万级规模集成电路

2

我认为您可能会在跳舞时非常接近自己的答案。您提到您没有Apple的远程桌面。我建议考虑将其用于您尝试做的事情。我一直在使用它,正如您一直在描述的那样-我有一个.pkg文件,该文件需要安装在LAN中的多台计算机上,突出显示要安装在其中的计算机,并告诉远程桌面安装它。它所做的远不止这些,但是它将为您执行这些远程安装。无限客户许可证的价格为80美元。

如果$ 80是症结所在-您可以看看munki,这是

“一套工具,与基于Web服务器的软件包和软件包元数据存储库一起使用,OS X管理员可以使用它们来管理OS X客户端计算机上的软件安装(在许多情况下是删除)。”

我自己并没有使用过它,但是对编码和在现实生活中使用它的人们非常尊重。它的设置和工作比远程桌面要多一些-但也有很多选择。

希望您可以使用这两个程序之一来执行您要执行的操作。


是的,但据我所知,使用远程桌面需要root访问权限?
Megachip 2014年

您将需要管理员访问权限才能在客户端计算机上设置远程桌面。ARD不会让您仅在网络上看到的任何Mac上安装文件,这将毫无意义。:)
evilblender14年

抱歉,没有给出这种可能性。
Megachip

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.