安装 Arch Linux

ArchLinux Bash Linux MAC UTF-8 Ubuntu Windows hwclock 字体 磁盘 网络 操作系统

本文介绍如何安装 Arch Linux,一个轻量级、简单的 Linux 发行版。

制作镜像并启动

在arch官方或者bjtu下载到镜像(X86和64)是同一镜像。然后刻录安装盘:

  • linux:

    dd if=/path/to/iso of=/dev/sdc  # 确认 sdc 为你的U盘
    
  • windows:

    1. 下载 dd4dos
    2. dd if=/path/to/iso of="\\.\G:" # 确认G盘为你的U盘

另外,启动不了很正常,和U盘有关。

连接网络

  • 无线网络

    netcfg  # wifi-menu连接无线网
    cd /etc/network.d
    cp ./examples/wireless_XXX ./    
    vi wireless_XXX  #修改参数
    netcfg wireless_XXX
    
  • 对于内核没有支持的无线网卡,安装ndiswrapper使用windows驱动

    1. 安装 pacman -S ndiswrapper
    2. 加载 ndiswrapper -i winXP_driver.inf(可以从windows目录下或驱动安装包找到)
    3. 确认 ndiswrapper -l
    4. 载入模块 modprobe ndiswrapper
    5. 若无线网卡的状态指示灯不亮,重新载入网卡 cardctl eject && cardctl insert

使用 iwconfig 可查看网络设备(wlan0,eth0等),若没有识别请参照wiki

准备硬盘

磁盘分区:

cfdisk /dev/sda #至少一个主分区。

格式化:

mkfs.ext4 /dev/sda1,mkswap /dev/sda2(之后可用 lsblk /dev/sda 查看分区)

挂载:

mount /dev/sda1 /mnt,swapon /dev/sda2

安装

/etc/pacmand./mirrorlist    #配置源
pacstrap -i /mnt base base-devel    #安装

更新静态文件系统信息

genfstab -U -p /mnt >> /mnt/etc/fstab

可能出现的问题

  • GPGME error

    No data:error: failed to update core (invalid or corrupted database (PGP signature))

    /etc/pacman.conf[options] 加入 SigLevel = Never

  • 使用交换文件

    # 建立swap文件
    fallocate -l 512M /swapfile
    # 或者
    dd if=/dev/zero of=/swapfile bs=1M count=512
    # 设置swap
    chmod 600 /swapfile
    mkswap /swapfile
    swapon /swapfile
    # 更新静态文件系统信息 /etc/fstab 中加入:
    /swapfile none swap defaults 0 0
    

配置系统

  1. 进入新系统

更换主目录:arch-chroot /mnt 更新系统:配置/etc/pacman.d/mirrorlist并pacman -Syu

  1. 设置区域
    • 设置地区:ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    • 设置硬件时钟:hwclock --systohc --utc
    • 自动同步时间:sudo systemctl enable ntpd(需要ntp)
    • fix windows:
    • add a DWORD value with hexadecimal value 1 to the registry: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal
    • disable time auto sync
  2. 设置语言
    • 设置语言选项:修改 /etc/locale.genlocale-gen
    • 设置语言:echo LANG=en_US.UTF-8 > /etc/locale.conf
    • 设置主机:echo myhostname > /etc/hostname
  3. 配置网络
    • 安装netcfg用到的工具包:pacman -S wireless_tools wpa_supplicant wpa_actiond ifplugd dialog
    • 启用自动连接
    • 单一网络:systemctl enable dhcpcd@eth0.service
    • 变化网络:自动连接在 /etc/network.d 下的网络

      systemctl enable net-auto-wired.service
      systemctl enable net-auto-wireless.service
      
  4. 设置用户
    • 设置root密码:passwd
    • 添加用户:useradd -m -g users -s /bin/bash harttle,设置用户密码:passwd harttle
    • 删除用户:userdel -r harttle

重建引导

以grub为例,可选syslinux

  • 安装grub:pacman -S grub-bios
  • 写入主引导:grub-install --target=i386-pc --recheck /dev/sda
  • 设置grub区域:

    cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo
    
  • 更新启动列表
    • 搜索windows:pacman -S os-prober
    • 更新列表:grub-mkconfig -o /boot/grub/grub.cfg
  • 重启:exit;umount /mnt{boot,home,};reboot

/etc/default/grub中添加GRUB_SAVEDEFAULT="TRUE"后再次grub-mkconfig将会默认选中上次启动的系统。

