
我正在嘗試使用 ubuntu 14.04 解決“如何永久添加路徑”。如果我有一個程式說samtools-1.2
我想添加到路徑,我想我會這樣做:
export PATH=$PATH:home/cmccabe/Desktop/NGS/samtools-1.2 >> .bashrc
然後驗證:
cat ~/.bashrc
答案1
為了實現這一點,您需要使用/etc/profiles.d/
您想要的名稱建立新文件,但請確保它.sh
以例如...結尾samtools.sh
,然後在文件中放置以下內容:
#!/bin/sh
export PATH=$PATH:/home/cmccabe/Desktop/NGS/samtools-1.2
之後您將需要source /etc/profile
透過命令列運行。
注意:字元export PATH=$PATH:home/cmccabe/Desktop/NGS/samtools-1.2
後缺少斜線:
。
答案2
較短的答案。
那麼,即使命令有效,您是否 100% 確定您知道自己在做什麼?因為在我看來,在使用者桌面上新增一個目錄永久系統路徑對我來說似乎有點不對勁。像這樣的東西應該sudo make install
在原始碼編譯後作為系統範圍的安裝進行安裝。
也就是說,這是我對你正在嘗試做的事情的細分,為什麼它不起作用,可以採取什麼措施來補救它以及過去的——就像我剛才說的——為什麼這不是一個好主意。
更長的答案。
首先,這個指令不會執行任何動作:
export PATH=$PATH:home/cmccabe/Desktop/NGS/samtools-1.2 >> .bashrc
它錯誤地混淆了一些概念。
- 首先,如果您使用 啟動命令,
export PATH=
那麼所要做的就是指派一個新PATH
值。 - 接下來,您新增的路徑不正確:
home/cmccabe/Desktop/NGS/samtools-1.2
。如果有的話,應該是/home/cmccabe/Desktop/NGS/samtools-1.2
;請注意該路徑前面的斜線。 - 最後,這
>> .bashrc
在某種程度上是正確的,但之前發生的事情是如此不正確,所以這並不重要。告訴>>
Bash 將其前面的內容附加到.bashrc
.由於第一個命令是export PATH=
,因此不會輸出任何內容。所以附加的.bashrc
只是一個空白行。並且 應該.bashrc
是您使用者的主目錄,因此請務必~/
在名稱前面加上 ,如下所示:~/.bashrc
。
這真實的命令(如果這是您想要的命令)將是這樣的;但請不要運行它:
echo export PATH=$PATH:/home/cmccabe/Desktop/NGS/samtools-1.2 >> ~/.bashrc
這裡的關鍵是echo
它只會將其後面的任何內容列印到 中,而不對其進行操作.bashrc
。然後你會運行source ~/.bashrc
,如果你運行它echo $PATH
應該一切就緒。
綜上所述,這似乎不是一個好主意。
這是您的系統,因此請按照您的意願使用它。但看看什麼samtools-1.2
是的,這只是該程式的源代碼。如果你編譯它然後或許PATH 設定/home/cmccabe/Desktop/NGS/samtools-1.2
是有意義的。但即便如此,處理二進位檔案的最佳方法是將它們實際安裝在系統上,透過sudo make install
它將所有相關檔案放置在正確的位置,然後將samtools
二進位檔案安裝到/usr/local/bin
其中應該已經成為你的路徑的一部分。
也就是說,如果您只是進行了基本編譯samtools-1.2
並想對其進行測試,那麼將其設定為指向用戶桌面上的目錄是有意義的。但除此之外,你的問題是永久將程式新增到您的路徑中。在那種情況下我會從不推薦您曾經將使用者桌面上的目錄永久新增到您的路徑中。失去桌面上的東西的風險太大了。