2011-09-14 47 views
0

如果您的應用程序依賴於正在安裝的其他應用程序,則理想情況下希望安裝程序自動查找該依賴路徑。在Windows上,您可以使用註冊表,但Mac/Linux如何?在這種特殊情況下,它是一個C++應用程序,如果這有所幫助的話。在Mac/Linux上查找已安裝的應用程序

+1

使用軟件包管理器。在Linux上,建立一個'deb'或'rpm'軟件包。使用標準構建實用程序,您可以做到這一點,以便分配維護人員可以輕鬆編譯適合其分配的程序包。 –

+0

「安裝程序」在Linux? – PlasmaHH

+0

@PlasmaHH當然。至少我是這麼認爲的 - Linux用戶如何在PC上獲得Flash? –

回答

0

通常,在UNIX系統上,您可以期望所有程序駐留在$ PATH中,而不是分佈在愚蠢命名和部分本地化的目錄的大雜燴集合中。所以,基本上你不需要找到任何依賴路徑 - 你只需通過execvp調用另一個「app」(程序),並且libc負責遍歷$ PATH的條目並找到可執行文件。

在傳統的UNIX模型中,您不檢查安裝程序中的任何內容,而只是在運行時檢查可執行文件是否可用(例如,)。

1

如果您嘗試通過Linux上的任何公共軟件包管理器(apt,yum)分發您的應用程序,則可以將該應用程序作爲依賴項添加。 如果你自定義安裝腳本的路線,你需要訴諸某種hackery。要麼找出系統上正在使用哪個軟件包管理器,並嘗試使用它查詢(如果其他應用程序未安裝軟件包管理器,則可能會失敗)或嘗試諸如which required_app之類的操作。

如果你想做正確的事情,那就去第一個吧。

1

在Mac OS X中,如果您正在尋找捆綁在典型.app包中的應用程序,則可以使用Spotlight從其捆綁ID使用命令行實用程序mdfind(1)查找它。例如,要確定Firefox是否已安裝(以及在哪裏),請運行以下命令:

mdfind 'kMDItemCFBundleIdentifier == org.mozilla.firefox' 
相關問題