Manjaro使用
记录所有与Manjaro(基于Arch Linux的开源Linux发行版)有关的信息,可以通过 #Collect/Manjaro
标签进行索引
常用
yay -Sua # 升级yay至新版本
yay -Ss [package] # 搜索在线AUR软件包,确认则-S进行安装
yay -Rscnu [package] # yay删除包,-R 表示 Remove(移除),-s 删除不需要的依赖关系,-c(cascade)删除软件包及所有依赖于此的软件包,-n 表示 nosave(删除配置文件),-u 表示 unneeded(删除不需要的软件包)
yay -R $(yay -Qdtq) # 清理孤立软件包
yay -Scc # 更新缓存
# 见https://zhuanlan.zhihu.com/p/346508211
初始化
在Win +R 调出的命令行默认路径创建Python虚拟环境,用来安装更新最新的python包
# 请务必安装English版本,否则路径会带中文
# 用户名统一创建为dhr2333,既能唯一标示又不会暴露真实信息
sudo pacman-mirrors -g # 排列源
sudo pacman-mirrors -i -c China -m rank # 更换国内官方镜像源
timedatectl set-ntp true # 时间同步
vi /etc/pacman.conf
[community]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist
[archlinuxcn] # 参考 https://www.archlinuxcn.org/archlinux-cn-repo-and-mirror/
Server = https://mirrors.zju.edu.cn/archlinuxcn/$arch
pacman -S archlinuxcn-keyring # 导入密钥
pacman -Syyu
pacman -S yay # yay能下载的软件更多,是从AUR仓库下载的
vim /etc/hosts # 软件无法下载大概率是网络问题,要么是国内DNS被污染,要么是需要翻墙下载,如果没有通过有效性检查修改文件跳过检查即可
185.199.109.133 raw.githubusercontent.com # 具体地址根据https://www.ipaddress.com/site/raw.githubusercontent.com网址查询
yay -S bash-completion vim git fcitx5 fcitx5-chinese-addons fcitx5-configtool fcitx5-gtk fcitx5-qt wps-office ttf-wps-fonts xdotool systemd-rc-local keepassxc flameshot net-tools base-devel unzip neofetch ebtables dnsmasq bind tcpdump traceroute iotop albert
yay -S wine google-chrome visual-strdio-code-bin picgo redisinsight chatbox dingtalk-bin obsidian syncthing telegram-desktop wireshark-qt nodejs npm python clash-verge sunloginclient postman baidunetdisk-bin dbeaver
yay -S docker docker-compose
yay -S mysql libmysqlclient mysql-clients
yay -S qemu virt-manager
hostnamectl set-hostname [主机名] # 设置主机名,例如办公电脑可以为ironstamp
usermod -aG docker $(whoami) # 普通用户使用docker
docker network create shared-network # 所有容器共享网络
usermod -aG kvm $(whoami) # 普通用户使用KVM
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
- Manjaro优化指南
- 美化指南
- 若内存空间不足可配置交换空间
安装问题
yay -S libldap24 lib32-gnutls # 无法安装deepin-wine-wechat时
仓库 yay 安装
pip3 install beancount fava
yay -S python-pipenv
yay -S discord
yay -S pandoc texlive-core texlive-bin texlive-latexextra texlive-fontsextra # 实现将docx导出为pdf的功能
yay -S docker-buildx # docker构建多平台镜像
yay -S STM32CubeMX # 嵌入式开发IDE
pacman -S youdao-dict # 有道词典
pacman -S netease-cloud-music # 网易云音乐
pacman -S albert # 快捷键神器,无法安装
pacman -S deepin-creenshot # 截图
yay -S typore # MarkDown
yay -S pycharm-community-jre # 安装pycharm社区版
pacman -S unrar p7zip
pacman -Sy systemd-rc-local # 开机自启功能
# 配置系统代理及工具代理
Qv2ray-2.7.0-linux-x64.AppImage # 工具下载,对于后缀为AppImage的文件,添加执行权限并启动即可
# Vcore核心配置
# 修改配置文件,参考官方文档https://qv2ray.net/lang/zh/getting-started/ & 私人指南https://arch.icekylin.online/prologue.html
[分组订阅地址] # 分组订阅地址,由https://w1.ddnsgo.xyz/user获取
# 启动系统代理 & 工具配置使用系统代理,如chrome为/usr/bin/google-chrome-stable --proxy-server=socks5://127.0.0.1:1088 %U
# https://thiscute.world/posts/qemu-kvm-usage/#qemukvm-%E8%99%9A%E6%8B%9F%E5%8C%96 虚拟化
yay -S nodejs npm
yay -S Clementine
pacman search epson # 打印机驱动搜索
yay -S epson-inkjet-printer-201401w # 爱普生L310 安装,https://blog.csdn.net/kangear/article/details/79595188,Linux下安装EPSON L310打印机驱动
配置
环境变量
unset http_proxy ; unset https_proxy ; unset HTTP_PROXY ; unset HTTPS_PROXY ; # 对于postman则需要关闭系统代理
vim /etc/profile # 所有用户的环境变量和启动脚本
# 终端
export PS1="\[\033[01;32m\][\u@\h\[\033[01;37m\] \W\[\033[01;32m\]]\$\[\033[00m\] "
# 对于chrome,需要添加如下并使用/usr/bin/google-chrome-stable --proxy-server=http://127.0.0.1:7890 %U启动
export http_proxy="http://127.0.0.1:7890"
export https_proxy="http://127.0.0.1:7890"
export HTTP_PROXY="http://127.0.0.1:7890"
export HTTPS_PROXY="http://127.0.0.1:7890"
# 编辑器
export EDITOR=vim
export QT_QPA_PLATFORMTHEME="qt5ct"
export QT_AUTO_SCREEN_SCALE_FACTOR=0
export GTK2_RC_FILES="$HOME/.gtkrc-2.0"
export CLICOLOR=1 # 启用颜色支持
export LSCOLORS=GxFxCxDxBxegedabagaced
# 输入法
# 对于个别软件需要额外配置/usr/bin/dingtalk /usr/bin/wps /usr/bin/et /usr/bin/wpp
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
vim ~/.bashrc # 与交互式shell有关的设置
alias ll='ls -lh --time-style=long-iso'
alias la='ls -lah --time-style=long-iso'
alias date='date \+\%Y-\%m-\%d\ \%H:\%M:\%S' # 设置date命令时间显示风格
vim ~/.config/flatpak/fcitx.conf # 微信,网易云音乐可能通过该方式启动
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
flatpak --user override --env=GTK_IM_MODULE=fcitx # 如何无效则添加环境变量
flatpak --user override --env=QT_IM_MODULE=fcitx
flatpak --user override --env=XMODIFIERS=@im=fcitx
KVM
sudo virsh net-start default # 启用NAT网络
sysctl net.ipv4.ip_forward # 配置IP转发
sysctl -w net.ipv4.ip_forward=1
SSH
# 将~/.ssh/id_rsa.pub复制到要登录的主机.ssh/authorized_keys中
vim .ssh/config
Host dhr2333
HostName [服务器IP地址]
Port 60522
User root
IdentityFile ~/.ssh/id_rsa
Host manjaro
HostName [服务器IP地址]
Port 8001
User daihaorui
IdentityFile ~/.ssh/id_rsa
vim /etc/ssh/sshd_config # 允许使用密钥认证
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
NetworkManager
- 桥接网络管理(使用以下nmcli工具 或 使用配置文件)
sudo systemctl start NetworkManager
sudo systemctl enable NetworkManager
sudo ls -la /etc/NetworkManager/system-connections/ # 有连接配置位于该目录
# 如果宿主机无法为虚拟机提供桥接网络,可以通过nmcli工具创建和配置桥接接口,供虚拟机使用
sudo nmcli connection add type bridge con-name br0 ifname br0 # 添加桥接接口br0
sudo nmcli device status
sudo nmcli connection add type bridge-slave con-name br0-port1 ifname [Device Name] master br0 # 添加桥接接口br0-port1,从端口绑定到物理接口[Device Name],物理接口[Device Name]通过ip a或者其他方式查询
sudo nmcli connection modify br0 ipv4.addresses 10.0.5.69/24 ipv4.gateway 10.0.5.1 ipv4.method manual # 将静态 IP 地址分配给桥接接口 `br0`
sudo nmcli connection modify br0 ipv4.method auto # 如果使用 DHCP,可以将 `ipv4.method` 改为 `auto`
sudo nmcli connection up br0 # 激活桥段端口
sudo nmcli connection up br0-port1 # 激活桥接从端口
sudo nmcli connection modify br0 ipv4.dns "8.8.8.8 8.8.4.4" # 修改dns配置后,桥接网络算是正确配置可以使用。或者通过/etc/resolv.conf修改DNS配置
系统快捷键
开机自启服务
systemctl enable --now bluetooth
systemctl enable docker sshd rc-local.service runsunloginclient.service libvirtd
# 启动rc-local后可以使用/etc/rc.local进行控制,见https://cloud.tencent.com/developer/article/1948480
vim /etc/systemd/system/syncthing.service # 具体脚本命令参考Manage
vim /etc/systemd/system/clash.service
vim /etc/systemd/system/frpc.service
sudo chmod +x /etc/rc.local
cat /etc/rc.local
docker compose -f /home/daihaorui/桌面/harbor/docker-compose.yml up -d # 具体需要启动的Docker容器参考Manage
cd /home/daihaorui/桌面/GitHub/chatgpt-on-wechat/ ; pipenv shell ; python app.py
cd .config/mihomo/ ; ./clash-linux
chmod 666 /var/run/docker.sock
# neofetch # 查看manjaro系统状态,见Obsidian
Git
使用GitHub提交项目代码时,使用"Signing commits"完成验证,需要添加Signing Key
git config --global gpg.format ssh
git config --global user.signingkey .ssh/id_rsa.pub
frp内网穿透
vim /etc/frp/frpc.toml
serverAddr = "[服务器IP地址]"
serverPort = 7000
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 8004 # 需要保证阿里云远程端口为Open
[[proxies]]
Name = "harbor"
Type = "http"
LocalPort = 80
CustomDomains = ["harbor.dhr2333.cn"]
Docker配置
vim /etc/systemd/system/docker.service.d/http-proxy.conf # 配置所有容器使用代理
[Service]
Environment="HTTP_PROXY=http://10.0.0.74:1081"
Environment="HTTPS_PROXY=http://10.0.0.74:1081"
Environment="NO_PROXY=localhost,127.0.0.1,docker-registry.example.com,.corp"
vim /etc/docker/daemon.json
{
"experimental": true, # 启动实验性功能,例如docker-buildx
"registry-mirrors": ["http://harbor.dhr2333.cn", "https://docker.mirrors.ustc.edu.cn", "http://hub-mirror.c.163.com", "https://registry.docker-cn.com"],
"insecure-registries": ["http://harbor.dhr2333.cn", "http://harbor.dhr2333.cn:8080","127.0.0.1"]
"proxies": { # 可选
"http-proxy": "http://127.0.0.1:7890",
"https-proxy": "https://127.0.0.1:7890",
"no-proxy": "*.test.example.com,.example.org,127.0.0.0/8"
},
"dns": ["8.8.8.8"]
}
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl show --property=Environment docker # 查看Docker环境变量是否生效
docker login -u admin -p '[Harbor登录密码]' harbor.dhr2333.cn
PicGo配置
Flameshot
%Y%m%d_%H%M%S_flameshot
Xshell
Dbeaver
chatgpt-on-wechat
次级配置
xset s off # 关闭屏幕保护程序
xset -dpms # 禁用 DPMS(能量保护管理系统)
安装Deb包
yay -S debtap # 安装deb包工具,用于安装有道云笔记
debtap -u # 更新
debtap xxx.deb # 将deb转换为tar.xz包
pacman -U xxx.tar.xz # 安装
安装旧版/指定版本
- 打开 AUR 包仓库
- 通过「关键字」找到要安装的包详情页面
- 在包详情页面右侧,点击「查看更改」
- 找到对应的版本,点击「Commit message」,进入版本详情
- 找到「download」链接,下载
- 解压下载的压缩包,并在解压后的目录内执行以下命令安装
makepkg -s
sudo pacman -U *.pkg.tar.zst
通过 PKGBUILD 文件打包
$ ls -la /var/cache/pacman/pkg | grep [] # 确定缓存中是否含有包
$ sudo pacman -S --needed base-devel git # 基本的开发工具
$ tree mysql-pkgbuild/
mysql-pkgbuild/
├── mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
└── PKGBUILD
1 directory, 3 files
$ sha256sum mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz # 将获取到的sha256sums填写进 ${SKIP} 中
$ vim PKGBUILD # 编写打包文件
# Maintainer: dhr2333 <Dai_Haorui@163.com>
pkgname=mysql
pkgver=8.0.26
pkgrel=1
pkgdesc="A fast, multi-threaded, multi-user, and robust SQL database server"
arch=('x86_64')
url="https://www.mysql.com/"
license=('GPL')
depends=('libaio' 'openssl' 'zlib')
makedepends=('cmake' 'gcc' 'make')
source=("https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-${pkgver}-linux-glibc2.12-x86_64.tar.xz")
sha256sums=('abcd1234...') # 替换为实际的校验和
build() {
cd "${srcdir}"
tar -xf "mysql-${pkgver}-linux-glibc2.12-x86_64.tar.xz"
}
package() {
cd "${srcdir}/mysql-${pkgver}-linux-glibc2.12-x86_64"
install -d "${pkgdir}/usr/local/mysql"
cp -r ./* "${pkgdir}/usr/local/mysql"
install -d "${pkgdir}/usr/bin"
for bin in "${pkgdir}/usr/local/mysql/bin/"*; do
ln -s "$bin" "${pkgdir}/usr/bin/$(basename $bin)"
done
install -d "${pkgdir}/usr/share/licenses/${pkgname}"
install -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/"
}
$ makepkg -si # 构建和安装软件包
# 发布到AUR
禁止指定软件版本更新
vim /etc/pacman.conf
IgnorePkg = mysql libmysqlclient mysql-clients
修复
Error File ‘/boot/vmlinuz-5.15-x86_64’ not found # 引导系统报错,在更新软件时断电导致无法进入系统
# 解决方法:用U盘装一个Manjaro的启动盘,进U盘的系统里,打开终端。电脑要联网
# 查看你原来那个系统硬盘root分区的设备文件名,例如/dev/sdb2
sudo fdisk -l # 这里换成上一步你自己查到的设备名
sudo mount -t ext4 /dev/sdb2 /mnt
sudo pacman -Sy arch-install-scripts # 一定是arch-chroot
arch-chroot /mnt
sudo pacman -Sy linux # 安装完成后重启即可
开发
https://blog.csdn.net/v6543210/article/details/84504460 # 安装go及vscode及debug调试工具
go env -w GOPROXY=https://goproxy.cn,direct // go代理,剩下的工作会自动完成
连接交换机
-
使用配置线(USB转配置线,配置线转RJ45)连接PC与交换机Console口
-
使用软件(minicom或者PuTTY)配置串口(网上有教程)
ls /dev/ttyS* && ls /dev/ttyUSB* # 均可,插上配置线后查看多出哪个设备
- minicom -s 配置指定设备,配置速率,保存退出后minicom重新连接