[英]multiple binaries with same name in ubuntu/linux
我最近安裝了一個webframework播放器( http://www.playframework.com/ ),並希望該播放器在系統路徑(即$ PATH)中具有可執行文件。 但是ubuntu已經定義了一個名為play的命令。 如何用框架二進制路徑覆蓋系統定義的命令,以便在命令行上播放的命令調用框架而不是舊應用程序。
安裝:我下載了該框架的壓縮文件,然后將其壓縮到我的個人文件夾之一中,其中包含文檔和可執行文件。
如果確定您永遠不會使用原始的play命令,則可以刪除二進制文件。 但是總的來說,這不是一個好主意,因為您可能不會想到的某些系統組件可能需要它,而下一次更新可能會還原它。
最好的做法是將play
命令的目錄放在PATH的前面,例如,使用.profile中的PATH=/opt/framework/bin:$PATH
(假設play命令安裝到/opt/framework/bin/play
),啟動Web服務器的腳本,或者需要play
命令的任何位置。
請記住,這不會使您的播放命令成為全局命令。 一個常見的錯誤是將路徑添加到其.profile文件中,然后從crontab調用該程序-crontab腳本將不會執行.profile或.bashrc。
切勿更改已安裝軟件包的內容。 這樣的更改可能會導致很難在系統中發現問題,並且無論如何,它們很可能會在后續更新中再次被覆蓋。 還有其他選擇:
~/bin
用於這種方法,則將其放在$PATH
另一部分 /usr/local/bin
位置進行本地添加的“狂野”安裝,這樣,干凈包與系統內部狂野安裝文件之間便存在某種形式的清晰分離 $PATH
變量中 alias
(請參閱man alias
以獲取解釋),該man alias
允許使用某種名稱來調用它,從而以這種方式“隱藏”原始命令。 為此,可執行文件可以使用絕對路徑進行尋址,因此不必在$PATH
變量中找到它。 我個人認為,選項2.和5.最好是“個人安裝”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.