2022年1月

自从对Mastodon实例魔改,就避免不了碰到各种问题。


1.在服务器上拉取远程分支合并文件,显示有冲突怎么办?
答:立刻去git status,查看git状态。
它会提示那个文件有冲突。
解决完冲突git add 将内容从工作目录添加到暂存区.
然后,没有微合并的文件就添加 git commit 结束合并。


2.魔改之后怎么更新到官方最新Releases版本?
答:在GitHub桌面,左侧自己mastodon仓库上右键点 “open in command prompt”
然后:
git fetch --tags upstream
git merge v3.4.4(要升级的tag名)

如果提示有冲突,先解决冲突再 git push上去远程分支上。
再回到服务器上更新行~

WireGuard就不多做介绍了,一个简单,高性能,安全的VPN。使用这个可以让多个vps,或者跟家里电脑组建一个内网。

官方网址:https://www.wireguard.com/


1.Ubuntu 18.04 安装办法,在服务端和客户端都要安装:
$ sudo add-apt-repository ppa:wireguard/wireguard
$ sudo apt-get update
$ sudo apt-get install wireguard


2.centos7.x下安装wireguard:
$ sudo yum install epel-release elrepo-release
$ sudo yum install yum-plugin-elrepo
$ sudo yum install kmod-wireguard wireguard-tools


3.在服务端和客户端上进入 /etc/wireguard/ 目录,然后生成自己机器的公私钥对:
$ wg genkey | tee privatekey | wg pubkey > publickey
然后在/etc/wireguard/ 下会生成 privatekey和publickey两个文件。
如果目录没有需要手动创建:
$ mkdir /etc/wireguard


4.在服务端上开放1820端口用于客户端连接,请注意,是UDP协议。
在所有机器 /etc/WireGuard/ 目录下创建一个名为 wg0.conf 的文件,

内容分别如下:

服务端 wg0.conf:

[Interface]
Address = 192.168.1.1/24
SaveConfig = true
ListenPort = 51820
PrivateKey = 服务端的PrivateKey

[Peer]
PublicKey = 客户端上的publickey 的内容 >
AllowedIPs = 192.168.1.0/24
可以添加多个Peer。

客户端 wg0.conf :

[Interface]
PrivateKey = 客户端的PrivateKey
Address = 192.168.1.2/24

[Peer]
PublicKey = 服务端的PublicKey
Endpoint = 服务端公网IP:51820
AllowedIPs = 192.168.1.1/24


然后在所有机器上启动WireGuard:
$ wg-quick up wg0 #启动服务端
$ wg-quick down wg0 #停止服务端
$ wg #查看节点列表


基本完事儿了。然后再互相ping一下是否能连通。

假如想把A服务器 /home/test/ 文件夹发送到B服务器 /home 目录下:
先在A服务器/root/.ssh/目录下设置好B服务器的登录私钥,如果不设置可以输入密码。

A服务器上

$cd /home/
$:/home#tar czf - test | ssh root@192.168.1.1 -p 22 -i ~/.ssh/密钥文件 tar xzf - -C /home/

首次传输要把B服务器加入known_hosts 里。
如果不使用私钥登录删掉 -i ~/.ssh/密钥文件 即可。

如果要把Mastodon实例本站媒体文件备份到其他服务器/home/目录上
$cd /home/mastodon/live/public/system/
$tar czf - accounts custom_emojis media_attachments | ssh root@192.168.1.1 -p 22 tar xzf - -C /home/

即可。

在魔改Mastodon实例过程中友邻站长给我介绍cherry-pick命令。
我在搜索相关文档后发现这是一个本地命令,将一个分支的commit 快速应用到另一个分支上。
所以想使用这个命令先把需要的仓库拉取到本地。


首先将你需要合并代码的分支添加到本地:

git remote add https://github.com/xxxxx/mastodon.git

然后复制需要合并代码的commitID。
再进行

git cherry-pick commitID

就可以了。然后可能会有冲突。解决完冲突合并即可。这样不用一个个去手动改动。

有时候更新Mastodon,如果没有升级ruby会看到小象砸键盘,
按下面的办法可以更新ruby以完成Mastodon的顺利升级。
有两种方式可以升级。


1.

su - mastodon
cd ~/.rbenv/plugins/ruby-build 
git pull 
cd ~/.rbenv 
rbenv install 3.0.3


2.
/home/mastodon/live/目录下

git -C /home/mastodon/.rbenv/plugins/ruby-build pull //拉取新版本
RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install    //更新到指定版本