天天看點

本地部署 explainshell (指令行解釋服務)

前段時間我們 分享了explainshell.com 一個指令行解釋的網站 ,它會分析指令的幫助文檔,根據你想查詢的指令參數來抽取對應的解釋,然後非常清晰地顯示出來。

本地部署 explainshell (指令行解釋服務)
然而,有時我們會有本地查詢的需求,比如:

  • 沒有網絡或網絡很差(可能是沙漠裡的無人區,或者管理嚴格的公司)
  • 本機上的指令網站上沒有收錄其幫助文檔,或者收錄的是不比對的版本的文檔

本文将介紹如何在本地架設explainshell服務。放心,這很容易。

首先我們需要将explainshell的git倉庫克隆到本地:

git clone https://github.com/idank/explainshell.git

然後是安裝需要的依賴。首先要安裝mongodb,在Debian/Ubuntu下可以通過如下指令安裝:

sudo apt-get install mongodb

然後是python的一些庫,可以自動安裝:

cd explainshell

pip install -r requirements.txt

之後是用mongodb加載分類資料:

mongorestore dump/explainshell && mongorestore -d explainshell_tests dump/explainshell

好了,差不多完成了,運作下測試,確定沒出什麼問題:

make tests

測試O.K.之後,我們添加下man page。倉庫裡自帶的man page屈指可數,僅供測試之用。我們需要将本機上的man page添加過來。

rm -r manpages/1 manpages/2

ln -s /usr/share/man/man1 manpages/1

ln -s /usr/share/man/man8 manpages/8

python explainshell/manager.py --log info echo

注意我們使用了軟連結,這樣不會占用額外的磁盤空間,最重要的是,我們的作業系統更新軟體之後我們不需要重複添加。

好了,現在隻需啟動服務就可以了

make serve