用CentOS 7打造合适的科研环境
z转自:http://seisman.info/linux-environment-for-seismology-research.html
之前安装centos6.5的时候,7.0已经出来了,但出于安全考虑,没有安装新版本,而采用了老版本。但看了下面的文章后,感觉7.0应该可以考虑试一试。
这篇博文记录了我用CentOS 7搭建地震学科研环境的过程,仅供未来重新装机时参考。
准备工作
- U盘一个,用于制作CentOS启动盘,U盘容量700M以上;
- 下载CentOS 7的LiveCD ISO镜像文件
- 下载Windows下的启动盘制作工具Universal USB installer
- 利用Universal USB installer将CentOS的镜像文件写入U盘
- 插入U盘,重启电脑,进入BIOS选择从U盘启动,进入CentOS的LiveCD
注:
- Linux下可以通过dd命令制作启动盘,但由于对原理不够了解,偶尔会导致制作失败,或制作成功后U盘容量有问题。
安装过程
CentOS 7的安装过程与其他Linux发行版的安装过程差不多。
分区
- 先让安装程序帮忙分区,然后再根据需要增删分区以及修改细节;
- 默认的分区方案是使用LVM,一个好处在于“当机器有多块硬盘时,使得看上去只有一块”。
- 默认的文件系统为XFS;
- 分区细节
- /boot:CentOS自动分配了100M;
- /:30G
- swap:64G(与实际内存大小一致)
- /opt:70G
- /home:余下的全部空间
一些原则
为了尽可能地避免因为瞎折腾而导致不得不重装系统,设定如下系统使用原则:
- 仅使用CentOS官方源以及EPEL源,以避免一个软件包同时存在于多个源可能引起的版本冲突;
- 对于系统级别或较底层的软件包,只使用yum安装,绝不自己编译源代码;
- 对于源中没有的软件包,一律编译并安装至/opt目录下;
- 对于不需要编译,解压即可使用的软件包,一律编译并安装至/opt/目录下;
- 对于编译后只生成一两个二进制文件的小型代码,一律将二进制文件复制到${HOME}/bin下;
对系统的一些修改
给当前用户root权限
CentOS默认没有给一般用户root权限,所以安装软件的时候经常需要su切换到root用户再进行操作。相对来说很麻烦。因而需要给当前用户root权限。
su切换至root用户,用如下命令编辑sudo的配置文件:
sudoedit /etc/sudoers
在其中找到语句root ALL=(ALL) ALL,在其下添加如下语句:
seisman ALL=(ALL) ALL
其中seisman为当前用户名。
修改主机名
-
修改/etc/hostname,将其中的localhost.localdomain改成saturn.geolab。(装机过程中若填入了主机名,则可能该文件不需要修改)
-
修改/etc/hosts将其中的:
127.0.0.1 localhost.localdomain localhost
改成:
127.0.0.1 saturn.geolab saturn
-
重启网络:
sudo service network restart
添加EPEL源
EPEL即Extra Packages for Enterprise Linux 。CentOS为了保证系统的稳定性,只提供了少量的软件包,无法满足更多的需求。EPEL为CentOS提供了额外10000多个软件包,而且在不替换系统组件方面下了很多功夫,因而可以放心使用。
|
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
sudo rpm -ivh epel-release-7-2.noarch.rpm
sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
|
除了EPEL之外,还有很多第三方软件源,如rpmforge等,具体可以参考CentOS的wiki页面,但由于不同软件源之间可能存在相同名称不同版本的软件,因而同时使用多个软件源时可能会造成冲突。因而只建议使用EPEL软件源。
编程环境的安装
GCC系列
yum install gcc # C编译器 yum install gcc-c++ # C++编译器 yum install gcc-gfortran # Fortran编译器 yum install compat-gcc-44 # 兼容gcc 4.4 yum install compat-gcc-44-c++ # 兼容gcc-c++ 4.4 yum install compat-gcc-44-gfortran # 兼容gcc-fortran 4.4 yum install compat-libf2c-34 # g77 3.4.x兼容库
yum install gdb # 代码调试器
Intel系列
Intel的大部分软件都是非开源且收费的,但同时部分软件也提供了Linux下的非商业免费版。比如icc、ifort、mkl数学库以及代码性能分析工具等。
软件的申请以及安装参考《Intel非商业免费开发工具》。
Clang系列
Clang是一个C、C++、Objective-C和Objective-C++编程语言的编译器前端,其采用了LLVM作为其后端。它的目标是提供一个GCC的替代品。包括Clang前端和Clang静态分析器两个部分。
yum install clang # clang编译器 yum install clang-analyzer # clang静态分析器
其中clang静态分析器可以用于分析代码中可能出现的bug。
Java环境
yum install java # java运行环境
Perl环境
CentOS 7.0自带了perl 5.16.3,大概是两年前发布的版本,基本够用。
在需要安装某perl模块时,先使用yum搜索源中是否有别人准备好的包,若有则直接安装。尽量不要使用cpan安装模块。
Python环境
CentOS 7.0自带Python 2.7.5,基本可以满足需求。与Perl类似,需要相关模块时优先使用yum源中提供的包,尽量避免使用pip安装模块。
由于Python2和Python3的不完全兼容,因而很多时候还需要安装一个Python3,这就需要管理多个Python版本。
- 安装pyenv来管理多个Python版本
- 利用pyenv安装anaconda3(即Python 3.4)。
- 申请anaconda的学术版License,并更新anaconda。
其他软件
yum install cmake
驱动安装
安装显卡驱动
Linux默认只使用开源的显卡驱动,就目前的情况来看,开源驱动的效果还是不错的,但跟官方的闭源驱动相比还是有一定差距的。最明显的区别是,在使用SAC的ppk功能放大波形时,使用开源驱动会出现延迟,而使用官方闭源则整个过程非常顺畅。
驱动的安装过程参考”安装NVIDIA显卡驱动“ 一文。需要注意的是,在安装显卡驱动之后,若更新了kernel,会出现无法进入kernel的情况,即每次更新kernel之后都需要重新安装显卡驱动,这点需要注意。
日常软件安装
办公软件
办公软件可以选择大多数Linux发行版都有的LibreOffice:
sudo yum install libreoffice
LibreOffice与Microsoft Office的兼容性不太好,操作界面与MS Office也有较大差异,让人不太习惯。
如果在Linux对于文档处理有更高一些的要求,可以尝试目前还处于测试版的WPS Office for Linux,安装过程参考CentOS下安装WPS Office一文。WPS Office的兼容性以及界面都比LibreOffice要好很多,值得期待,当然还是不能做到完全兼容MS Office。
Google Chrome浏览器
在/etc/yum.repo.d/目录下新建文件google-chrome.repo,向其中添加Google Chrome源,内容如下:
[google-chrome] name=google-chrome baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch enabled=1 gpgcheck=1 gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
安装:
yum install google-chrome-stable
中文输入法
系统自带的中文输入法为ibus,使用效果一般,基于fcitx框架的搜狗输入法是更好的选择。参考CentOS7安装搜狗输入法。
其他软件
yum install nfs-utils # 挂载NFS文件系统所必须 yum install p7zip # 7z格式压缩和解压 yum install git # 源码版本控制 yum install xclip # 终端的文本复制工具 yum install ImageMagick # 其中的import和convert命令很有用 yum install ntfs-3g # 用于挂载NTFS格式的硬盘
Mendeley
文献管理软件,需要先安装qtwebkit,然后基本解压后即可使用。
HostTool
修改Google、twitter、youtube、wikepedia、dropbox等的host文件。该软件用Python写成。
HostTool:https://hosts.huhamhire.com/
安装TeXLive 2014
参考本文。
模块、插件等等
Python模块
- python-requests:网页请求
- PyQT4:Qt4的Python绑定
Perl模块
- Parallel::ForkManager:并行
Vim插件
- bundle:vim插件管理
- powerline:状态栏增强
- nerdtree:文件浏览器
- vim-colors-solarized:solarized配色
- YouCompleteMe:代码补全
- delimitMate:括号补全
- indentLine:显示缩进对齐
修订历史
- 2014-07-15:初稿;
- 2014-09-05:EPEL已经发布正式版;修改了epel-release的下载链接;修订了import步骤的错误;
- 2014-09-20:将小小输入法改为搜狗输入法;
更多推荐
所有评论(0)