0%

将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,遇到此问题需要先配置用户名和邮箱。

1
2
git config --global user.name "No5972"
git config --global user.email "wujiuqier@foxmail.com"

进到源码仓库cms_source里面,安装Hexo。执行:npm install hexo-cli

需要手动设置一下环境变量PATH添加Hexo可执行文件的路径:

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

这样就解决了Hexo环境搭建。


然后SSH登录的问题,Repl刚刚上线了新的功能,这明显也是参照了Github Action的密匙功能,可以在Repl配置密匙。点击左侧的锁头图标,添加公钥、私钥、已知主机的文件内容。

然后就可以编写main.sh来手动添加SSH密钥信息的文件了。注意私钥id_rsa要设置700权限,不然会因为权限过于开放而被忽略,进而导致SSH登录失败。

下面那个netrc以及下载Perl程序是配置HTTPS方式登录的,但是Github通知了说8月13号之后会停止使用控制台输入密码的方式登录,所以也用不上了,我们这里还是使用SSH方式登录。

这里需要配置GITHUB_USERNAME, GITHUB_PASSWORD, GITHUB_PRIVATE, GITHUB_PUBLIC, KNOWN_HOSTS一共4个环境变量。如果Gitee的登录用户名和密码不一样,也需要单独配置,脚本对应的地方也要做相应修改。

注意最后那个PATH环境变量并不会生效,运行完成之后还需要手动执行一次。

2021.07.06更新:Repl在用户根目录自己新增了一个.ssh的链接过去到~/Repl名/.config/ssh的目录,这导致原脚本无法创建.ssh目录,进而导致无法操作Github和Gitee。因此需要将原有的.ssh链接删除。故脚本需要修改。本文章的脚本已经订正。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 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

rm -rf ".ssh"
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
chmod 700 id_rsa
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 "wujiuqier@foxmail.com"

# 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后缀的脚本格式文件。

Buy me a coffee
No.5972 Alipay

Alipay

推进创文常态化 共建文明襄阳城 · 🄽🄾5️⃣9️⃣7️⃣2️⃣ · 做文明襄阳人 建文明襄阳城 凝聚文明正能量 筑梦千年古襄阳 · 🄽🄾5️⃣9️⃣7️⃣2️⃣ · 创建全国文明城市 加快建设汉江流域中心城市 · 🄽🄾5️⃣9️⃣7️⃣2️⃣ · 讲文明 树新风 · 🄽🄾5️⃣9️⃣7️⃣2️⃣ · 用微笑融化陌生 用文明美化襄阳 · 🄽🄾5️⃣9️⃣7️⃣2️⃣ · 争当文明使者 播撒文明新风