Большинство менеджеров пакетов включают опции для перемещения (то есть, изменения пути установки) пакета в системах Linux на основе RPM rpm
имеет параметр -relocate
, в OS X инструмент командной строки installer
имеетопция -target
.
Однако, как вы заметили, вы не можете указать произвольный путь в качестве аргумента для -target
, как вы это сделали бы с rpm
s -relocate
Аргументы для -target
ограничены (см. man installer
):
Точка монтирования тома (/Volumes/HDD
), узел устройства (/dev/disk0s5
) или томUUID (376C4046-083E-334F-AF08-62FAFBC4E352
).
Любое из значений, возвращаемых -dominfo
(например, LocalSystem
или CurrentUserHomeDirectory
), например.
Вы пишете:
Я получил файл pkg, в котором я могу изменить каталог установки при запуске с использованием пользовательского интерфейса
В этом случае эту информацию, вероятно, можно запросить с помощью -dominfo
вот так:
installer -verbose -dominfo -pkg <path to your package>
и может использоваться при установке из командной строки:
installer -pkg <path to your package> -target <dominfo as listed above>
(я запросил несколько pkg
файлов и все возвращают NoDomainsAvailable
, поэтомуне может поделиться опытом.)
Имейте в виду, что, вы не можете произвольно переместить pkg
файл .Причина в том, что файлы конфигурации, двоичные файлы и библиотеки, включенные в пакет, обычно указывают или зависят от абсолютных путей.
Компоновщик пакетов должен активно преобразовать их в относительные пути (используя сценарии и методы постинсталляциикак @rpath
).Так что, вообще говоря, вы можете перемещать только пакет, созданный с учетом перемещения .