天天看點

将Hexo環境遷移到Repl

拟準備跳槽開溜,故将原來電腦的Hexo環境移除,改為放到Repl雲IDE上。Repl上面還是需要折騰一番才能把Hexo調通的,畢竟這個部落格需要連接配接3個Github的倉庫才能運作。

我們還是使用Bash語言的Repl來搭建,Bash簡直是萬金油,凡是調用較多Linux指令的基本上都得用Bash的Repl。

主要需要解決這些問題:

  • Repl每次會自動清空

    .ssh

    的密鑰資訊
  • Repl自帶了NPM卻沒有提供Hexo

先通過

git clone

把源碼倉庫

cms_source

拉過來,再把主題倉庫

hexo_next_source

拉過來,把後者倉庫全部檔案移到

cms_source

倉庫的

/themes/next/

目錄下面去。

拉Github代碼有可能會報Permission Denied,遇到此問題需要先配置使用者名和郵箱。

git config --global user.name "No5972"
git config --global user.email "[email protected]"
           

進到源碼倉庫

cms_source

裡面,安裝Hexo。執行:

npm install hexo-cli

需要手動設定一下環境變量

PATH

添加Hexo可執行檔案的路徑:

export PATH=$PATH:/home/runner/Repl名字/cms_source/node_modules/hexo/bin:/home/runner/bin
           

這樣就解決了Hexo環境搭建。

然後SSH登入的問題,Repl剛剛上線了新的功能,這明顯也是參照了Github Action的密匙功能,可以在Repl配置密匙。點選左側的鎖頭圖示,添加公鑰、私鑰、已知主機的檔案内容。

然後就可以編寫

main.sh

來手動添加SSH密鑰資訊的檔案了。

下面那個

netrc

以及下載下傳Perl程式是配置HTTPS方式登入的,但是Github通知了說8月13号之後會停止使用控制台輸入密碼的方式登入,是以也用不上了,我們這裡還是使用SSH方式登入。

這裡需要配置

GITHUB_USERNAME

,

GITHUB_PASSWORD

,

GITHUB_PRIVATE

,

GITHUB_PUBLIC

,

KNOWN_HOSTS

一共4個環境變量。如果Gitee的登入使用者名和密碼不一樣,也需要單獨配置,腳本對應的地方也要做相應修改。

注意最後那個

PATH

環境變量并不會生效,運作完成之後還需要手動執行一次。

# PLEASE RUN THIS SCRIPT BEFORE EDITING THE BLOG!!!!!
# PLEASE ADD GITHUB_USERNAME, GITHUB_PASSWORD, GITHUB_PRIVATE, GITHUB_PUBLIC, KNOWN_HOSTS ENVIRONMENT VARIABLES BEFORE RUNNING THIS SCRIPT!!!!!
echo \>\>\>GitHub Repo Login Initialize\<\<\<

cd ~
rm .netrc
cat>>.netrc<<-EOF
machine github.com
login $GITHUB_USERNAME
password $GITHUB_PASSWORD
machine gitee.com
login $GITHUB_USERNAME
password $GITHUB_PASSWORD
EOF

mkdir ".ssh"
cd .ssh
cat>>id_rsa<<-EOF
$GITHUB_PRIVATE
EOF
cat>>id_rsa.pub<<-EOF
$GITHUB_PUBLIC
EOF
cat>>known_hosts<<-EOF
$KNOWN_HOSTS
EOF
cd ~

echo $PATH
mkdir ~/bin
cd ~/bin
wget https://github.com/git/git/raw/e67fbf927dfdf13d0b21dc6ea15dc3c7ef448ea0/contrib/credential/netrc/git-credential-netrc.perl
git config --global credential.helper "netrc -d -v"
git config --global user.name "No5972"
git config --global user.email "[email protected]"

# PLEASE MANUALLY RUN THIS COMMAND AFTER RUNNING THIS SCRIPT!!!!!
export PATH=$PATH:/home/runner/no5972tk/cms_source/node_modules/hexo/bin:/home/runner/bin
           

配置好這個腳本之後,以後要編輯部落格的時候,先運作一次(點選上面的Run),然後運作這個最後一行指令,然後編輯部落格,注意最後在Repl運作要輸入

sh ./deployEx.cmd

,也就是前面加一個

sh

,因為Linux并不能識别

.cmd

字尾的腳本格式檔案。