打造「素晴らしい」的 Manjaro 开发环境

打造「素晴らしい」的 Manjaro 开发环境

如何打造一个优秀的 linux 工作站?在 fedora、centos、ubuntu、deepin 等诸多系统辗转之后,笔者最终还是为 manjaro 基于 arch 的高度定制性、强大 pacman 包管理器和丰富、细致的 arch-wiki 文档以及其本身修改所带来的的易用性所折服。

尽管 arch wiki 的文档已经相当丰富,但是面对实际的需求还显得比较零碎难以查找,笔者以问答的形式记录了一些常用的需求及其设置选项,便于日后快速从零搭建一套适合自己的 manjaro 开发工作站环境:

1. 使用 hyper-v 时, manjaro 会卡住,无法进入图形界面;以及使用 hyper-v 时,无法调节可视界面分辨率;manjaro 的 ISO 安装在分区阶段失败:

hyper-v config

2. manjaro 中文在使用 sudo pacman -Syyu 等命令升级系统后, 变成方块乱码:

缺少中文字体, 使用 sudo pacman -S wqy-microhei 命令安装中文字体.

3. 使用 xdmcp 远程连接时, kde5 无法成功:

kde5 使用 sddm 代替了原本的图形服务, 而该服务对于 xdcmp 缺少驱动, 详情见 github issue, 作者的理由是 xdcmp 不安全. 可以换用 xrdp 等远程图形工具.

4. 使用 yay 等工具安装 aur 等第三方来源的包时, 出现依赖库和被依赖库版本不对应的问题.

manjaro 官方源基于 archlinux 发行, 但是在一些包上存在区别, 为保证稳定, 日常使用中还是建议使用 manjaro 源.

针对该问题, 建议临时在 /etc/pacman.d/mirrorlist 第一条加上一个 archlinux 的源, 例如: 中科大 archlinux 源, 保存后使用 sudo pacman -Syy 更新源信息, 再使用 sudo pacman -S <pkgName> 升级包. 升级后再注释该源,或调整排序,并再次强制更新源的元信息.

5. 如何使用即时通讯工具 QQ

建议不要使用, 体验很差, 浪费时间. 特别需要, 可以如下使用 (简略版本):

  1. sudo pacman -S wine winetricks 安装 wine, 以模拟 windows 环境.
  2. 使用 Wine-QQ-TIM

6. manjaro 默认会修改用户主目录的一级文件夹为对应语言, 导致终端很不好提示.

  1. 修改目录映射文件:

  1. 将主目录下的对应语言目录改为对应名称

  1. 重启系统

7. 包管理器速度慢

  1. 更换源至国内, 请先升级整个环境:

  1. 增加 archlinuxcn 源:

/etc/pacman.conf 文件末尾添加两行, 并更新包.

  1. 安装 archlinux-keyring:

  1. 更改国内源

或手动修改 /etc/pacman.d/mirrorlist, 记得修改前先保存. 请不要使用 163 源, 笔者使用多次出现同步和包问题.

8. 默认浏览器没有中文

以下指令安装环境并升级浏览器, 记得先升级系统包, 否则可能出现依赖库不兼容.

此外, 也可以选择安装 chrome 作为替代.

9. 默认没有中文输入法

  1. 须添加 archlinuxcnarchlinux 源(非只需 manjaro 源),安装输入法包:

  1. 设置用户环境:

对于 xprofile 配置:

对于系统环境变量:

10. 默认 bash 比较难用:

  1. 安装 vimzsh, 并切换到 zsh

  1. 安装 oh-my-zsh

  1. (选装) 更改主题

  1. (选装) 安装插件

下载插件

修改配置

11. 磁盘没有开机自动挂载

  1. 找到磁盘对应的 UUID , 可以通过 /dev/disk/by-uuid
  2. 修改 /etc/fstab

其中, options 请查表, 推荐配置如上; dump 为备份情况, 0 为不备份; pass 为遍数, 1root 分区, 2 为其他需扫描的分区, 0 为不扫描.

