折腾之 Manjaro 安装使用指北

Posted by yqsas on March 3, 2019

一、前言

去年大概 8 月就开始用 macOS 开发及日常(迫于贫穷,只是 hackintosh)。苹果的系统最大的优点就是颜值,使用 macOS 的蜜月期间,我几乎把所有日常工作都迁移其上。然而几个月过后,macOS 缓慢的动画、反人类的 finder 以及经常让人分心的 dock,让效率第一的我感到腻烦。这里还得夸一夸 Windows10,不愧是目前最强大的操作系统,搭配 wsl 已然是开发神器,但是 wsl 依然是类似 mount 的存在,文件系统独立于 Windows,有时候还不如一个 Linux 虚拟机便利。

作为不折腾不死星人,linux 系统自从大学就开始在用,上一部笔记本最后阶段就靠 Ubuntu1604 续命。这次经过一番选择,闻名已久的 manjaro 进入视野。经过两周的使用,已经成为现在日常开发主力系统,于是写点东西记录一下。

二、安装

硬件:ThinkPad T480s / i7 8550u / 2560*1440 / NVIDIA MX150/

笔者前后安装了两次,第一次使用的是官方 KDE 18.03 版,第二次使用的是社区 Deepin 版本。两个版本各方面都很不错,个人更偏好后者,但是 DDE 相对稳定性不足(睡死过几次),后面依然改为使用 KDE 了。

安装过程简单说,Manjaro 安装非常简单,基本上开箱即用,和其他系统区别不大。

  1. 下载 ISO 镜像,官网地址
  2. 制作 U 盘启动盘,Windows 推荐 Rufus
  3. U 盘启动安装界面,时区设置为 Asia/Shanghai,语言选择 zh_CN,driver 选择 nonfree。选择 Boot 启动安装;
  4. 进入桌面(此时系统还在 U 盘中,可以体验桌面效果),双击桌面 Install Manjaro Linux 进入系统安装,然后一路按自己需求 next;
  5. 双系统情况下,注意分区选择自定义分区,然后分配 Manjaro 系统分区挂在为/(内存大不需要 swap 分区,一般使用不需要给/home 独立分区,后期调整系统大小也方便),启动分区选择已存在的 EFI system partition,挂在为/boot/efi,并选择保留(默认选项)。
  6. 安装完成后重启系统即可。

三、基本配置

3.1 软件包管理配置

  sudo pacman -Syyu
  #国内源,可多次尝试选择速度最快的
  sudo pacman-mirrors -i -c China -m rank  
  sudo pacman -Syyu
  # 配置 archlinux 软件仓库
  sudo vim /etc/pacman.conf
  [archlinuxcn]
  Server = https://mirrors.shu.edu.cn/archlinuxcn/$arch
  sudo pacman -Sy archlinuxcn-keyring
  # AUR 包管理工具
  sudo pacman -S yay
  # 必备工具
  sudo pacman -S git vim net-tools
  # 解决双系统时间不同步问题
  timedatectl set-local-rtc true

3.2 zsh/oh-my-zsh

  sudo pacman -S zsh
  sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
  chsh -s /bin/zsha
  # 必备插件安装
  git clone https://github.com/zsh-users/zsh-completions ~/.oh-my-zsh/custom/plugins/zsh-completions

  git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting

  git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions

  git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

  vim ~/.zshrc
  # edit plugins & save
  plugins=(git zsh-syntax-highlighting docker docker-compose zsh-autosuggestions zsh-completions)

  autoload -U compinit && compinit

3.3 中文输入法

  # 搜狗 hidpi 设置:搜狗设置-外观-字体大小
  sudo pacman -S fcitx  fcitx-im  fcitx-configtool fcitx-sogoupinyin
  vim ~/.xprofile
  export GTK_IM_MODULE=fcitx
  export QT_IM_MODULE=fcitx
  export XMODIFIERS=@im=fcitx

3.4 必备字体安装

  sudo pacman -S wqy-bitmapfont wqy-microhei \
  wqy-zenhei adobe-source-code-pro-fonts \
  adobe-source-han-sans-cn-fonts ttf-monaco

3.5 双显卡配置

  1. 更换默认驱动

     sudo pacman -S virtualgl lib32-virtualgl lib32-primus primus
     sudo mhwd -f -i pci video-hybrid-intel-nvidia-bumblebee
     sudo systemctl enable bumblebeed
    
  2. 用户组设置

     #添加 bumblebee 用户组
     sudo groupadd bumblebee
     #添加当前用户到该组
     sudo gpasswd -a $USER bumblebee
    
  3. 重启电脑

