Arch的使用笔记

发布于 2018-12-26  27 次阅读


触linux一两年了,一直都是走马观花,在体验过Ubuntu和Mint之后,我最终选择了Arch,小巧简单、文档丰富、社区完善、高度定制化...这些无不吸引着我(还有就是因为Arch娘可爱啊(逃。这篇文章主要记录日常使用中遇到的问题及解决方案(说明:大多数解决方法来源于网络,不保证在经过很长时间后还会有用,只作为一个参考)。环境:DE是KDE Plasma,双系统,和Win 10共存,引导使用rEFInd。

不断更新中...

系统

降级

有时候我们升级一些软件会遇到bug,这时就需要降级了
降级十分简单,首先查看 /var/cache/pacman/pkg/ 有没有旧版本的包,有的话直接 sudo pacman -U path/to/包名 就行。
如果你已经删除了旧版本的包,那就需要在 https://archive.archlinux.org 去下载相应的包了。下载完成后与前面一致,执行 sudo pacman -U path/to/包名 就行。
如果你不想更新某个软件,只需要在 /etc/pacman.conf 中加一行:

IgnorePkg   =   包名    ## 包名可以不用软件版本号

无法更新

$ sudo pacman -Syu
:: 正在同步软件包数据库...
错误:无法升级 core (无法锁定数据库)
错误:无法升级 extra (无法锁定数据库)
错误:无法升级 community (无法锁定数据库)
错误:无法升级 archlinuxcn (无法锁定数据库)
错误:无法升级 archlinuxfr (无法锁定数据库)

如果你确认软件包管理器没有在运行,
你可以删除 /var/lib/pacman/db.lck。

$ sudo rm /var/lib/pacman/db.lck

禁用独立显卡

安装Bumblebee和bbswitch

bbswitch作为一个模块存在,安装后可以使用

$ modprobe bbswitch ##将其加载
$ rmmod bbswitch ##将其卸载
$ cat /proc/acpi/bbswitch ##查看其独立显卡运行状态。

关闭/开启独立显卡的指令为

tee /proc/acpi/bbswitch <<<OFF ## 关闭
tee /proc/acpi/bbswitch <<<ON ##开启

若执行关闭后查看状态仍为ON,可能是因为独立显卡的驱动仍在运行,无法关闭。可以通过dmesg查询错误信息:

$ dmesg |tail -1
bbswitch: device 0000:01:00.0 is in use by driver 'nvidia', refusing OFF

我们可以将驱动nvidia模块卸载

$ rmmod nvidia

使用bbswitch时默认的 NVIDIA 电源状态

$ vim  /etc/modprobe.d/bbswitch.conf
options bbswitch load_state=0 unload_state=1

关机时启用NVIDIA显卡

$ vim /etc/systemd/system/nvidia-enable.service
[Unit]
Description=Enable NVIDIA card
DefaultDependencies=no

[Service]
Type=oneshot
ExecStart=/bin/sh -c 'echo ON > /proc/acpi/bbswitch'

[Install]
WantedBy=shutdown.target
 ```
然后以root权限运行`systemctl enable nvidia-enable.service`以启用服务。
<h2>每次内核更新WARNING</h2>
每次内核更新都会看到这两个WARNING

```bash
==> WARNING: Possibly missing firmware for module: aic94xx
==> WARNING: Possibly missing firmware for module: wd719x 

如果是普通用户不用去管,忽略即可

Of importance is that this module is entirely unnecessary for most users.
It's simply a warning as these are commonly used modules for SAS/SCSI Disk Controllers in server hardware.
It's not recommended that you install these if you don't have such hardware in your system.
If you don't know what they are, don't install them.
Because if you did know what they are you'd know if you needed them to get your disks working.

没有ifconfig

ArchLinux安装后是没有ifconfig命令的,是因为以前net-tools属于base组,装base时自动就装上了,现在哪个组都不属于了,这些工具需要单独安装。其中ifconfigroutenet-tools包中,nslookupdigdnsutils包中,ftptelnet等在inetutils包中,ip命令在iproute2包中。

sudo pacman -S net-tools dnsutils inetutils iproute2

软件

网易云

似乎出来deepin网易云会有各种bug,这里我找到的解决方法是:将启动命令改为XDG_CURRENT_DESKTOP=DDE netease-cloud-music %U

WPS

似乎离不开office啊,周围人都在用,,,wps对微软office兼容性较高

公式无法正常显示

安装 ttf-wps-fonts(AUR)

KDE中Microsoft Office文件格式被识别为Zip

sudo rm /usr/share/mime/packages/wps-office-*.xml
sudo update-mime-database /usr/share/mime

使用 GTK+ UI

WPS 默认的 UI 为 Qt,事实上其捆绑的 Qt 为 4.7.4,从而因为版本不符,无法正常加载 qtcurve 之类的主题。

可以修改{{Ic|/usr/share/applications/wps-office-{wps,wpp,et}.desktop}}一劳永逸设定:

Exec=/usr/bin/{wps,wpp,et} -style gtk+ %f

JetBrains系软件

我使用过Idea和Clion,更新系统会出现jdk或者jre的错误。尝试

sudo pacman -Syyu --ignore jre
sudo pacman -Syyu --ignore jdk

如果出现××已经存在、××无法读取的情况,先卸载jdk、jre再安装
记得一定先装jre再装jdk,不然JetBrains系软件不能启动

sudo pacman -S jre
sudo pacman -S jdk

Chromium不能观看Netflix

https://aur.archlinux.org/packages/chromium-widevine/ 下载安装 chromium-widevine即可。

git clone https://aur.archlinux.org/chromium-widevine.git
cd chromium-widevine
makepkg -sri

BBR

唔,这个主要是给树莓派用的

What:

https://github.com/google/bbr

One Command:

sudo modprobe tcp_bbr

Turn on:

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control

Enable It:

echo "net.core.default_qdisc=fq" >> /etc/sysctl.d/tcp-bbr.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.d/tcp-bbr.conf

Check:

lsmod | grep bbr