OSX安装程序更改安装目录

时间:2011-10-13 07:57:40

标签: macos command-line-interface

我有一个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的“根路径”。

2 个答案:

答案 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):

  1. 卷装入点(man installer),设备节点(/Volumes/HDD)或卷UUID(/dev/disk0s5)。

  2. 376C4046-083E-334F-AF08-62FAFBC4E352(例如-dominfoLocalSystem)返回的任何值,例如。

  3. 你写道:

      

    我有一个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等技术)。所以,一般来说,你只能重新定位一个已经构建了重定位的包