对比ubuntu、CentOS,我更加喜欢Manjaro系统,这里主要记录下自己使用过程中的一些问题和经验。

Win10 Manjaro双系统安装

建议最好还是用UEFI+GRUB的引导方案,我的电脑是双硬盘,两个系统分别安装在2个硬盘上。硬盘分区是,只要存在一个EFI分区就行,EFI分区专门用来放引导索引的,另外一个硬盘全市GPT主分区。
安装时,必须先安装WIN10系统,否则Manjaro会启动不起来,我猜测是WIN10会破坏掉引导分区。安装完WIN10后,可以再制作一个老毛桃启动盘,进入启动盘的系统后可以开一下EFI分区里面的内容。

安装WIN10系统没什么好讲的。安装完成后,首先我们要关闭这个功能:进入 BIOS 找到 Secure Boot,选择 disabled,这样就关闭了。当然,有些人进入 BIOS 会发现 Secure Boot 这个选项是灰色的(比如我的就是),这时你需要先给你的 BIOS 设一个密码,然后就能关 Secure Boot 了。

下载rufus,用来制作manjaro启动盘,制作时请选择dd模式,manjaro必须要dd模式才可以安装。启动安装时主要是在选择挂在点的时候,直接将/boot/efi 挂在到已存在的EFI分区即可,不要选择格式化/boot/efi所挂在的点,这样安装过程中不会破坏掉原有的内容。安装完成后,两个系统的引导文件都存在与EFI分区中。

重启之后,不出意外的话,你会直接进入 Windows 10,不要担心,这时 Linux 已经安装成功了,我们只需要将引导文件替换一下。在WIN10上进入管理员命令行。方法:win + x,再按 a
输入 bcdedit /set ‘{bootmgr}’ path \EFI\Manjaro\grubx64.efi。提示操作成功的话,就完成了。

这部分参考这个文章,描写得很清楚:https://www.jianshu.com/p/5007e555ec12

设置软件源

使用命令sudo pacman-mirrors -i -c China -m rank, 然后选择速度最快的即可。

更新系统

一条命令sudo pacman -Syyu 即可更新系统到最新版,更新系统过程若是提示 /usr/lib/xfce4/thunar-archive-plugin/engrampa.tap 冲突。可以通过如下的方法来处理:

  • pacman -Qo /usr/lib/xfce4/thunar-archive-plugin/engrampa.tap 查询到/usr/lib/xfce4/thunar-archive-plugin/engrampa.tap 由 engrampa-thunar-plugin 1.0-2 所拥有然后搜索此软件包engrampa-thunar-plugin 卸载后 就正常了
  • 或者直接删除/usr/lib/xfce4/thunar-archive-plugin/engrampa.tap

然后用命令行运行 pacman -S archlinuxcn-keyring

必要软件安装

vim

