前阵子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-8
zh_CN.UTF-8 UTF-8
zh_CN.GBK GBK
zh_CN GB2312
zh_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-libgl
x64上为了更好发挥显卡性能,需要安装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 default
current_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=fcitx
export QT_IM_MODULE=fcitx
xport 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 browser
if [ -n "$DISPLAY" ]; then
BROWSER=chromium
fi
配置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:$PATH
export 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 sdk
export 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中部分帖子的内容。

Archlinux 安装小计的更多相关文章

  1. VMProtect使用小计【一】

    文章列表 VMProtect使用小计[一] – 初次使用VMProtect使用小计[二] – 加壳查看VMProtect使用小计[三] – 权限管理 说明 VMProtect的功能我就不说了,详情大家 ...

  2. SQLSERVER 使用 ROLLUP 汇总数据,实现分组统计,合计,小计

    表结构: CREATE TABLE [dbo].[Students]( ,) NOT NULL, ) NULL, [Sex] [int] NOT NULL, ) NULL, ) NULL, , ) N ...

  3. PB gird类型数据窗口 设置分组、分组小计、合计

    今天遇到一个需求,gird表格数据如下:  部门  类型 数据   A  类型1  1  A  类型2  2  B  类型1  3  B  类型2  4   合计 10 实际需要显示的结果为:  部门 ...

  4. 简单的angular购物车商品小计

    <!DOCTYPE html> <html lang="en" ng-app="shopApp"> <head> <m ...

  5. C#给DataTable添加序号、C#给DataTable添加合计、小计

    /// <summary>        /// 给DataTable添加序号        /// </summary>        /// <param name= ...

  6. ArchLinux 安装笔记:续 --zz

    续前话 在虚拟机里调试了几天,终于鼓起勇气往实体机安装了,到桌面环境为止的安装过程可以看我的前一篇文章<ArchLinux 安装笔记>.桌面环境我使用的是 GNOME,虽然用了很长一段时间 ...

  7. ArchLinux 安装笔记 --zz

    为何安装 ArchLinux 为了更深层次的理解 Linux (其实只是闲的蛋疼 准备安装介质 U盘首选,没有之一.自己的本子是 MBR 的,UEFI 神马的我才不知道呢哼! 制作 U 盘启动: Li ...

  8. SAP ALV中同一列的不同行显示不同的小数位,并能够总计,小计

    物料数量字段,根据物料类型的不同,来显示不同的小数位:要求有点苛刻: 首先,要能够总计和小计的话,这一列的字段类型必须是数值类型. 这样的话,就不能通过截取的方式改变不同行的小数位. 以下是两种思路: ...

  9. 每日学习心得:SQL查询表的行列转换/小计/统计(with rollup,with cube,pivot解析)

    2013-8-20 1.    SQL查询表的行列转换/小计/统计(with  rollup,with cube,pivot解析) 在实际的项目开发中有很多项目都会有报表模块,今天就通过一个小的SQL ...

随机推荐

  1. MySQL的JOIN(五):JOIN优化实践之排序

    这篇博文讲述如何优化JOIN查询带有排序的情况.大致分为对连接属性排序和对非连接属性排序两种情况.插入测试数据. CREATE TABLE t1 ( id INT PRIMARY KEY AUTO_I ...

  2. JPA常用注解(转载)

    转自:http://blog.csdn.net/wanghuan203/article/details/8698102 JPA全称Java Persistence API.JPA通过JDK 5.0注解 ...

  3. 读取properties属性文件

    1.通过类加载器加载 InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("Chap ...

  4. phoenix

    phoenix(直译做凤凰)的操作sql是通过jdbc发送到HBase的.phoenix的查询语句会转化为hbase的scan操作和服务器端的过滤器.如果我们手工使用HBase的api去写这些代码,也 ...

  5. Matlab入门学习(矩阵、函数、绘图的基本使用)

    一.矩阵 1.定义和简单使用(一般的编程语言,数组下标都是从0开始的,但是MATLAB是从1开始的) >> a=[ ; ; ] a = >> b=[ ; ; ]; >&g ...

  6. AngularJS小结

    1.简介 AngularJS 通过 ng-directives 扩展了 HTML. 2.AngularJS指令 ng-app 指令定义一个AngularJS 应用程序的根元素.指令在网页加载完毕时会自 ...

  7. SpringBoot文档翻译系列——29.SQL数据源

    原创作品,可以转载,但是请标注出处地址: 因为需要使用到这方面内容,所有对这一部分进行了翻译. 29  使用SQL数据源 SpringBoot为SQL数据源提供了广泛支持,从直接使用JdbcTempl ...

  8. 【转】elasticsearch的查询器query与过滤器filter的区别

    很多刚学elasticsearch的人对于查询方面很是苦恼,说实话es的查询语法真心不简单-  当然你如果入门之后,会发现elasticsearch的rest api设计是多么有意思. 说正题,ela ...

  9. vue语法之拼接字符串

    先来一行代码: <div class="swiper-slide" v-for="item in message"> <img v-bind: ...

  10. Python s12 Day3 笔记及作业

    1. Set集合 old_dict = { "#1":{ 'hostname':'c1', 'cpu_count':2, 'mem_capicity':16}, "#2& ...