12. 使用科学上网

  1. 可以使用 SS 直连, 或者 kcptun 加速的方式, 建议使用 shadowsocks-rust(命令行)或者 shadowsocks-qt5(图形化)。前者请前往对应 Github 仓库的 Release 页面查找,对于后者:

  1. 对于后者设置直连服务器列表, 设置开机启动和隐藏:
  2. 对于选择性代理,可以设置 PAC:

  1. 此时, 终端仍未代理, 请安装 proxychains4;或者同时修改 http_proxyhttps_proxy

  1. 使用 kcptun 加速

下载 kcptun 预编译客户端文件到 <path-to>/client, 增加 /lib/systemd/system/kcptun.service 如下, 允许并启动服务, 并修改 shadowsocks-qt5 的服务器为本地。注意某些版本 fedoracentos 可能无法使用 systemd 来进行 kcptun 的服务化,可以使用 supervisord

  1. 使用对 sshgit ssh 进行代理加速

如使用 http 代理,安装 socat

修改 ~/.ssh/config 类似如下

或者 socks5(必须使用 openbsd-netcat)

  1. 其他修改见各自对应代理说明, 例如 git 见对应文件夹.
  2. (可选) 第一步如果了解, 也可以使用 shadowsocks-rust, 其使用 SOCKS5 协议, 请替换 genpac 等软件的代理协议从 PROXYSOCKS5,注意 vscode 等部分软件不支持 socks5 代理(规则问题),需要使用 privoxy 进行协议转换。

或者在外部设置参数,此时需要注意设置终端环境变量 http_proxyhttps_proxy 为空,否则设置的镜像源可能会被拒绝连接。

13. ~/.ssh 文件夹的权限问题

14. 在 ~/.bashrc 等文件中修改的环境变量不在非交互终端中生效

/etc/environment 中添加键值对, 注意会影响所有用户, 且不能引用 ${PATH} 等变量, 例如:

或者在 ~/.pam_environment 中添加键值对,可以使用形如 ${PATH} 和 @{HOME} 的变量,形如:

15. 推荐的编辑器:

推荐使用 VSCODE,insider 版本为体验预览版,可自己探索安装方式:

16. 推荐的 C++ 包管理器

推荐使用 vcpkg, 注意请先安装 base-devel 等环境.

17. 推荐安装的包

18. Bay trail 架构芯片在各种 linux 系统中出现随机性卡死

内核和芯片设计, 能源管理的复杂性 bug, 解决方法:

  1. BIOS 中关闭能源管理的 C6 状态, 开启 C7 状态.
  2. 升级系统内核到 5.3 以后.

参见: 一种解决方法

19. 创建 crontab 任务

  1. 安装 cronie

  1. 创建文件并使用,注意编辑模式的控制命令为 ctrl + 其他按键。

20. 安装打印机和扫描仪驱动,以爱普生部分型号的墨仓式一体机为例:

21. 部分大陆日用软件

22. 网盘/文件服务器

netdisk config

23. 数据库

23.1 MSSQL

23.2 Postgresql

创建数据库:

常用操作:

配置 /var/lib/postgres/datapostgresql.confpg_hba.conf
若要监听远程端口,则需要修改 postgresql.conf listen_addresses = 'localhost,my_remote_server_ip_address'
修改对应用户为 pg_hba.conf 的 :

23.3 Mariadb

安装:

配置:

并编辑 /etc/my.cnf.d/server.cnf

编辑 /etc/my.cnf.d/my.cnf,添加:

重启服务

23.4 Mongodb

安装服务:

设置:

编辑 /etc/mongodb.conf

23.5 redis

编辑 /etc/redis.conf

24. nvm

安装和环境变量:

设置:

25. 如何选用 GPU 加速终端(实验性)

26. 禁用 VIM 鼠标选中时的可视模式

编辑 ~/.vimrc

Tagged with:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据