安装工具

  • AUR

    # /etc/pacman.conf 中加入
    [archlinuxfr]
    SigLevel = Optional TrustAll
    Server = http://repo.archlinux.fr/$arch
    pacman -Syu yaourt
    
  • sudo

    • 安装:pacman -S sudo
    • 配置:/etc/sudoers 添加 harttle ALL=(ALL) ALL,使harttle可以使用sudo
  • bash 自动补全:bash-completion

  • vim

安装图形界面

以KDE为例,可选gnome

  1. 安装驱动:mesa(3D),xf86-video-vesa(Default),xf86-video-nouveau(open nvidia),nouveau-dri(open nvidia)

  2. 安装图形界面的底层协议实现:pacman -S xorg

  3. 安装kde及其语言包:pacman -S kde kde-l10n-zh_cn
    • 最小安装:kdebasekde-l10n-zh_cn
  4. 设置启动
    • 采用 startx~/.xinitrc 加入 exec ck-launch-session startx
    • 采用kdm(kde),可选gdm(gnome)
    • 安装 kdebase-workspace,编辑 ~/.xprofile
    • 设置 kdm 启动:systemctl enable kdm
  5. kde的gtk支持:安装 oxygen-gtk2oxygen-gtk3kde-gtk-config(AUR) 进入系统设置->公共外观行为->应用程序外观->gtk configuration相关设置

  6. kde网络管理

bash pacman -S networkmanager kdeplasma-applets-networkmanagement systemctl enable NetworkManager.service

  1. 设置登录屏幕主题:archlinux-themes-kdm(AUR),kde systemsettings 中的设置不起作用

  2. 在fstab加入开机挂载的分区,需要 ntfs-3g(AUR)

bash /dev/hda1 /mnt/winC ntfs-3g iocharset=utf8,umask=022,noatime 0 0

汉化

X默认字符集

设置X默认字符集:在 ~/.bashrc~/.xinitrc~/.xprofile 中加入

LOCALE=en_US.UTF-8
export LANG=zh_CN.UTF-8
export LC_ALL="zh_CN.UTF-8"

安装字体库

中文字体库有很多不错的:wqy-bitmapfontwqy-zenheittf-arphic-ukaittf-arphic-umingttf-fireflysungwqy-microhei(AUR),wqy-microhei-lite(AUR)

输入法

安装 fcitx: pacman -S fcitx fcitx-gtk2 fcitx-gtk3 fcitx-qt

安装配置工具:fcitx-configtool(基于gtk3), fcitx-configtool-gtk2(基于gtk2), kcm-fcitx(基于KDE的KCM)

设置X的输入法:在 ~/.xinitrc~/.xprofile 中加入:

export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx

设置启动:cp /etc/xdg/autostart/fcitx-autostart.desktop ~/.config/autostart/

输入法对不同语言的键盘映射在~/.config/fcitx/data/punc.mb.<LANG>,可以手动更改(例如中文中括号)。

终端输入法

fbterm

  • 安装

    yaourt -S fbterm fcitx-fbterm
    sudo gpasswd -a YOUR_USERNAME video #非根用户运行fbterm
    sudo setcap 'cap_sys_tty_config+ep' /usr/bin/fbterm 或:sudo chmod u+s /usr/bin/fbterm #非根用户可使用键盘快捷方式
    
  • 配置

    # ~/.fbtermrc
    font-names = Consolas(Monaco),微软雅黑
    font-size=15
    
    # ~/.bashrc
    if [ "$TERM" = "linux" ]; then  
      alias fbterm='LANG=zh_CN.UTF-8 fbterm'  
      fbterm  
    fi
    

字体

可在AUR中直接安装 Ubuntu字体、开源字体、Adobe字体,甚至 Windows 字体。 以效果奇佳的Ubuntu字体设置为例:

安装 cairo-ubuntu ttf-dejavu ttf-liberation wqy-zenhei ttf-arphic-ukai ttf-arphic-uming

如果想避免下面这些复杂的字体渲染设置,直接安装ttf-dejavuadobe-source-han-sans-cn-fonts效果就不错(干掉其他所有字体,通过fc-list可以查看)。

