前阵子Fedora太不稳定,几乎不能正常使用了,同时也对版本形式的linux每次升级后各种扫尾和清扫工作感到有点厌倦,心里也非常想体验一下linux的滚动发行版,所以下定决心要干掉fedora,主流的有两个,一个Gentoo,一个是Arch,对比了一下,前者要求技术太高深,主要是要从本机开始编译到运行,等于是完全自己定制一个linux出来,一来自己虽然用了两年fedora,但是并不是什么大师,二来现在也没太多的时间来研究linux,所以选择了KISS原则的Arch。于是把自己home文件夹下的一些vim,emacs等的配置文件好好整理保存了下,开始了两年来冲ubuntu到fedora后的第二次迁移~因为感觉这是从RHEL系脱离的第一步,所以记录一下,同时也算是一个经验。
一、准备工作archlinux.org下载安装镜像,dd到u盘,重启后选择U盘启动,选择需要的版本「x86或者x64」就可以开始安装啦。这里要说明的是arch的安装过程要求必须联网的,因为arch认为现在不联网用arch不太现实,所以安装iso里的内容只包含内核等相关的确保能引导的组建,其他组建需要安装过程中pacman来下载。另外,记得给你的硬盘预留好空间,linux下可以用cfdisk,windows下用磁盘管理器。用到的命令如下。# dd bs=4M if=/xx/archlinux.iso of=/dev/sdx && sync注意,dd后的U盘如果要重新当作普通移动盘使用,需要umount后使用mkfs.vfat命令格式化后才能正常使用。如果你是windows环境,可以用windows下的工具,如opensuse的write或者wiki里推荐的Cygwin。其他类似工具还有很多,usbootin,universal installer等等,可以自己找个喜欢的用,出现问题Google通常就能找到解决方案。 二、进入安装环境这里要检测下是否在UEFI模式下# mount -t efivarfs /sys/firmware/efi/evivars# efivars -l如果efivars正确列出了UEFI变量,则Archlinux是UEFI模式启动。 三、网络连接这是如果你是新机器,最好下载最近的iso安装镜像,因为新安装镜像里往往有最新的内核,不然可能无法识别的你的网卡驱动。如果真的出现不能识别的情况,可能就需要自己去找对应的驱动模块了。不过通常有无线和有线两块网卡,同时不能用的话,你的人品得多差啊。如果是有线网卡的话# dhpcpd如果是无线网卡的话# wifi-menu如果需要配置adsl连接,执行下面的命令# pppoe-setup# systemctl start adsl不过推荐还是买个路由器,给路由器设置好,这样省掉不少麻烦事。 四、pacman的源选择和fedora不同,由于arch是安装时候就要下载相关组件了,所以fedora的安装完成后yum install faster-mirror等插件的路子行不通了,不过好在pacman的mirror-list文件里提供了现在的说有主流源地址,我们可以为pacman提前选择好源。# vi /etc/pacman.d/mirrorlist复制希望优先使用的源说在行到最前端,最好选择5个优先使用源,保存,然后退出。 五、硬盘分区因为我是老机器,而且要保留windows,所以我是bios+mbr引导,如果你机器上仅仅有linux,可以用gpt替换mbr,如果你想用UEFI,需要另外分出来一块vFat分区留作引导。由于博主不使用uefi,所以没有亲身实践过,具体如何操作自行个Google吧。这里我使用的是lvm分卷,lvm的好处在于可以比较方便的扩展或者缩小一些挂载目录块大小。不过也多了一些步骤。下面给出具体步骤。# cfdisk找到你刚刚预留的空间块,首先把空闲块分出来500MB的空间,用来挂载boot,之所以这样做是以为内grub不能识别lvm,所以要把boot单独处理一下。这里建议boot的文件系统选择ext4或者ext2,而且要打上bootable标识,boot嘛,不能引导还boot个屁对不对。剩下的空间分区类型选择lvm「type为 8e 」,然后选择write,确认后就会保存分区表了。接下来就是在你刚刚分好的空间上创建lvm了,首先为了以防万一,加载一下相应模块# modproe dm-mod创建物理卷PV[Physica1 Volume]# pvcreate /dev/sdax 注意,这里sdax是你刚刚分出来的空闲块创建卷组VG[Volume Group]# vgcreate arch-lvm /dev/sdax 这里sdax意义同上下面在刚刚创建的卷组上分别创建swap,root,home逻辑卷,用来挂载swap,root和home这里要说明下swap大小的问题,它的大小确实比较纠结,太大的话可能会导致系统认为内存非常大而把运行内容全部装入“内存”导致数度缓慢, 太小的话可能以后安装软件,或者想要使用系统的睡眠和休眠功能的时候发现无法正常使用。博主内存是4G,博主根据自己的目的把swap分了4G空间,用了至今两个月,没出现过什么大问题,这里仅仅作为参考,swap大小到底多少,自己决定。创建4G大小的swap逻辑卷 arch-swap# lvcreate -L 4G -n arch-swap arch-lvm创建30G大小的root逻辑卷 arch-root# lvcreate -L 30G -n arch-root arch-lvm剩下的空间全部划给home# lvcreate -l 100%FREE -n arch-home arch-lvm上面操作完成后,可以分别使用pvdisplay,vgdisplay,lvdisplay来查看各级分卷情况。接下来格式化上述分卷为ext4格式化boot分区# mkfs.ext4 /dev/sdax 格式化root,home分卷# mkfs.ext4 /dev/arch-lvm/arch-root# mkfs.ext4 /dev/arch-lvm/arch-root格式化swap,并且启用swap# mkswap /dev/arch-lvm/arch-swap# swapon /dev/arch-lvm/arch-swap 六、系统安装挂载刚刚创建的分区到指定挂载点# mkdir /mnt/boot# mkdir /mnt/home# mount /dev/arch-lvm/arch-root /mnt/# mount /dev/arch-lvm/arch-home /mnt/home# mount /dev/sdax /mnt/boot安装基础系统# pacstrap -i /mnt base生成fstab,使用UUID# genfstab -U -p /mnt >> /mnt/etc/fstab检查刚刚生成的fstab,确保每行最后pass部分,根目录为1,其他为2。对btrfs和swap,应该为0。# vi /mnt/etc/fatab 七、进入,配置基础系统执行chroot到刚刚安装的新系统`# arch-chroot /mnt写入主机名# echo yourHostname > /etc/hostname编辑/etc/locale.gen,取消如下行的注释en_US.UTF-8 UTF-8zh_CN.UTF-8 UTF-8zh_CN.GBK GBKzh_CN GB2312zh_CN.GB18030 GB18030执行locale-gen# locale-gen设置默认语言# echo LANG=zh_CN.UTF-8 > /etc/locale.conf设置时间# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime设置硬件时间为UTC# hwclock --systohc --utc 设置root密码# passwd因为我使用lvm,所以需要在在mkinitcpio.conf中加入lvm的hook,不然无法正常引导,需要保证udev和lvm2两个mkinitcpio钩子启用。udev通常已经预设好,编辑/etc/mkinitcpio.conf文件,在block和filesystem两项中间加入lvm2:HOOKS=“.........block lvm2 filesystem”安装Grub# pacman -S grub# grub-install –target=i386-pc –recheck /dev/sda生成配置文件,由于我需要引导windows所以需要另外安装os-prober# pacman -S os-prober# grub-mkconfig -o /boot/grub/grub.cfg添加普通用户,通常不建议直接用root用户,原因很多,因为root下一些操作不会有权限提升提示,很可能一个操作导致整个系统完蛋。# useradd -m -g users -G wheel -s /bin/bash <.username>为刚刚创建的用户设置密码# passwd <username>先装上神器vim,后面配置sudo会用到# pacman -S vim添加sudo# pacman -S sudo# visudo反注释以下行,然后保存退出%wheel ALL=(ALL) ALL 添加刚刚创建的普通用户到wheel用户组# gpasswd -a <username> wheel启用sudo后sudo下普全可能会失效,以下是解决办法# pacman -S bash-completion$ echo complete -cf sudo >> ~/.bashrc配置声音,这里是命令行环境下的配置,安装图形环境后也可以用其他的配置方法# pacman -S alsa-utils# alsamixer会打开调整界面,根据提示可以很方便的调整启用Multilib# vim /etc/pacman.conf添加如下内容[multilib]Include = /etc/pacman.d/mirrorlist保存退出,pacman升级下配置# pacman -Syu安装Multilib相关内容# pacman -S gcc-multilib gcc-libs-multilib binutils-multilib libtool-multilib lib32-glibc如果之前安装过base-devel,可能会提示移除一些包,确定即可。 安装yaourt用archlinux就一定会用到AUR,想比较方便的用AUR的话yaourt就是必不可少的工具,当然可以去AUR下载相应的PKGBUILD和文件后自己本地 makepkg -si,不过yaourt安装比较方便安装依赖base-devel,fakeroot,sudo由于之前有安装sudo和Multilib,这里只需要安装fakeroot即可# pacman -S fakeroot安装package-query$ wget https://aur.archlinux.org/packages/pa/package-query/package-query.tar.gz$ tar zxvf package-query.tar.gz$ cd package-query$ makepkg -si$ cd .安装yaourt$ wget https://aur.archlinux.org/packages/ya/yaourt/yaourt.tar.gz$ tar zxvf yaourt.tar.gz$ cd yaourt$ makepkg -si$ cd …安装完成后以后可以用yaourt来更新系统,或者仅仅更新aur包,命令分别为$ yaourt -Syua$ yaourt -Sbu –aur如果要搜索安装某个包$ yaorut 软件包名[输入部分即可]更多用法可以去wiki上阅读 八、图形化激动人心的时刻,安装X和相关显卡驱动安装X Server# pacman -S xorg-server xorg-xinit xorg-utils xorg-server-utils添加3D支持# pacman -S mesa安装显卡驱动如果不知道自己的显卡型号$ lspci | grep VGA然后根据型号安装,这里我是9600M GS,所以# pacman -S nvidia nvidia-utils nvidia-libglx64上为了更好发挥显卡性能,需要安装lib32-nvidia-libgl# pacman -S lib32-nvidia-libgl 通过nvidia-xconfig自动配置X环境# nvidia-xconfig这里因为还没有安装桌面环境和登录管理器,所以暂时不需要重新启动安装slim和openbox# pacman slim openbox添加slim服务,使slim可以开机自启动# systemctl enable slim.service安装一些slim主题# pacman -S slim-themes archlinux-themes-slim如果想要修改主题先预览一下已经安装的主题$ slim -p /usr/share/slim/themes/<theme name>记住想要设置的主题的名字,编辑slim.conf# vim /etc/slim.conf编辑current_theme行,如下所示,改成需要的主题#current_theme defaultcurrent_theme archlinux-simplyblack让slim负责引导openbox$ vim ~/.xinitrc添加如下行exec dbus-launch openbox-session这里之所以加上 dbus-launch,是为了以后PcmanFM显示trash等需要安装输入法这里选择安装fctix,我自己感觉fcitx-pinyin+fcitx-cloudpinyin就已经足够使用了# pacman -S fcitx fcitx-cloudpinyin fcitx-configtool fcitx-gtk2 fcitx-gtk3 fcitx-qt4在~/.xinitrc中加入如下行export GTK_IM_MODULE=fcitxexport QT_IM_MODULE=fcitxxport XMODIFIERS="@im=fcitx"然后根据自己需要配置模糊拼音,翻页键等即可,如果想要好看的皮肤,可以去把DeepinLinux下搜狗的皮肤拿来复制到fcitx的皮肤目录,即能使用安装常用软件,这里根据自己需要安装,本人只是列出了本人目前安装的感觉有用的包# pacman pcmanfm lxapperange lxterminal lxtask emacs leafpad chromium libreoffice gimp blender djview4 feh scrot fontforge hugin inkscape luminance gpicview evince deadbeef vlc wine virtualbox qemu bochs codebocks eclipse qt4 qt5 qtcreate parcellite file-roller p7zip aircrack-ng wireshark ophcrack nmap qalculate gome-calculator xfce4-power-manager xfce4-mixer laptop-mode-tools volumeicon obconf dmenu_run xscreensaver lxpolkit gvfs mtpfs gstreamer gstreamer0.10 libusbx libusb-compat conky recordmydesktop screenfecth mariadb mariadi-clients vsftpd dnsutils dnstracer 其中有文本编辑,有多媒体,有pdf,djvu阅读,有屏幕录像recordmydesktop,有屏幕截图scrot,等等等等,想了解每个的功能Google一下吧~yaourt下安装的软件如下acroread aftershotpro chromium-libpdf-stable chromium-pepper-flash-stable crunch gimp-resynth-git qt5-jsbackend tint2-svn tintwizard xcursor-human lib32-libusbx安装常用字体# pacman -S ttf-dejavu# pacman -S wqy-microhei后面会说到安装Microsoft的字体openbox配置,拷贝相关的四个文件 rc,menu,autostart,enviroment四个文件到用户下相关目录$ mkdir -p ~/.config/openbox$ cp /etc/xdg/openbox/{rc.xml,menu.xml,autostart,environment} ~/.config/openbox安装xdgmenu用来生成菜单# pacman -S archlinux-xdg-menu在menu.xml中加入以下代码:<menu id="apps" label="所有应用" execute="xdg_menu --format openbox3-pipe --root-menu /etc/xdg/menus/arch-applications.menu" />然后在在'root-menu'中加入 <menu id="apps" />其他相关的软件有Obmenu,MenuMaker等,更多细节见arch官方wiki的openbox页面添加ll快捷命令$ vim ~/.bashrc添加如下行alias ll='ls -l'alias ls='ls --color=auto'PS1='[\u@\h \W]\$ '设置feh来显示桌面背景
$ vim .fehbg写入如下行feh --bg-scale '你的图片路径'设置chromium为默认浏览器$ vim .profile写入如下内容#set chromium as default browserif [ -n "$DISPLAY" ]; then BROWSER=chromiumfi配置conky 因为内容较多,直接把文件备份到网盘~下载后替换~/.conkyrc配置vim,同上,下载网盘备份文件替换~/.vimrc安装network-manager和nm-applet# pacman -S network-manager nm-applet gnome-keyring# systemctl enable NetworkManager# systemctl start NetworkManager要让 Openbox autostart 启动 nm-applet,需要删除文件/etc/xdg/autostart/nm-applet.desktop。每次更新 network-manager-applet 都需要删除这个文件。把openbox的rc,menu,autostart,environment文件备份到网盘,以后方便以后使用。
另外,screenfetch中有个小问题,有可能导致运行后不显示发行版本,自己根据其逻辑语句修改下即可。「lsb_release 相关」另外关于openbox,tint2的主题,都备份到网盘,留作以后使用。配置图标主题# pacman -S hicolor-icon-theme gnome-icon-theme gnome-icon-theme-symbolic icon-naming-utils gtk-update-icon-cache 这里仅仅是列出可能需要安装的包,具体还需要参考wiki图标主题另外安装Faenza,这里博主自己添加了一些自己用到的缺少的图标,如parcellite,也可以自己Gimp来创作,所以保存到网盘留作备用。配置字体下载好微软字体# cd /usr/share/fonts# mkdir msFont/# cp yourFont /usr/share/fonts/msFont# chmod +644 msFont/*# cd msFont# mkfontscale# mkfontdir# fc-cache -fsv然后即可通过lxapperance修改字体啦。修改systemd来调整关闭盖子,按下电源键的动作,当然,也可以通过xfce4-power-manager来调整# vim /etc/systemd/logind.conf根据里面的例子就能改好的,这里不多叙述。「其实是写到现在有点坐不住了,哈哈,不过里面英语很好理解的」安装jdk
这个巨恶心,不过没办法,为了开发,乌龟壳的Jdk一定要有的。去oracle官网下载最新的jdk,安装之,然后有很多方法来设置环境变量,博主是懒人,而且现在java安装后就是/opt/java,升级后覆盖安装一次就好了,所以最直接搞定,直接在bin里创建链接,# ln -s /opt/java/bin/java /usr/bin/java# ln -s /opt/java/bin/javac /usr/bin/javac# ln -s /opt/java/bin/javaws /usr/bin/javaws当然,推荐还是$ vim ~/.bashrc写入如下内容export JAVA_HOME=/opt/java/export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar注意,这里要根据你自己的java安装路径来调整。这里要注意一下,好像现在冲oracle官网上下载的jdk安装包安装后会自动帮你设置好环境变量,博主记不清当初是aur里安装还是oracle上直接下载bin文件安装了,上面那个ln应该是以前fedora上的懒方法。
Eclipse
这里记录下安装的插件,ADT,Android Developer上下载PyDev, Google一下就能找到对应的网站,按照其说明就能安装该插件。Android SDK
Google官网下载,然后通过ADT和Eclipse集成即可,步骤android官网有教程。为了以后便于管理,$ vim ~/.bashrc写入以下内容#android sdkexport PATH="$PATH:/home/exiahan/Developments/android-sdk-linux/tools"这样以后直接终端输入android就能打开sdk管理器volumeIcon和xfce4-mixer集成很简单,volumeIcon--->preference-->External Mixer里填上exec 'xfce4-mixer'另外建议字体选择微软雅黑或者宋体,chromium字体选择宋体,新宋体。
另外关于Deadbeef,如果出现歌名乱码,相应歌曲的信息转换为UTF-8即可。如果是flac或者ape,则转换cue文件为UTF-8。由于这篇文章写在已经用了快3个月以后的时间,所以难免有疏漏,以后慢慢的再补全。
注明:文章参考了arch官方wiki和arch forum中部分帖子的内容。