Archlinux踩坑指南
由于win10的强势,每次大更新时都会将我EFI
目录下的Linux EFI驱动文件破坏,不得已利用可以建立多个EFI分区的方法解决这个问题,于是选择了Arch,故备下踩坑指南。
首先说明这不是一篇介绍或者安装指南(Wiki已经很全了好么),只是在Arch使用过程中遇到了或许将来还会遇到的一些花了一定时间的坑,故记录一下。
效果图
First of All 我的Arch配置
- 桌面环境
i3
(平铺式、多窗口环境) - Terminal
xfce4-ternimal
(轻量,够用) - Dock管理
dmenu
(简单、够小) - 文件管理
thunar
(xfce的,配套) - PDF查看器
Evince
(GNOME的) - 输入法
ibus-rime
(ibus
比较轻量) - 图像查看器
Feh
(轻量级、强大,同时用来管理桌面壁纸)
安装盘
由于启动盘的程序是根据U盘盘符名称来索引目录的,盘符的名称格式为ARCH_XXXXYY
,其中XXXX
为年份,YY
为两位的月份。
安装
Reference:
安装成功后,启动后启动DHCP服务 systemctl enable dhcpcd.service
使用
EFI分区的标记
boot
分区是要作为EFI
启动的引导分区,首先就要用fdisk
工具将boot
分区的标记(tag)改为EFI,否则后面安装启动器时会失败~
sudoer
我的做法是参考wiki sudo,设置用户组wheel
,赋予该组sudo
权限,添加新用户到该组。
1 | # visudo % 然后去掉wheel组的注释 |
i3
和xorg
的协同
Reference:
记得修改文件都改在用户下,有时候不能随用户登录启动,重新启动一下电脑就好了。
退出i3回到tty-$mod+shift+e
networkmanager安装之后可以使用命令nmtui
连接WIFI。
Offical hot key:
i3 status配置
Reference:
首先在~/.config/i3/config.conf
中添加:(作为颜色设置)
1 | # Start i3bar to display a workspace bar (plus the system information i3status |
同时配合i3 status的设置需要以下一些软件配合。
- 声音控制
volumeicon
并在~/.config/i3/config.conf
中添加:
#start volumeicon exec --no-startup-id volumeicon
xfce4-power-manager
我的放在~/.i3status.conf
中的内容。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77# i3status configuration file.
# see "man i3status" for documentation.
# It is important that this file is edited as UTF-8.
# The following line should contain a sharp s:
# ß
# If the above line is not correctly displayed, fix your editor first!
general {
colors = true
interval = 5
}
order += "ipv6"
order += "disk /"
order += "run_watch DHCP"
order += "run_watch VPN"
order += "wireless _first_"
order += "ethernet _first_"
order += "battery 0"
order += "cpu_temperature 0"
order += "cpu_usage"
#order += "load"
order += "tztime local"
wireless _first_ {
format_up = "Wireless: (%quality at %essid, %bitrate) %ip"
format_down = "Wireless: down"
}
ethernet _first_ {
# if you use %speed, i3status requires root privileges
format_up = "Ethernet: %ip (%speed)"
format_down = "Ethernet: down"
}
#battery 0 {
# format = "%status %percentage %remaining"
#}
battery 0 {
format = "%status %percentage %remaining"
format_down = "No battery"
status_chr = "⚇ CHR"
status_bat = "⚡ BAT"
status_full = "☻ FULL"
path = "/sys/class/power_supply/BAT1/uevent"
low_threshold = 15
}
run_watch DHCP {
pidfile = "/var/run/dhclient*.pid"
}
run_watch VPN {
pidfile = "/var/run/vpnc/pid"
}
tztime local {
format = "%Y-%m-%d %H:%M:%S"
}
load {
format = "Load: %1min"
}
disk "/" {
format = "%avail"
}
cpu_temperature 0 {
format = "CPU Temperature: %degrees °C"
path = "/sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input"
}
cpu_usage {
format = "CPU Usage: %usage"
}
时区
由于我也不怎么经常换时区,更不使用夏令时什么的,为了保证和Windows的时间一样(Windows默认使用Localtime
),就将Arch也设置成一样的。
Reference:
1 | $ timedatectl set-time "yyyy-MM-dd hh:mm:ss" #设置localtime |
输入法
我一直喜欢用ibus-rime
,所以还是安装的它。
1 | pacman -S ibus-rime |
要配置一下.xprofile
1 | export GTK_IM_MODULE=ibus |
运行命令ibus-setup
进行设置。
重新登录后ibus的daemon不随系统启动,所以要运行命令ibus-daemon -drx
启动。我将其加在 将export和该命令放在.zshrc
中,启动shell后即可启动daemon。.xinitrc
中,随i3的启动而启动。
字体
坑爹的是装系统的时候不知怎的默认的monospace
等宽字体居然中英文全部都是乱码的,所以需要配置自己用户的字体配置。(其实无论如何最终都是要配置一下的啦~)
Reference:
- Arch Wiki Fonts
- Arch Wiki Font configuration
- Arch Wiki Microsoft Fonts
- Arch Wiki Linux Location
- one example
1 | %首先将windows字体拷贝过来 |
用户自己的配置需要放置在$XDE_CONFIG_HOME/fontconfig/fonts.conf
里面。而禁止修改全局的配置文件/etc/fonts/fonts.conf
,当然有其他选项可以修改用户的全局配置,请参考wiki。
1 | % 我的fonts.conf |
要单独启用中文的locale
,在.xinitrc
文件中exec i3
之前添加:(不建议在全局/etc/fonts/locale.conf
中设置中文,可以设置为英文,否则会导致tty乱码)
1 | export LANG=zh_CN.UTF-8 |
挖坑不懂啊 可以可以,微软的SimSun宋体就很好。
有个非常神奇的字体渲染的套件Infinanlity Bundle,可以既渲染又设置字体,而不用处理fonts.conf
这个非常累人的设计。(2017年更新:作者已经跑路了,源也停止维护了)
Reference:
1 | 修改/etc/pacman.conf加入: |
AUR
Reference:
AUR是非常好用和实用的软件包,我用它安装了sublime
, wps-office(wps, et, wpp)
, etc
1 | makepkg -rsi %一条命令搞定 |
- f.lux
在AUR中安装了f.lux
,运行命令xflux -l 32N -g 117E
即可,为使其在用户登录的时候启动,我将此命令加在了.xinitrc
中。
驱动记录
本来这个没必要详细记录,毕竟给他人的参考意义不大,然而对我的参考意义还是有的,所以私心在此记录一下。
- 安装ALSA(声卡)
pacman -S alsa-utils
- 安装显卡驱动
- 安装触摸板驱动
pacman -S xf86-input-synaptics
壁纸和截图和电源管理
壁纸需要工具feh
在~/.config/i3/config.conf
中加一角话:
1 | #wallpaper |
截图需要工具xfce4-screenshoot
在~/.config/i3/config.conf
中加一角话:
1 | bindsym Print exec xfce4-screenshooter |
电源管理需要xfce4-powermanager
- sudo pacman -S xfce4-power-manager
- xfce4-power-manager-settings
- Make the necessary configuration settings, such as suspending upon closing the lid
- vi .config/i3/config
- Add this at the bottom:
exec –no-startup-id sleep 3 && xfce4-power-manager
TouchPad
Reference:
My configeration at /etc/X11/xorg.conf.d/70.conf
1 | $ cat 70-synaptics.conf |
Lock, suspand, logout, shutdown, …
Reference:
首先我在/usr/local/bin
写了i3exit
如下:(其中i3lock -i …加锁屏图片)
1 | $ cat /usr/local/bin/i3exit |
然后在~/.config/i3/config
中添加了如下字段:
1 | # i3exit, logout, lock ... |
保证在按下$mod+Fn+Home
=$mod+Pause
时进行选择。
xrandr 多屏幕共享
xrandr
命令是Arch下屏幕管理命令。
我一般用的命令是将屏幕拓展在右侧
1 | $ xrandr --output VGA-1 --right-of LVDS-1 --auto |
应用开坑
Gummi 的一些坑
Gummi是Linux下一个非常好用的Latex编辑工具,不过Arch下有一些坑~
JabBib配合使用作为BibTex的管理工具。JabBib在AUR中。
- 一些TexLive的需要都没有自动装上,我装的如下:
1 | $ pacman -Qs texlive |
- 拼写检查的时候除了自动依赖了
gtkspell
包,同时对于特定语言需要安装hunspell-xx
的语言包才能成功开启拼写检查。 - 关于中文输入,
texlive-langchinese
,texlive-langcjk
是必须的。
然后提供一个latex的tex文档示例
CUDA
Reference:
先安装Nvidia闭源驱动。nvidia-libgl
安装CUDA cuda
, 居然附带了gcc 5.4
…
然后有个nvidia
的包是不自动安装的,需要手动安装,否则module nvidia-uvm
找不到。
!!要记得随时重新启动。。。
1 | $ pacman -Qs nvidia |
Conky
Conky 这个系统监视器配置还是可以很花哨的,所以参考了zenzire/conkyrc @github 配置了一下,好看多了~
Python 环境管理策略
Arch Linux由于包很新,会出现和pip不兼容的问题,导致Arch滚动更新失败,所以引入VirtualEnv
来帮助更合理地管理Python环境。
系统python中的package采用pacman包管理器的包更新和下载策略,坚决不使用pip更新和下载。
当使用特定包工作是,使用virtualenv
,用pip
管理和下载在virtualenv`中的包。
U 盘文件系统
按说安装了thunar
后U盘插上时自动就挂载了,可是突然出现U盘只能读不能写的奇怪情况,原来需要安装NTFS文件系统的驱动ntfs-3g
,好了,一切都好了~
记得重启
服务开坑
SSH
reference:
我的网络环境是路由器有公网IP,且有路由器管理权限
,这就非常简单了:
- 开启服务器SSH服务,
systemctl start sshd
,可以用systemctl status sshd
查看状态,SSH配置参考reference 1. - 路由器设置MAC和内网IP绑定
- 设置路由器虚拟服务器映射规则,在虚拟服务器/转发规则,添加一个允许外网访问的规则。规则的目标就是批准路由允许外网可以访问到对应内网地址端口。设置为,内网地址为自己LINUX内网地址,内网端口为默认22或其他修改后的,如外网端口有设置的也设置与内网端口一样
- 大功告成
NTP(network time protocol)
我是为了保证时间是对的,每次启动从internet更新时间。
首先安装package ntp
编辑/etc/ntp.conf
配置:
1 | $ cat /etc/ntp.conf |
开始使用# ntpd -u ntp:ntp
启动时启用服务# systemctl start ntpd.service
查看同步状态# ntpq -q
根目录占用空间过多
参考Pacman (简体中文)清空软件包缓存就可以达到很好的效果。
LAMP and Owncloud
Reference:
- how-to-install-linux-apache-mysql-php-lamp-stack-on-arch-linux
- mysql-mariadb-not-starting
- Apache 问题处理
FTP
ARCH wiki vsftp
xfce4 ternimal 快捷键设置
参考xfce论坛 在$HOME/.config/xfce4/ternimal/accels.com
文件里设置快捷键, PRIMARY
键似乎默认是Ctrl
,然后我添加了Ctrl+Shift+t
为创建新的一个tab,因为新tab的路径和当前tab的路径是一样的。