在沒有sudo權(quán)限的Linux服務(wù)器下安裝oh-my-zsh

  • 系里給的服務(wù)器雖然配置很好器罐,但是因為沒有root權(quán)限導(dǎo)致很多工具都要手動安裝魏颓。像Java褂傀、Python之類的常用編譯環(huán)境我可以理直氣壯地發(fā)郵件讓管理員幫忙裝榄鉴,但是zsh這種純屬自己瞎折騰的環(huán)境就不得不靠自己了... 這里記錄一下安裝zsh過程中的各種坑。

1. 安裝ZSH

  • 安裝思路

    1. 沒有sudo權(quán)限意味著無法在/usr/下各個文件夾中創(chuàng)建文件瘤缩,所以只能安裝到自己的home目錄下喇完。
    2. 由于沒有apt-get、yum等各種管理工具剥啤,碰到依賴問題我們都必須一個個手動解決锦溪。環(huán)境變量也得自己添加。
    3. 同時因為權(quán)限不足府怯,無法修改/etc/passwd文件刻诊,也就無法修改自己登錄的默認shell了。我們采取登錄后自動跳轉(zhuǎn)zsh的方法來解決這個問題牺丙。
  • 注意事項

    1. zsh與scp不兼容则涯。因此需要想辦法繞開這個問題(后文有解決辦法)
    2. zsh會強行解釋命令中的通配符(如*等字符)复局,且解釋失敗會報錯并拒絕執(zhí)行命令。這在一些場合非常令人惱火粟判,比如執(zhí)行命令hdfs dfs -cat output/*時亿昏,字符*應(yīng)該交給hdfs系統(tǒng)來處理,用來匹配hdfs文件系統(tǒng)中的文件档礁,而不是由zsh進行解析角钩。解決方法為在命令的兩端加上雙引號,即變?yōu)?code>"hdfs dfs -cat output/*"; 或者一勞永逸呻澜,往~/.zshrc中加入setopt no_nomatch递礼,這會使得zsh在解釋失敗后不報告錯誤,繼續(xù)執(zhí)行命令羹幸。

開始安裝

# 創(chuàng)建zsh的安裝位置脊髓。這個位置是自定義的,只要是在自己的home目錄下即可栅受。版本號最好跟下載下來的zsh版本對應(yīng)将硝,不然會產(chǎn)生混淆。
cd ~
mkdir Applications
mkdir Applications/zsh-5.7.1    

# 下載源碼并把壓縮包命名為zsh.tar.xz
wget -O zsh.tar.xz https://sourceforge.net/projects/zsh/files/latest/download

# 解壓屏镊,這里下載下來的是xz格式袋哼,要先用xz解壓一遍,再用tar解壓闸衫。
xz -d zsh.tar.xz
tar -xf zsh.tar 
cd zsh-5.7.1        # 注意這個版本號要根據(jù)自己的實際情況來

# 配置與編譯。--prefix選項指定安裝目錄
./configure --prefix=$HOME/Applications/zsh-5.7.1   
make
make install

配置zsh環(huán)境

vim ~/.bashrc

# 在.bashrc文件中加入以下命令
export PATH=$HOME/Applications/zsh-5.7.1/bin:$PATH

# 保存并退出vim后诽嘉,導(dǎo)入.bashrc配置
source ~/.bashrc
  • 配置好zsh的環(huán)境變量后蔚出,就可以使用exec zsh命令來切換到zsh了。接下來安裝oh-my-zsh, 只需要以下命令即可:
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

將zsh設(shè)置為默認shell

  • 前面提到虫腋,沒有sudo權(quán)限便無法更改/etc/passwd文件骄酗,也就無法更改默認的登錄shell了。同樣chsh命令也無法使用悦冀。這里我們通過修改.bash_profile來自動切換到 zsh. 將以下命令加到~/.bash_profile中:
[ -f $HOME/Applications/zsh-5.7.1/bin/zsh ] && exec $HOME/Applications/zsh-5.7.1/bin/zsh -l
  • 注意zsh與scp不兼容趋翻,所以不要把該命令寫到.bashrc中。因為當我們使用scp命令從本地連接該Linux服務(wù)器時盒蟆,系統(tǒng)會自動執(zhí)行.bashrc(而不會執(zhí)行.bash_profile)踏烙,如果.bashrc中有切換到zsh的命令,則系統(tǒng)的shell會被切換到zsh, 從而與scp產(chǎn)生兼容的問題历等。

.bash_profile只有當交互式登錄shell時(如系統(tǒng)啟動讨惩、遠程登錄)才會被讀取并執(zhí)行,而.bashrc在交互式登錄與非交互登錄(如使用scp從本地連接到該Linux服務(wù)器)時都會被讀取且執(zhí)行寒屯。

遇到的問題

  • 運行./configure命令時可能會遇到無法找到ncurses-devel的問題荐捻。如下:
    ncurses-devel
  • 這時我們需要手動安裝ncurses-devel.
  • 下載地址為http://ftp.gnu.org/gnu/ncurses/ncurses-6.1.tar.gz
  • 需要注意的是在編譯ncurses-devel之前需要設(shè)置一些編譯選項
# 打開.bashrc
vim ~/.bashrc
# 在.bashrc中加入以下內(nèi)容
export CXXFLAGS=" -fPIC"
export CFLAGS=" -fPIC"
# 保存退出后黍少,用source命令使剛才的改動生效
source ~/.bashrc
  • 安裝ncurses-devel
# 下載
cd ~
wget http://ftp.gnu.org/gnu/ncurses/ncurses-6.1.tar.gz
tar -xf ncurses-6.1.tar.gz
cd ncurses-6.1
mkdir Applications/ncurses-6.1
./configure --prefix=$HOME/Applications/ncurses-6.1 --with-shared
make 
make install
  • 安裝好了之后,還需要配置一些環(huán)境變量
vim ~/.bashrc

# 在.bashrc中加入以下命令.
# 其中環(huán)境變量$NCURSES_HOME的設(shè)置不是必需的处面,這里只是為了引用方便而加入
export NCURSES_HOME=$HOME/Applications/ncurses-6.1
export PATH=$NCURSES_HOME/bin:$PATH
export LD_LIBRARY_PATH=$NCURSES_HOME/lib:$LD_LIBRARY_PATH
export CPPFLAGS="-I$NCURSES_HOME/include" LDFLAGS="-L$NCURSES_HOME/lib"

# 保存并退出vim厂置,然后加載.bashrc
source ~/.bashrc
  • 這時,再繼續(xù)運行以下命令來安裝zsh
cd ~/zsh-5.7.1
./configure --prefix=$HOME/Applications/zsh-5.7.1   
make
make install
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末魂角,一起剝皮案震驚了整個濱河市昵济,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌或颊,老刑警劉巖砸紊,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異囱挑,居然都是意外死亡醉顽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門平挑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來游添,“玉大人,你說我怎么就攤上這事通熄∷衾裕” “怎么了?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵唇辨,是天一觀的道長廊酣。 經(jīng)常有香客問我,道長赏枚,這世上最難降的妖魔是什么亡驰? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮饿幅,結(jié)果婚禮上凡辱,老公的妹妹穿的比我還像新娘。我一直安慰自己栗恩,他們只是感情好透乾,可當我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著磕秤,像睡著了一般乳乌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上亲澡,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天钦扭,我揣著相機與錄音,去河邊找鬼床绪。 笑死客情,一個胖子當著我的面吹牛其弊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播膀斋,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼梭伐,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了仰担?” 一聲冷哼從身側(cè)響起糊识,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎摔蓝,沒想到半個月后赂苗,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡贮尉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年拌滋,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片猜谚。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡败砂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出魏铅,到底是詐尸還是另有隱情昌犹,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布览芳,位于F島的核電站斜姥,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏沧竟。R本人自食惡果不足惜疾渴,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望屯仗。 院中可真熱鬧,春花似錦搔谴、人聲如沸魁袜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽峰弹。三九已至,卻和暖如春芜果,著一層夾襖步出監(jiān)牢的瞬間鞠呈,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工右钾, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蚁吝,地道東北人旱爆。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像窘茁,于是被迫代替她去往敵國和親怀伦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容