1
2
sudo pacman -S vim 
bash <(curl -fsSL https://raw.githubusercontent.com/liuchengxu/space-vim/master/install.sh)

中文输入法

1
2
3
sudo pacman -S fcitx-im # 全部安装
sudo pacman -S fcitx-configtool # 图形化配置工具
sudo pacman -S fcitx-sogoupinyin 或者 fcitx-googlepinyin

vim ~/.xprofile 打开或者创建xprofile文件,添加如下内容:

1
2
3
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"

重启设备或者在终端中输入fcitx启动服务之后,在系统的右下角右一个键盘图标,右击这个图标,打开配置管理工具,需要将搜狗拼音添加到输入方法中。

zsh

1
2
3
sudo pacman -S zsh
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
chsh -s /bin/zsh

虚拟机

使用命令uname -r 查看内核的版本,比如输出了4.14.69-1-MANJARO,那么你的内核版本为414
使用命令来安装virtualbox及它的插件,命令如下:

1
sudo pacman -Sy virtualbox linux414-virtualbox-host-modules virtualbox-ext-oracle

使用如下命令sudo gpasswd -a $USER vboxusers # $USER为当前用户添加当前用户到vboxusers组
然后重新启动系统或执行sudo modprobe vboxdrv

参考:

其它软件安装

在PACMAN管理工具的属性中可以开启AUR,通过界面来管理软件更加直观,剩下的软件基本上都可以通过软件中心来查找、安装和卸载。其它必须安装的软件有:

  • git
  • cmake
  • uget
  • aria2
  • filezilla
  • google-chrome
  • netease-cloud-music
  • peek 屏幕录像工具,小巧玲珑,可保存录像为gif动图和兼容于html5的webm视频;
  • fish 一个不错的shell

解决 Windows 和 Manjaro 双系统时间差8小时的问题

电脑系统中有两个时间:

  1. 硬件时间:保存在主板中,信息比较少没时区、夏令时的概念
  2. 系统时间:又系统维护,独立于硬件时间,拥有时区、夏令时等信息

系统时间又因为系统的不同使用了两种时间管理办法:

  1. localtime:本地时间,目前只有 Windows 在使用。
  2. UTC:是一种世界标准时间,Linux 这类类 UNIX 多数会使用,UTC 加减时区之后才是本地时间。

然后问题就来了,Windows 认为硬件时间就是本地时间,所以会直接把主板中的时间拿来当做当前的时间。设置或同步时间后也会把“正确”的时间写入主板。而 Linux 认为硬件时间是 UTC 标准时间,Linux 时间同步后会把“正确”的时间 -8 之后作为标准 UTC 标准时间写入主板。

具体操作是:在 Settings -> Manjaro Settings Manager -> Time and Date 中即可设置,建议起用”Set time and date automatically”, 根据情况来决定是否勾选 “Hardware clock in local time zone”

pacman介绍

Pacman 是一个软件包管理器,作为ArchLinux发行版的一部分。简单来说,就是和apt-get之于Ubuntu一样,pacman就是Arch的apt-get。
Pacman的配置文件位于/etc/pacman.conf

  1. 安装或者升级单个软件包,或者一列软件包(包含依赖包),使用如下命令:pacman -S package_name1 package_name2
  2. 有时候在不同的软件仓库中,一个软件包有多个版本(比如extra和testing)。你可以选择一个来安装: pacman -S extra/package_name
  3. 删除单个软件包,保留其全部已经安装的依赖关系: pacman -R package_name
  4. 删除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系:pacman -Rs package_name
  5. 缺省的,pacman会备份被删除程序的配置文件,将它们加上*.pacsave扩展名。如果你在删除软件包时要同时删除相应的配置文件(这种行为在基于Debian的系统中称为清除purging),你可是使用命令:pacman -Rn package_name
  6. 真正删除一个软件包、它的配置文件以及所有不再需要的依赖的命令如下:pacman -Rsn package_name
  7. 一个指令来升级系统中所有已安装的包。升级的时间取决于你的系统有多新: pacman -Su
  8. 将升级系统和同步仓库数据合成为一条指令:pacman -Syu
  9. 包数据库中查询软件包,查询位置包含了包的名字和描述:pacman -Ss package
  10. 要查询已安装的软件包:pacman -Qs package
  11. 要获取已安装软件包所包含文件的列表:pacman -Ql package
  12. 通过查询数据库获知目前你的文件系统中某个文件是属于哪个软件包: pacman -Qo /path/to/a/file
  13. 安装一个’本地’包(不从源里):pacman -U /path/to/package/package_name-version.pkg.tar.gz
  14. 安装一个’远程’包(不从源里):pacman -U http://url/package_name-version.pkg.tar.gz
  15. 清理当前未被安装软件包的缓存(/var/cache/pacman/pkg):pacman -Sc
  16. 重新安装你系统中所有的软件包(仓库中已有的):pacman -S $(pacman -Qq | grep -v “$(pacman -Qmq)”)
  17. 获取本地软件包和它们大小的一个已排序清单列表:LANG=C pacman -Qi | sed -n ‘/^Name[^:]: (.)/{s//1 /;x};/^Installed[^:]: (.)/{s//1/;H;x;s/n//;p}’ | sort -nk2

附注:
ArchLinux的版本库里面包括:
  core-核心软件包
  extra-其他常用软件
  community-社区软件包,譬如Mysql等。
  testing-正在测试阶段,还没有正式加入源的软件包。通常软件版本比较新,但是不是非常稳定
  release-已经发布的软件包
  unstable-非正式的软件包,可能包括以前版本的软件或者测试软件

  因为Pacman的软件都是从源里面更新,因此在/etc/pacman.d里面配置这些软件源的地址。在/etc/pacman.d目录里面分别有上面几种软件类型对应的文件名,可以自己手工配置这些软件源的地址。

参考资料:
https://linux.cn/article-9925-1.html

其它问题解决

科学上网

本来计算使用shadowsocks-qt5 加 chrome插件SwitchyOmega。 但是无论怎么设置都不行。最后,我是在另外一台笔记本电脑上启用了局域网代理,这样才通过了设置成功得使得chrome可以科学上网。

命令行下的代理设置按照如下的方法:

1
2
3
4
5
6
7
git clone https://github.com/rofl0r/proxychains-ng.git 
cd proxychains-ng
./configure #配置
sudo make && sudo make install #编译安装
cp ./src/proxychains.conf /etc/proxychains.conf #提取配置文件
cd .. && rm -rf proxychains-ng #删除安装文件
vim /etc/proxychains.conf 更改最后一行的地址和端口

在需要使用代理的命令前加上 proxychain4,比如:
proxychains4 wget http://xxx.com/xxx.zip

GIT的代理设置(暂不设置)
利用shadowsocks的socks5代理,配置好后明显加速。用下面两条命令配置好后,保持shadowsocks客户端开启就行了。
git config –global http.proxy ‘socks5://127.0.0.1:1080’
git config –global https.proxy ‘socks5://127.0.0.1:1080’

vmware tools 共享文件夹的问题

如果时通过虚拟机来安装manjaro,很有可能重启后,就无法自动的显示共享文件夹了。需要手动的运行启动才行。不管手动还是自动,都需要先在虚拟机的配置中添加需要共享的文件夹。进入虚拟机操作系统后,通过 vmware-hgfsclient 命令查看已经配置的共享目录信息。

使用如下的命令来挂载共享目录,可以将以下的命令写入到一个脚本文件中,比如hgfs.sh,每次开机后手动执行一次,也不是很麻烦的事。

1
2
mkdir <shared folders root directory>
sudo vmhgfs-fuse -o allow_other -o auto_unmount .host:/<shared_folder> <shared folders root directory>

ncurses5-compat-libs

参考资料

  1. wiki
  2. archlinux vmware tools
  3. virtualbox