簡體   English   中英

ubuntu / linux中具有相同名稱的多個二進制文件

[英]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。

切勿更改已安裝軟件包的內容。 這樣的更改可能會導致很難在系統中發現問題,並且無論如何,它們很可能會在后續更新中再次被覆蓋。 還有其他選擇:

  1. 顯然,您可以為可執行文件選擇其他名稱
  2. 如果可執行文件是“個人安裝”,通常將~/bin用於這種方法,則將其放在$PATH另一部分
  3. 使用傳統的/usr/local/bin位置進行本地添加的“狂野”安裝,這樣,干凈包與系統內部狂野安裝文件之間便存在某種形式的清晰分離
  4. 將軟件存儲在其他位置,並將其放在個人或系統范圍的$PATH變量中
  5. 以另一個名稱存儲您的可執行文件,並為其創建一個alias (請參閱man alias以獲取解釋),該man alias允許使用某種名稱來調用它,從而以這種方式“隱藏”原始命令。 為此,可執行文件可以使用絕對路徑進行尋址,因此不必$PATH變量中找到它。

我個人認為,選項2.和5.最好是“個人安裝”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM