我有一个pkg文件,我可以在使用UI启动时更改安装目录,但安装程序的联机帮助页只提到要安装的目标驱动器。
调用安装程序时是否设置了环境变量?
关于目标选项,来自安装程序帮助:
The -target <device> parameter is any one of the following:
(1) One of the domains returned by -dominfo.
(2) Device node entry. Any entry of the form of /dev/disk*.
ex: /dev/disk2
(3) The disk identifier. Any entry of the form of disk*. ex: disk1s9
(4) Volume mount point. Any entry of the form of /Volumes/Mountpoint.
ex: /Volumes/Untitled
(5) Volume UUID. ex: 376C4046-083E-334F-AF08-62FAFBC4E352
所以目标是“硬盘”,而不是应该安装pkg的“根路径”。
答案 0 :(得分:1)
您的问题还不清楚:如果您从GUI运行安装程序并且只提供了一个要安装的驱动器,则无法以简单的方式更改它(意味着:您必须更改安装程序包到安装在与默认提供的位置不同的位置。)
由于您使用的是“cli”-Tag(命令行界面),我认为您尝试不在GUI上运行安装程序,而是从终端运行它。您有更多选择:使用 -target 选项,您可以设置安装程序的安装路径。
-target-option上的手册页信息:
使用-target参数指定目标卷(-tgt是 被接受为同义词)。必须在安装程序时安装它 命令被调用。
有关如何从终端(cli)运行安装程序的其他信息,您可以在我的blog找到。
答案 1 :(得分:1)
大多数软件包管理器包括在基于RPM的Linux系统上重新定位(即更改安装路径)软件包的选项rpm
在OS X上具有选项-relocate
,命令行工具installer
有-target
选项。
但是,正如您所注意到的那样,您不能像-target
的{{1}}
rpm
的参数。
-relocate
的参数仅限于(请参阅-target
):
卷装入点(man installer
),设备节点(/Volumes/HDD
)或卷UUID(/dev/disk0s5
)。
376C4046-083E-334F-AF08-62FAFBC4E352
(例如-dominfo
或LocalSystem
)返回的任何值,例如。
你写道:
我有一个pkg文件,我可以在其中更改安装目录 使用UI启动
如果是这种情况,可以使用CurrentUserHomeDirectory
查询这些信息,如下所示:
-dominfo
,可以在从命令行安装时使用:
installer -verbose -dominfo -pkg <path to your package>
(我查询了多个installer -pkg <path to your package> -target <dominfo as listed above>
个文件,并且都返回pkg
,因此无法分享任何经验。)
请注意,您不能随意重新定位NoDomainsAvailable
文件。原因是包中包含的配置文件,二进制文件和库通常指定或依赖于绝对路径。
包构建器必须主动将这些转换为相对路径(使用安装后脚本和@rpath
等技术)。所以,一般来说,你只能重新定位一个已经构建了重定位的包。