3.6 VPN 客户端配置

系统默认未安装客户端,需要先行安装客户端支持。

  1. L2TP 客户端安装

     # 安装 strongswan  原因:need strongswan (or libreswan) for IPSec support.
     sudo pacman -S strongswan
     # 安装 l2tp 依赖
     yay -S libnm-git
     # 安装 l2tp 客户端,先选 2 一遍安装一些依赖,再选 1 一遍编译安装
     yay -S networkmanager-l2tp
    
  2. 控制命令

     # 获取所有 vpn 连接列表
     nmcli con show
     # 连接一个标记为已断开的网络接口
     nmcli con up <uuid/name>
     # 断开一个网络连接
     nmcli con down <uuid/name>
     # 添加内网路由
     sudo route add -net 10.0.0.0 netmask 255.0.0.0 gw <gateway ip>
    

四、开发环境

4.1 必备

  sudo pacman -S docker
  sudo pacman -S mysql-workbench

4.2 IDE/编辑器

  # IDEA
  sudo pacman -S intellij-idea-ultimate-edition
  # VScode
  sudo pacman -S visual-studio-code-bin

4.3 Java 环境

  sudo pacman -S jdk8 maven

4.4 Nodejs 环境

  sudo pacman -S nodejs npm

4.5 Ruby

  sudo pacman -S ruby
  gem install jekyll bundler
  #项目依赖安装:bundle install

五、软件推荐

# 日常
  sudo pacman -S google-chrome
  sudo pacman -S netease-cloud-music
  sudo pacman -S shadowsocks-qt5 # 上网必备
  sudo pacman -S filezilla  # FTP/SFTP
  
  sudo pacman -S goldendict # 翻译、取词
    # 不推荐有道词典 高分屏坐标偏移,屏幕取词不便
    # [英汉字典下载](https://github.com/skywind3000/ECDICT/releases)

  yay -S deepin-wine-tim     # qq
  yay -S deepin-wine-wechat  # 微信

# 办公
  #字体切记采用这种方式安装
  sudo pacman -S ttf-wps-fonts
  sudo pacman -S wps-office

# 装 X
  sudo pacman -S neofetch
    #配合食用:neofetch --ascii_distro arch
  sudo pacman -S screenfetch
    #配合食用:screenfetch -A 'Arch Linux'

# 其他
  sudo pacman -S light # 命令调节亮度
  sudo pacman -S guake # 下拉终端,同类:tilda

# deepin 桌面
  sudo pacman -S  deepin-manjaro

六、更换为 KDE 环境

使用 Deepin 桌面环境大概一周,遇到一些问题:关闭屏幕后睡死只能强制重启(3 次);注销后再次登陆时打开应用会卡半分钟;期间升级 linux kernel 5.0 时,deepin-anything 导致开机无法找到 vfs 模块错误。

虽然有这些问题,但 DDE 友好的交互、漂亮的 UI、更沉浸的标题栏以及便捷的雷神终端依然值得大赞。嗯,然而有点强迫症的我,还是决定换回 KDE。

  1. 安装 KDE

     sudo pacman -S plasma kio-extras
     sudo pacman -S kdebase
    
     sudo pacman -S manjaro-kde-settings sddm-breath-theme manjaro-settings-manager-knotifier manjaro-settings-manager-kcm
    
     sudo systemctl enable sddm.service --force
    
  2. 卸载 DDE

    sudo pacman -Runs deepin deepin-extra
    

七、其他记录

Hidpi 配置

  1. chrome

     sudo vim /usr/share/applications/google-chrome.desktop
    
     # 这一行修改
     Exec=/usr/bin/google-chrome-stable %U
     # 添加启动命令参数
     Exec=/usr/bin/google-chrome-stable --force-device-scale-factor=1.7 %U
    
  2. wine 安装的软件

     WINEPREFIX=~/.deepinwine/<你的 APP 目录> wine winecfg
     #或者
     WINEPREFIX=~/.deepinwine/<你的 APP 目录> deepin-wine winecfg
    

常用命令

  lspci|grep -i net #查看网卡信息

  systemctl list-unit-files --state=enabled #查看已经启用的服务
  systemd-analyze critical-chain xxx.service #查看关联性服务启动耗费时间
  systemd-analyze blame #按时间排序,查看服务启动耗费时间

  # git 代理设置,推荐放到 .zshrc 中作为常用命令
  git-proxy(){
    git config --global http.proxy socks5://127.0.0.1:1080
    git config --global https.proxy socks5://127.0.0.1:1080
  }
  git-noproxy(){
    git config --global --unset http.proxy
    git config --global --unset https.proxy
  }