简介
Manjaro Linux
Manjaro Linux是一个基于Arch Linux的发行版,继承了后者轻快、滚动式更新、AUR软件多的==优点==,同时又改善了后者对新手不友好、软件包过于激进、不够稳定的==缺点==,是最能拿来用、最好用的Linux发行版。
它不仅开箱即用,界面人性化,轻快不卡慢,稳定无崩溃,安静无弹窗,最最可喜的是软件超多!相信你用了Manjaro之后,再不会折腾、也不会再抛弃这个发行版了。
开发桌面环境
这是我的 manjaro xfce 18 安装好以后的桌面使用情况:
1 | elinuxboy @ mjro18xfce in ~ [9:57:35] |
我对桌面环境的需求次序(优先级由高到低):
系统性能好,占用资源少——》软件数量多——》对用户友好,易安装,易使用——》界面美观
性能
对系统性能的要求,必须要足够好,占用资源少,给开发留下的资源越多越好。
作为一个开发者(程序员),想要提工作高效率,对系统性能的要求几乎达到苛刻的地步。
因为开发者在处理一个问题时,动则要调用大量工具,或者同时打开十几、几十、上百个网页来搜索网上的解决方案,而firefox或chrome等上网工具都是吃内存大户(牺牲空间复杂度换来快速的时间复杂度),有时候必须牺牲一些后台程序以加快系统速度适应开发者的需要。
而Manjaro Linux发行版和Xfce桌面都具有快速、轻量、加载程序快速、占用的系统资源少的优点。
软件
为了节省不必要的折腾时间,开发者手头上的工具是越多越好、越容易获取越好。
centos、slackware这些软件奇缺或者需要非常复杂的途径才能找到安装源的系统就没必要尝试了。
ubuntu系软件比较丰富,但QQ/TIM这样的基本软件还需要折腾一番,还未必能稳定使用。
arch linux系软件包异常丰富,无情碾压deb和rpm系诸多发行版,例如manjaro下可以一条命令安装好无比稳定、功能全面的deepinwine-tim或deepinwine-qq。
对用户友好
对任何一个工作者来说,时间就是衡量一切价值的标准,节省时间就是延长生命尺度。拿archlinux为反面典型,虽然其性能高可以节省工作时间,但是如果安装它都要从头开始学习ABC,那价值就大打折扣。就安装系统的便捷性来说,archlinux、gentoo、lfs这样的系统真没必要尝试。
界面外观
为了性能,必须牺牲酷炫的外观,过炫的桌面影响桌面性能;但是过于简单的桌面需要花时间配置还不一定能完全配置好,也是影响工作效率。所以,外观普通即可,默认桌面选择xfce4、lxde、mate甚至仿制windows界面都是不错的。
综合考虑下,以下是我对一些发行版及桌面的排序(仅代表个人观点):
- 发行版:
manjaro——》mint——》ubuntu——》debian——》其他
- 桌面环境
xfce 4——》mate/gnome-classic——》cinnamon——》lxde——》其他
我选择的开发桌面环境:
- manjaro-xfce-18.0-stable(第一选择)
- linuxmint-19-xfce
- ubuntu-16.04.5-desktop
自动打开 NumLock
确保已经安装 numlockx, 然后编辑 /etc/lightdm/lightdm.conf文件,在末尾添加以下几行:
1 | [Seat:*] |
系统快照
安装timeshift
sudo pacman -S timeshift
使用timeshift创建系统快照
国内源设置
manjaro官方软件仓库
自动寻找最快的源
sudo pacman-mirrors -i -c China -m rank
1 | [elinuxboy@mjro18xfce ~]$ sudo pacman-mirrors -i -c China -m rank |
选择源
在弹出窗口中选择排第一位的源(这里选择清华大学tsinghua的源)然后点击“OK”,再次单击“确定”即可选择好最快的源。
更新源
sudo pacman -Sy
非官方仓库(Arch Linux 中文社区仓库)
Arch Linux 中文社区仓库 是由 Arch Linux 中文社区驱动的非官方用户仓库。包含中文用户常用软件、工具、字体/美化包等。
完整的包信息列表(包名称/架构/维护者/状态)请 点击这里 查看。
手动添加archlinuxcn清华源
sudo vim /etc/pacman.conf
用上面的命令编辑/etc/pacman.conf,在最下方添加(这里使用清华大学的源):
1 | [archlinuxcn] |
详情参见附录I。
更新源
sudo pacman -Sy
安装archlinuxcn-keyring包导入GPG key:
sudo pacman -S archlinuxcn-keyring
再次更新源
sudo pacman -Sy
安装yaourt以及pacaur
为了安装使用AUR方便,也可以额外安装yaourt以及pacaur
sudo pacman -S yaourt pacaur
注意:使用使用yaourt安装软件时:
a.不需要使用sudo否则报root错误;
b.在提示调用vim时 输入vim然后回车;
c.如果不想输入vim: 修改~/.zshrc 文件文件最后加入export VISUAL=“vim” 即可。
软件安装时下载加速
设置替换wget或者curl下载命令。以下在配置时,aria2c和axel使用其中一种即可(这里使用aria2c)。
使用aria2c多线程多链接加速
aria2c 是一个自由、开源、轻量级多协议和多源的命令行下载工具。
aria2c 支持 HTTP/HTTPS、FTP、SFTP、 BitTorrent 和 Metalink 协议。
aria2c 可以通过内建的 JSON-RPC 和 XML-RPC 接口来操纵。
aria2c 下载文件的时候,自动验证数据块。它可以通过多个来源或者多个协议下载一个文件,并且会尝试利用你的最大下载带宽。
aria2c 支持多线程,可以使用多个源或协议下载文件,确实可以加速并尽可能多的完成下载。
安装aria2c
sudo pacman -Sy aria2c
配置pacman多线程多链接加速
编辑pacman配置文件/etc/pacman.conf,找到Xfercommand修改成如下:
1 | ...... |
配置yaourt多线程多链接加速
编辑makepkg配置文件/etc/makepkg.conf,找到DLAGENTS修改成如下
1 | ... |
详情请参见附录II。
使用Axel单线程多链接加速
Axel 是一个轻量级下载程序,它和其他加速器一样,对同一个文件建立多个连接,每个连接下载单独的文件片段以更快地完成下载。
Axel 支持 HTTP、HTTPS、FTP 和 FTPS 协议。它也可以使用多个镜像站点下载单个文件,所以,Axel 可以加速下载高达 40%(大约,我个人认为)。它非常轻量级,因为它没有依赖并且使用非常少的 CPU 和内存。
Axel 一步到位地将所有数据直接下载到目标文件(LCTT 译注:而不是像其它的下载软件那样下载成多个文件块,然后拼接)。
注意:不支持在单条命令中下载两个文件。
安装axel
sudo pacman -S axel
配置pacman单线程多链接加速
编辑pacman配置文件/etc/pacman.conf,找到Xfercommand修改成如下:
1 | ...... |
配置yaourt单线程多链接加速
编辑makepkg配置文件/etc/makepkg.conf,找到DLAGENTS修改成如下
1 | ...... |
然后更新数据源
sudo pacman -Syy
安装被锁定的问题
注意:出现无法锁定database的错误时,在确认没有安装任务时运行以下命令删除锁定:
sudo rm /var/lib/pacman/db.lck
升级系统
sudo pacman -Syu
或者
yaourt -Syu
常见的软件安装
pacman 基本用法
安装软件
1 | # 安装或者升级单个软件包,或者一列软件包(包含依赖包),使用如下命令: |
删除软件
1 | # 删除指定安装包,但是保留其全部已安装的依赖关系 |
清空缓存
1 | # 清除未安装软件包的缓存 |
查询
1 | # 在包数据库中查询软件包,查询位置包含了软件包的名字和描述(不指定string,则列出所有已安装的包): |
同步文件数据库
1 | # 同步文件数据库: |
升级系统
1 | # 升级整个系统,这个命令会同步非本地(local)软件仓库并升级系统的软件包: |
安装中文输入法
- 安装小企鹅fcitx:
fcitx安装后会默认安装了拼音和五笔输入法。
sudo pacman -S fcitx fcitx-im fcitx-configtool
需要修改配置文件 ~/.xprofile,添加如下语句:
1 | fcitx |
安装其他中文输入法
搜狗拼音输入法
sudo pacman -S fcitx-sogoupinyin
启动fcitx并设置输入法之后就可以使用中文输入法啦,如果异常请重新登录或者重启!!
安装字体
sudo pacman -S ttf-dejavu wqy-zenhei wqy-microhei ttf-monaco
要使用新安装的字体,需要再设置里自行选择。
- 设置——》外观——》字体——》选择默认字体和默认等宽字体
安装vim
sudo pacman -S vim
超强vim配置
项目地址:https://github.com/elinuxboy/vim-deprecated
使用下面的命令自动安装配置:
wget -qO- https://raw.githubusercontent.com/elinuxboy/vim-deprecated/master/setup.sh | sh -x
或者用另一种方式自动安装:
1 | wget https://raw.githubusercontent.com/elinuxboy/vim-deprecated/master/setup.sh |
安装markdown编辑器
以下只需要使用其中一种或几种。
yaourt -S typora
(推荐使用)
sudo pacman -S remarkable
yaourt -S haroopad
sudo pacman -S retext
安装git
sudo pacman -S git
设置个人github信息
git config --global user.name "github昵称"
git config --global user.email "注册邮箱"
安装smartGit
一个Git客户端。archlinux/manjaro的主源里就有它。
yaout -S smartgit
安装图形化的解压软件
sudo pacman -S p7zip file-roller unrar
安装bat替代cat
sudo pacman -S bat
安装护眼软件红移redshift
sudo pacman -S redshift
安装gnome磁盘管理
sudo pacman -S gnome-disk-utility
安装截图软件(可编辑)
yaourt -S hotshots
注意:因为网络问题,这里可能需要对PKGBUILD做一些修改,将http改为https。
安装google浏览器
sudo pacman -S google-chrome
安装uGet
Linux 下最好的下载管理器
sudo pacman -S uget
安装网易云音乐
yaourt -S netease-cloud-music
安装osdlyrics(本地音乐播放器显示歌词需要)
sudo pacman -S osdlyrics
安装WPS-office
sudo pacman -S wps-office
安装有道词典
有道词典。
yaourt -S youdao-dict
安装ClamAV
Clam 防病毒软件(命令行)
sudo pacman -S clamav
Clam 防病毒软件(客户端)
sudo pacman -S clamtk
安装sublime-text-3
输入法修复版本
yaourt -S sublime-text-3-imfix
如果默认的拼音输入法还是无法使用,需要安装其他中文输入法。如谷歌拼音/搜狗拼音等。
安装虚拟机
yaourt -S vmware-workstation
注意:如果出现vmmod找不到的问题,需要安装linux-headers后再一次安装,之后重新登陆后即可。
安装QQ
yaourt -S deepin.com.qq.im
安装Tim
yaourt -S deepin.com.qq.office
安装微信
微信,公认最好的,是electronic-wechat。
命令直接安装
yaourt -S electronic-wechat
源码编译安装
在下载和运行这个项目之前,你需要在电脑上安装 Git 和 Node.js (来自 npm)。在命令行中输入:
- 下载仓库
git clone https://github.com/geeeeeeeeek/electronic-wechat.git
- 进入源码目录
cd electronic-wechat
- 安装, 运行应用
sudo npm install && sudo npm start
- 根据你的平台打包应用:
sudo npm run build:linux
使用发布版
1 | tar xvf electronic-wechat-linux-x64.tar.gz |
可以给他添加快捷方式
安装oh my zsh
查看系统是否安装了zsh
cat /etc/shells
1 | Pathnames of valid login shells. |
如果已经安装zsh,则会多出来以下条目
1
2/bin/zsh
/usr/bin/zsh
查看系统当前使用的shell
1 | echo $SHELL |
切换shell为zsh
$ chsh -s /bin/zsh
如果要切换回去bash:
chsh -s /bin/bash
重启生效,如下所示:
1 | ...... |
- 查看当前shell
$ echo $SHELL
1 | /bin/zsh |
下载安装 oh my zsh
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
完成后如下所示:
1 | ...... |
配置oh my zsh
- 安装autojump自动跳转插件
1 | sudo pacman -S autojump |
- 安装zsh-syntax-highlighting语法高亮插件
1 | git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting |
- 安装zsh-autosuggestions语法历史记录插件
1 | git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions |
- 安装自动补全插件incr
1 | cd $ZSH_CUSTOM/plugins |
详细的.zshrc请参见附录IV。
- 修改主题
修改.zshrc文件
1 | vim ~.zshrc |
找到ZSH_THEME=“robbyrussell”,修改为:ZSH_THEME=“ys”;
1 | ...... |
更新配置
1 | source .zshrc |
XFCE图标主题美化
安装图标
yaourt -S numix-circle-icon-theme-git
sudo pacman -S papirus-icon-theme
安装主题
sudo pacman -S arc-gtk-theme
设置
- 主题:设置——》外观——》样式——》arc
- 图标:设置——》外观——》图标——》numix circle
优化系统启动速度
Arch Linux 的 systemd-analyze 是个很不错的工具,利用它你可以很直观地观察到系统启动的时间都花到哪儿去了:
systemd-analyze
我注意到打开 AHCI 后,内核和用户空间的载入速度明显提高了,总启动时间从约 30 秒缩短到 20 秒,效果非常明显。
用下面这个命令,可以了解到是什么东西启动最慢:
systemd-analyze blame
此外,还可以把启动过程绘制成 SVG 图表供你审阅(用 GNOME 的图片预览或 Chrome 浏览器都可以打开),这个图表中你还可以观察到是否有启动慢的组件影响到了依赖它的组件的启动:
systemd-analyze plot > plot.svg
将npm的注册表源设置为国内的镜像
国内用户,建议将npm的注册表源设置为国内的镜像,可以大幅提升安装速度。
- 淘宝npm镜像
registry地址:http://registry.npm.taobao.org/
- cnpmjs镜像
搜索地址:http://cnpmjs.org/
registry地址:http://r.cnpmjs.org/
- 临时使用
npm --registry https://registry.npm.taobao.org install express
- 持久使用
npm config set registry https://registry.npm.taobao.org
配置后可通过下面方式来验证是否成功
npm config get registry
或npm info express
通过cnpm(可能需要加上sudo)
npm install -g cnpm --registry=https://registry.npm.taobao.org
使用
cnpm install express
我使用的是cnpm.如下图:
问题与解决
安装中遇到的问题
安装时一直停在“正在加载位置数据”
解决办法:先把网络连接都断开,再启动安装,等地图位置加载完成后,再联网继续安装。
警告:xxx本地比xxx的版本更新
例如,加入archlinuxcn中文社区库后,执行sudo pacman -Syu升级系统后,出现如下问题:
1 | ...... |
解决办法
该问题一般出现在:启用了多个镜像(比如同时使用manjaro官方库和archlinuxcn中文社区库),或者刚切换了镜像,然后执行升级系统命令。
该问题可以忽略,因为archlinuxcn中文社区库里面的版本要比manjaro官方库里面的版本更新,升级后本地的版本就是使用archlinuxcn中文社区库里面的最新版本。
例如:
1 | $ pacman -Ss cower |
当然,也可以给软件包降级:
使用pacman的临时文件(安装本地包)降级
如果一个新包刚刚被安装并且没有删除pacman cache,你可以在
/var/cache/pacman/pkg/
中找到较早版本. 安装替换现有的版本.pacman会处理依赖包但不会处理依赖库的版本冲突。如果一个其依赖库因该包降级需要降级,你需要手动降级这些包。
pacman -U /var/cache/pacman/pkg/package-old_version.pkg.tar.xz
使用远程包(安装远程包)降级
pacman -U http://www.example.com/repo/package-old_version.pkg.tar.xz
aria2c下载xxx.db.sig出现错误
1 | elinuxboy @ mjro18xfce in ~ [7:53:20] |
解决办法
xxx.db.sig 缺失是 database 的签名缺失,这是正常的,现在都只验证 package 的签名,database 都不签名了。
在官方仓库和archlinuxcn中文社区库里已经没有xxx.db.sig文件了,所以当然下载不到。
错误:无法注册 ‘archlinuxcn’ 数据库 (数据库已登记)
1 | ...... |
该问题一般出现在添加archlinuxcn中文社区库的时候添加错文件了,应该是在这个文件“==/etc/pacman.conf==”后面添加archlinuxcn中文社区库,而不是在这个“/etc/pacman.d/mirrorlist”文件后添加。
附录I:/etc/pacman.conf
1 |
|
附录II:/etc/makepkg.conf
1 |
|
附录III:/etc/pacman.d/mirrorlist
1 | # |
附录IV:.zshrc
1 | If you come from bash you might have to change your $PATH. |