这篇博文记录了我用CentOS 7搭建地震学科研环境的过程,供我个人在未来重装系统时参考。对于其他地震学科研人员,也许有借鉴意义。
阅读须知:
本文适用于个人电脑,不适用于服务器;
不推荐刚接触Linux的人使用CentOS发行版;
本文尽量写的浅显易懂,但要求读者掌握Linux基础知识;
本文所有操作均在CentOS 7下完成,其他发行版或多或少与CentOS 7不同,因而仅供参考;
本文所安装的软件纯粹出于个人习惯及喜好,读者应自己判断,按需安装;
CentOS 7的安装与其他Linux发行版的安装差不多,个别地方稍有不同。
准备材料
U盘:容量700M以上,用于制作U盘启动盘,因为在制作启动盘时会格式化U盘,所以U盘内不要包含重要资料
CentOS 7.1 LiveCD ISO镜像文件
Universal USB installer:Windows下的U盘启动盘制作工具
一个已安装Windows的电脑:用于制作U盘启动盘
运行Universal USB installer并制作U盘启动盘
将U盘插入计算机,重启,进入BIOS选择从U盘启动,即可进入CentOS的LiveCD
进入LiveCD后,点击桌面的“Install to Hard Drive”即可安装
注:Linux下可以通过dd命令制作启动盘,但由于对原理不够了解,偶尔会导致制作失败,或制作成功后U盘容量有问题,还是用Windows下的Universal USB installer比较靠谱。
选择安装过程中使用的语言,这里应使用英语,不要使用汉语。若安装界面使用汉语,最终安装的系统中会出现两个比较麻烦的问题:
家目录下的系统文件夹,比如Downloads、Desktop等会以中文表示,这使得在命令行cd变得很麻烦;
终端中某些字符用英文字体,某些字符用中文字体,效果非常差,需要自己修改终端字体方可;
选择区域和城市:Asia和Shanghai
键盘使用English(US)而不是English(UK)
Hostname可以改也可以不改,我用saturn.geolab
安装的目的地,选择要使用的硬盘,在“Other Storage Options”处选择“I will configure partioning”,即手动分区
CentOS 7的分区似乎比较特别,自认为经验很丰富的我在第一次安装CentOS7时还是在分区上耽误了很多时间。后来找到比较合适的分区方法,如下:
点击“Click here to create them automatically”,即让安装程序帮忙分区
默认的分区方案是使用LVM,其好处在于“当机器有多块硬盘时,在使用的时候看上去只有一块”
默认的文件系统为XFS而不是以前常用的EXT4;
自动分区完成后,再根据自己的需求,手动修改分区细节
/boot:CentOS自动分配,一定不要乱改;
/:根目录,合理使用并及时清理的话15G就够了,不过建议30G以上;
swap:与物理内存大小一致即可
/opt:个人习惯是将第三方软件都安装在/opt下,所以分了70G
/home:余下的全部空间
点击“Begin to Install”开始安装
设置root密码
创建一般用户
等待安装完成
安装完成,重启
重启后,同意License即可
为了搭建一个稳定的系统,尽量避免因为各种瞎折腾而导致的系统问题,特订立了一些软件安装的原则。具体参见《CentOS 7下的软件安装方法与策略》。
默认情况下,一般账号是没有root权限的。为什么不直接用root账号,而是要给一般账号root权限呢?
日常工作中使用root账号,是非常糟糕且危险的习惯!无论是服务器还是个人电脑都是如此。
安装软件时需要root权限,只能su切换到root账户再安装。对于习惯使用sudo的人来说,还是有些麻烦。
假设账户名为seisman,要授予他root权限,则要修改配置文件/etc/sudoers
$ su # echo 'seisman ALL=(ALL) ALL' >> /etc/sudoers # 向配置文件中加入语句 # tail -1 /etc/sudoers # 检查一下是否正确 seisman ALL=(ALL) ALL
其中seisman为当前用户名。
CentOS由于很追求稳定性,所以官方源中自带的软件不多,因而需要一些第三方源,比如EPEL、ATrpms、ELRepo、Nux Dextop、RepoForge等。根据上面提到的软件安装原则,为了尽可能保证系统的稳定性,此处大型第三方源只添加EPEL源、Nux Dextop和ELRepo源。
EPEL即Extra Packages for Enterprise Linux,为CentOS提供了额外的10000多个软件包,而且在不替换系统组件方面下了很多功夫,因而可以放心使用。
sudo yum install epel-release
执行完该命令后,在/etc/yum.repos.d目录下会多一个epel.repo文件。
Nux Dextop中包含了一些与多媒体相关的软件包,作者尽量保证不覆盖base源。官方说明中说该源与EPEL兼容,实际上个别软件包存在冲突,但基本不会造成影响:
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
完成该命令后,在/etc/yum/repos.d目录下会多一个nux-dextop.repo文件。
ELRepo包含了一些硬件相关的驱动程序,比如显卡、声卡驱动:
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
完成该命令后,在/etc/yum.repos.d目录下会多一个elrepo.repo文件。
yum-axelget是EPEL提供的一个yum插件。使用该插件后用yum安装软件时可以并行下载,大大提高了软件的下载速度,减少了下载的等待时间:
sudo yum install yum-axelget
安装该插件的同时会安装另一个软件axel。axel是一个并行下载工具,在下载http、ftp等简单协议的文件时非常好用。
在进一步操作之前,先把已经安装的软件包都升级到最新版:
sudo yum update
要更新的软件包有些多,可能需要一段时间。不过有了yum-axelget插件,速度已经快了很多啦。
此处建议重启。
在前面的yum update执行之后,可能会将kernel也一起更新,则在启动CentOS时启动项中会有很多项。
确认当前使用的kernel版本号:
$ uname -r 3.10.0-123.9.3.el7.x86_64
查找当前系统安装的所有kernel:
$ rpm -qa | grep kernel | sort kernel-3.10.0-123.8.1.el7.x86_64 kernel-3.10.0-123.9.2.el7.x86_64 kernel-3.10.0-123.9.3.el7.x86_64 kernel-devel-3.10.0-123.8.1.el7.x86_64 kernel-devel-3.10.0-123.9.2.el7.x86_64 kernel-devel-3.10.0-123.9.3.el7.x86_64 kernel-headers-3.10.0-123.9.3.el7.x86_64 kernel-tools-3.10.0-123.9.3.el7.x86_64 kernel-tools-libs-3.10.0-123.9.3.el7.x86_64
可以看出有三个版本的kernel,123.8.1、123.9.2和123.9.3。除了最新的kernel外,建议多保留一个旧kernel,以免新kernel出现问题时可以通过旧kernel进入系统。因而此处删除123.8.1版本的kernel:
sudo yum remove kernel-3.10.0-123.8.1.el7.x86_64 sudo yum remove kernel-devel-3.10.0-123.8.1.el7.x86_64