~/.config/fontconfig/fonts.conf配置字体:

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
 <match target="font">
  <edit name="spacing"> <int>0</int> </edit>
  <edit mode="assign" name="antialias"> <bool>true</bool> </edit>
  <edit mode="assign" name="hinting"> <bool>true</bool> </edit>
  <edit mode="assign" name="hintstyle"> <const>hintslight</const> </edit>
  <edit mode="assign" name="autohint"> <bool>false</bool> </edit>
  <edit mode="assign" name="rh_prefer_bitmaps"> <bool>false</bool> </edit>
  <edit mode="assign" name="rgba"> <const>rgb</const> </edit>
  <edit name="embeddedbitmap"> <bool>false</bool> </edit>
  <edit mode="append" name="lcdfilter"> <const>lcddefault</const> </edit>
 </match>
 <alias>
  <family>serif</family>
  <prefer>
   <family>WenQuanYi Zen Hei</family>
   <family>Bitstream Vera Serif</family>
   <family>DejaVu Serif</family>
  </prefer>
 </alias>
 <alias>
  <family>sans-serif</family>
  <prefer>
   <family>WenQuanYi Zen Hei</family>
   <family>DejaVu Sans</family>
   <family>Bitstream Vera Sans</family>
  </prefer>
 </alias>
 <alias>
  <family>monospace</family>
  <prefer>
   <family>WenQuanYi Zen Hei Mono</family>
   <family>DejaVu Sans Mono</family>
   <family>Bitstream Vera Sans Mono</family>
  </prefer>
 </alias>

 <!-- To substitute some famous Chinese fonts -->
 <match target="pattern">
  <test name="family"> <string>宋体</string> </test>
  <edit mode="assign" name="family"> <string>SimSun</string> </edit>
 </match>
 <match target="pattern">
  <test name="family"> <string>新宋体</string> </test>
  <edit mode="assign" name="family"> <string>SimSun</string> </edit>
 </match>
 <match target="pattern">
  <test name="family"> <string>楷体</string> </test>
  <edit mode="assign" name="family"> <string>KaiTi</string> </edit>
 </match>
 <match target="pattern">
  <test name="family"> <string>楷体_GB2312</string> </test>
  <edit mode="assign" name="family"> <string>KaiTi</string> </edit>
 </match>
 <match target="pattern">
  <test name="family"> <string>黑体</string> </test>
  <edit mode="assign" name="family"> <string>SimHei</string> </edit>
 </match>
 <match target="pattern">
  <test name="family"> <string>微软雅黑</string> </test>
  <edit mode="assign" name="family"> <string>SimHei</string> </edit>
 </match>
 <alias binding="strong">
  <family>SimSun</family>
  <accept> <family>AR PL UMing CN</family> </accept>
 </alias>
 <alias binding="strong">
  <family>KaiTi</family>
  <accept> <family>AR PL UKai CN</family> </accept>
 </alias>
 <alias binding="strong">
  <family>SimHei</family>
  <accept> <family>WenQuanYi Zen Hei</family> </accept>
 </alias>

 <!-- To substitute some English fonts -->
 <alias binding="strong">
  <family>BookAntiqua</family>
  <accept> <family>URW Palladio L</family> </accept>
 </alias>
 <alias binding="strong">
  <family>Georgia</family>
  <accept> <family>Liberation Serif</family> </accept>
 </alias>
 <alias binding="strong">
  <family>Verdana</family>
  <accept> <family>Liberation Sans</family> </accept>
 </alias>
 <alias binding="strong">
  <family>Calibri</family>
  <accept> <family>Liberation Sans</family> </accept>
 </alias>
</fontconfig>

Ubuntu 的hintstyle选择slighthint较好。有些桌面环境的字体配置模块会在桌面启动时对~/.config/fontconfig/fonts.conf进行修改,此时应保持字体模块的设置与此相同。

对于konsole终端字体,可以在~/.kde4/share/apps/konsole/Shell.profile配置(设置页面的配置文件),在页面中只允许更改monospace字体,可以在这里任意修改字体,如:

#    1                        2    3  4 5  6 7 8 9 10
Font=WenQuanYi Micro Hei Mono,10.5,-1,5,62,0,0,0,0,0

该配置的含义没有文档!执行konsole --list-profile-properties可以看到字体的类型为QFont文档见:http://qt-project.org/doc/qt-4.8/qfont.html 。经测试,第1字段为Family,第2字段为Size,第5字段为Weight,第6字段为Italic(0或1)。

Constant Value Description
QFont::Light 25 25
QFont::Normal 50 50
QFont::DemiBold 63 63
QFont::Bold 75 75
QFont::Black 87 87

参考阅读

Harttle

致力于简单的、一致的、高效的前端开发

看看这个?