2010-04-09 69 views
3

我想(定期和自動)從許多地方的各種文件和文件夾創建安裝程序。但是,我無法弄清楚如何爲packagemaker命令提供我想要安裝的所有項目的路徑。您可以使用PackageMaker命令從文件列表創建安裝程序嗎?

這是用於內部開發目的,而不是用於客戶分佈。我希望包含的文件是可配置的;使用GUI來添加所有路徑並不是一個真正的選擇,因爲它們會頻繁更改。

我能做的最好的就是使用--watch標誌和touch包中包含的所有我想要的東西。這非常混亂,並且包含偶然在同一時間被訪問的其他文件。沒有一個共同的計劃,我想包括,所以我不能只是--filter休息了。

理想情況下,我只是給它一個完整的路徑文件,它會構建包。如果這不是一種選擇,我不會反對生成XML或將它們放在命令行或任何可用的工具上。我可能在安裝程序中有大約30個文件,但這個數字可能會增加。

有沒有更好的方法來做到這一點?我錯過了這一點嗎?

編輯:認爲我可以將包中所需的所有文件複製到目錄中,然後使用--root標誌。這是做這件事的最好方法嗎?

編輯2:有沒有辦法用符號鏈接來做到這一點,所以我不需要複製文件之前?

+0

哪裏是命令行PackageMaker?我只能找到PackageMaker.app – yairchu 2010-05-30 21:00:53

+3

nm。我找到了答案('/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker --help') – yairchu 2010-05-30 21:23:39

+0

@zekel - 你可以用這個命令行選項發佈一個答案嗎? – petert 2011-10-12 17:16:30

回答

1

(我不是標誌着這個答案是接受了,因爲我真的希望能夠創建在不同位置的文件安裝程序,而無需將其複製到一個臨時目錄。)

按照要求通過petert,以下是您如何從目錄中的文件創建安裝程序。請注意,這不完全是我想要的,因爲它將全部添加到目錄中的文件中。 (我只希望包括一些特定的文件)。

## create the fake root directory (which is also the name of the .pkg installer created) 
## paths below this will be interpreted as absolute when the installer runs 
mkdir -p MyInstaller 

## create some fake stuff to install 
install_to="MyInstaller/$HOME/installed_dir/" 
mkdir -p "$install_to" 
echo 'it worked!' > "$install_to/test.txt" 

## actually create the installer 
/Developer/usr/bin/packagemaker -i com.mycompany.myInstallerName --root MyInstaller 

請注意,您必須提供與-i選項捆綁標識符(或提供的plist。)

+0

謝謝zekel。實際上我發現如果你把所有的文件放在say/tmp/mypackage中,那麼在pmdoc中使用這個絕對路徑,當你在命令行上運行packagemaker時,它會按預期工作。 – petert 2011-10-24 09:06:54

+0

我同意,你必須爲所有必須添加到包中的文件創建一個「暫存」文件夾,但它工作起來很負責任;而蘋果公司現在還不打算開發AppMaker應用程序進一步開發PackageMaker應用程序。燈泡時刻意識到您只需創建一個包含'staging'文件夾的包(pmdoc)doc文件,然後您可以重新使用此文件來創建新版本的任何文件。 – petert 2011-10-26 08:50:35