这篇博文记录了我用 CentOS 7 搭建 地震学科研环境 的过程,供我个人在未来重装系统时参考。对于其他地震学科研人员,也许有借鉴意义。
阅读须知:
CentOS 7 的安装与其他 Linux 发行版的安装差不多,个别地方稍有不同。
注:Linux 下可以通过 dd
命令制作启动盘,但由于对原理不够了解,偶尔会导致制作失败, 或制作成功后 U 盘容量有问题,还是用 Windows 下的 Universal USB installer 比较靠谱。
cd
变得很麻烦;saturn.geolab
CentOS7 的分区似乎比较特别,自认为经验很丰富的我在第一次安装 CentOS7 时还是在分区上耽误了很多时间。后来找到比较合适的分区方法,如下:
/boot
:CentOS 自动分配,一定不要乱改;/
:根目录,合理使用并及时清理的话 15G 就够了,不过建议 30G 以上;swap
:与物理内存大小一致即可/opt
:个人习惯是将第三方软件都安装在 /opt
下,所以分了 70G/home
:余下的全部空间为了搭建一个稳定的系统,尽量避免因为各种瞎折腾而导致的系统问题,特订立了一些软件安装的原则。 具体参见《CentOS7 下的软件安装方法与策略》。
默认情况下,一般账号是没有 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
EPEL 即 Extra Packages for Enterprise Linux, 为 CentOS 提供了额外的 10000 多个软件包,而且在不替换系统组件方面下了很多功夫,因而可以放心使用。
1 |
sudo yum install epel-release |
执行完该命令后,在 /etc/yum.repos.d
目录下会多一个 epel.repo
文件。
ELRepo
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
sudo yum install gcc # C 编译器
sudo yum install gcc-c++ # C++ 编译器
sudo yum install gcc-gfortran # Fortran 编译器
sudo yum install compat-gcc-44 # 兼容 gcc 4.4
sudo yum install compat-gcc-44-c++ # 兼容 gcc-c++ 4.4
sudo yum install compat-gcc-44-gfortran # 兼容 gcc-fortran 4.4
sudo yum install compat-libf2c-34 # g77 3.4.x 兼容库
sudo yum install make
sudo yum install gdb # 代码调试器
sudo yum install cmake # Cmake
sudo yum install git # 版本控制
Linux 默认只使用开源的显卡驱动,就目前的情况来看,开源驱动的效果还是不错的,但跟官方的 闭源驱动相比还是有一定差距。最明显的区别是,在使用 SAC 的 ppk 功能放大波形时,使用开源驱动会 出现延迟,而使用官方闭源则整个过程非常顺畅。
关于显卡驱动的安装,请参考 Linux 下安装 nvidia 显卡驱动 一文中的 “从 ELRepo 源中安装驱动” 部分。
注意:目前的显卡驱动似乎有问题,安装后终端有时会出现屏幕闪烁、一屏文字上下重复跳动的情况, 稍微有些影响用 vim 写代码。是否要安装显卡驱动自己决定。
CentOS 下默认无法挂载 NTFS 格式的硬盘。需安装 nfts-3g 即可实现即插即用:
sudo yum install ntfs-3g
Java 的一大特色在于跨平台,安装了 Java 运行环境,即可运行 Java 程序:
sudo yum install java # java 运行环境
Clang 可以认为是 GCC 的替代品,可以用于编译 C、C++、Objective-C 和 Objective-C++。其提供了更友好的 报错信息,在有些方面比 GCC 更友好,同时其提供了一个代码静态分析器,可以用于分析代码中可能出现的 bug 和内存溢出问题。
sudo yum install clang # clang 编译器
sudo yum install clang-analyzer # clang 静态分析器
Intel 的大部分软件都是非开源且收费的,但同时部分软件也提供了 Linux 下的非商业免费版。 比如 icc、mkl 数学库以及代码性能分析工具等。
Intel 软件的申请以及安装参考《Intel 非商业免费开发工具》。
还有一点需要注意的是,Intel 也提供了并行相关的几个命令,比如 mpicc、mpirun。所以 openmpi、mpich 和 intel 三者,在并行时只能用其中一个。
并行可以用 openmpi,也可以用 mpich,二者的功能可以认为是完全相同的。由于二者提供了几乎一样的命令, 所以二者可以同时安装,但是不可以同时处于使用状态。
openmpi
安装 openmpi:
sudo yum install openmpi openmpi-devel
安装后,二进制文件位于 /usr/lib64/openmpi/bin
下,动态库文件位于 /usr/lib64/openmpi/lib
下,因而实际使用的话还需要额外的配置,在 .bashrc
中加入如下语句:
export PATH=/usr/lib64/openmpi/bin/:${PATH}
module load mpi/openmpi-x86_64
PS:要使用 module
命令需要先安装 environment-modules
包。
mpich
安装 mpich:
sudo yum install mpich mpich-devel
安装后,二进制文件位于 /usr/lib64/mpich/bin
下,动态库文件位于 /usr/lib64/mpich/lib
下, 因而实际使用的话还需要额外的配置,在 .bashrc
中加入如下语句:
export PATH=/usr/lib64/mpich/bin/:${PATH}
module load mpi/mpich-x86_64
CentOS 7.0 自带了 Perl 5.16.3(2013 年 03 月 11 日发布),目前的最新版本为 5.20.1(2014 年 09 月 14 日发布)。
系统自带 Perl
系统自带 Perl,就目前来看,版本不算老,基本够用。官方源和 EPEL 源中提供了 1000 多个模块,可以直接用 yum 安装:
sudo yum install perl-Parallel-ForkManager # 并行模块
若源中没有已打包好的模块,也可以使用 perl 自带的 cpan 来安装模块。
优先级:yum > cpan。
plenv 管理新版本
若需要使用最新版本的 perl,可以使用 plenv 安装新版本的 perl,并使用 plenv 提供的 cpanm 命令安装模块:
cpanm install Parallel::ForkManager # 并行模块
CentOS 7.0 自带 Python 2.7.5,目前 Python 2 的最新版本为 2.7.8,Python 3 的最新版本为 3.4.2。
系统自带 Python
系统自带的 Python 2.7.5,基本已经够用,Python 2 常用的模块在官方源或 EPEL 源中也有有编译好的包, 因而直接通过 yum 安装即可:
sudo yum install python-matplotlib # 2D 绘图库
sudo yum install PyQt4 # Qt4 的 Python 绑定
sudo yum install numpy # 数组操作库
sudo yum install scipy # 科学计算库
sudo yum install python-requests # 网页请求
sudo yum install python-docopt # 命令行参数分析器
sudo yum install gdal-python # gdal 的 Python 绑定
pyenv 管理 Python3
Python2 与 Python3 之间是不完全兼容的,而我以 Python3 为主,所以需要安装一个 Python3。
首先,安装 pyenv 来管理多个 Python 版本,然后利用 pyenv 安装 anaconda3 (即 Python3.4)。anaconda 自带了众多科学计算所需的包,免去了安装的麻烦,对于其他包, 则可以利用 Python 自带的 pip 安装:
pip install requests
pip install docopt
写代码的时候选一个好用的编辑器很重要,用的比较多的编辑器如下:
LibreOffice
大多数 Linux 发行版都自带 LibreOffice:
sudo yum install libreoffice
LibreOffice 与 Microsoft Office 的兼容性不太好,操作界面与 MS Office 也有较大差异,让人不太习惯。
WPS Office
若在 Linux 下对于文档处理有更高一些的要求,可以尝试目前还处于测试版的 WPS Office for Linux。 WPS Office 的兼容性以及界面都比 LibreOffice 要好很多,值得期待,当然还是不能做到完全兼容 MS Office。
安装过程参考 CentOS 下安装 WPS Office 一文。
系统自带的 evince 阅读器,可以打开 PS 和 PDF 文件,基本足够日常的使用了。
zathura
zathura 可以查看 PS、PDF、djvu 格式的文件,可以作为 evince 的替代品:
sudo yum install zathura zathura-plugins-all
ghostscript
sudo yum install ghostscript
master-pdf-editor
官方网站: https://code-industry.net/free-pdf-editor/
sudo yum localinstall http://get.code-industry.net/public/master-pdf-editor3-3.2.62-1.x86_64.rpm
系统是自带了 TeXLive,版本较老,还是安装最新版比较好。
参考 Linux 下安装 TeXLive 一文。
Mendeley 是一个跨平台的文献管理软件,其内部自带了一个可以添加注释的 PDF 阅读器。
下载 Generic Linux (64 bits):http://www.mendeley.com/download-mendeley-desktop
安装:
tar -xvf mendeleydesktop-1.12.3-linux-x86_64.tar.bz2 # 解压
sudo mv mendeleydesktop /opt # 复制到 / opt 下
cd /opt/mendeleydesktop/bin # cd 进去
./install-mendeley-link-handler.sh /opt/mendeleydesktop/bin/mendeleydesktop
sudo yum install qtwebkit # 安装依赖包
注销重新登陆,在 Application->Education 下即可看到 mendeley 的相关项目。不过是 没有软件的图标的,强迫症不能忍,用下面的命令解决:
cp /opt/mendeleydesktop/share/icons/hicolor/128x128/apps/mendeleydesktop.png ~/.local/share/icons/
默认的浏览器是 Firefox,还是更喜欢 Chrome 浏览器。
Google 官方源在国内可能无法正常访问,故而添加 Fedora 中文社区提供的镜像源:
sudo wget http://repo.fdzh.org/chrome/google-chrome-mirrors.repo -P /etc/yum.repos.d/
安装:
sudo yum install google-chrome-stable
也可以选择 Opera 浏览器。
下载地址:http://www.opera.com/download/guide/?os=linux
选择 CentOS RPM package 进行下载。下载完成后,执行:
sudo yum localinstall opera-12.16-1860.x86_64.rpm
想要卸载的话,就执行:
sudo yum remove opera
Flash 插件主要是看在线视频的时候要用。Google 浏览器自带了 Flash 插件,所以这里安装的 flash 插件主要是为了 firefox。
sudo rpm -ivh http://linuxdownload.adobe.com/adobe-release/adobe-release-x86_64-1.0-1.noarch.rpm
sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux
sudo yum install flash-plugin
解压 7z 或 zip 格式需要 p7zip,由 EPEL 提供:
sudo yum install p7zip
解压 rar 格式可以使用 unar,该软件位于 EPEL 源中:
sudo yum install unar
FTP 客户端,还是有界面的 filezilla 比较方便些。
sudo yum install filezilla
到 https://www.google.com/earth/download/ge/agree.html 下载64位rpm包,执行如下命令安装:
sudo yum localinstall google-earth-stable_current_x86_64.rpm
这一类工具能够在不同方面提高科研的效率,也提高了使用者的体验。
Gnome 自带的终端模拟器是 gnome-terminal。经常会需要开十几个终端,切换和管理起来比较麻烦。
terminator
terminator 有很多功能,我只用到了终端分割的功能。 Ctrl+Shift+O
对终端水平分隔, Ctrl+Shift+E
对终端垂直分隔, Alt + 上下左右
可以在各子终端中切换。terminator 由 Nux Dextop 提供:
sudo yum install terminator
guake
有些时候需要临时执行一两个命令,但是又不想额外启动一个终端的情况下,guake 是个不错的选择。
sudo yum install guake
安装完成后,在 Application->System Tools 里找到 guake Terminal 即可启动。按下 F12 即可呼出 guake,再次按下 F12 即可隐藏。也可在终端执行 guake-prefs
对 gauke 进行配置。
Linux 下有很多 shell,比如最常见的 bash,除此之外还有 csh、ksh。zsh 也是一个 shell。
zsh 的特点在于:
完全不经配置的 zsh 已经很好用了,一般用户也没必要花时间研究配置。 oh my zsh 是一群人一起维护的一套 zsh 配置文件。 直接用这个配置文件,稍稍了解一点会有更好的体验。
安装 zsh:
sudo yum install zsh
安装 oh my zsh:
curl -L http://install.ohmyz.sh | sh
上面的命令,做了如下几件事情:
oh my zsh
到 ~/.oh-my-zsh
~/.zshrc
,并复制新的 .zshrc
文件第三步中,会报错如下: chsh: "/usr/bin/zsh" is not listed in /etc/shells.
,需要手动修改默认 shell:
chsh -s /bin/zsh
chsh 命令修改的是 login shell,因而需要退出当前用户并重新登陆,以后用户的默认 shell 就从 bash 变成了 zsh,所有的配置都不用写到 .bashrc
而要写到 .zshrc
中。
在 .zshrc
中可以选择喜欢的主题,以及适当数量的插件。下面列出我在用的插件:
git
该插件为 git 的众多常用命令提供了更简单的别名,比如 git status
的别名是 gst
, 大大减少了击键数。但该插件中 git mergetool --no-prompt
的别名是 gmt
, 与 GMT 软件冲突,需要将该插件的目录 git 复制到 custom/plugins 下,然后删除其中的 gmt 别名;
ESC
即可在当前命令前加上 sudo
yum:为常见的 yum 命令提供别名
autojump 是一个非常智能的目录快速切换的工具。简单演示如下:
$ pwd
/home/seisman
$ cd Desktop
$ cd /opt
$ cd /usr/local
# 用 j 命令迅速从 / usr/local 跳转到与 des 匹配的目录,这里只有 Desktop 可以匹配
$ j des
$ pwd
/home/seisman/Desktop
用法差不多就这样,具体看项目主页。
安装:
sudo yum install autojump
sudo yum install autojump-zsh
由于使用的是全英文安装,所以默认是没有中文输入法的。
在“Application”->“Settings”->“Region & Language” 中将“Chinese(Intelligent Pinyin)”添加到“Input Sources” 中即可使用中文输入法。默认使用“Shift”键切换中文输入法。
编程要用等宽字体,这点是常识了。一款适合编程的等宽字体,至少要满足如下几个要求:
目前选择的 Source Code Pro。将解压后的字体文件放在 ~/.fonts
目录下,并修改终端、gedit 以及其他编辑器、IDE 等的默认字体。
有时候可能需要在 Windows 下做一些操作,如果机器性能足够好的话,可以安装虚拟机。
VirtuabBox 的安装:
wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo
sudo mv virtualbox.repo /etc/yum.repos.d/
sudo yum install VirtualBox-5.0
需要注意两点:
sudo /sbin/rcvboxdrv setup
;gnome-boxes 是 GNOME3 开发的一个虚拟机工具,使用体验不如 VirtualBox:
sudo yum install gnome-boxes
Wine 是一个可以让 Windows 程序运行在 Linux 下的软件。类似虚拟机,但跟虚拟机又不太一样:
sudo yum install wine
网盘根据功能大概可以分为两类:同步网盘和备份网盘。既然是同步网盘,Linux 下 的客户端必不可少。就目前已知的情况来看,CentOS7 下能使用的同步网盘只有三个: Dropbox、MEGA 和坚果云。
我主要用同步网盘将 Linux 机器上的 PDF 文献同步到 iPad 上。
又是一个被墙的工具,熟练掌握科学上网技巧的人可以使用,一般人还是不要用了。
wget https://www.dropbox.com/download?dl=packages/fedora/nautilus-dropbox-1.6.2-1.fedora.x86_64.rpm
sudo rpm -i nautilus-dropbox-1.6.2-1.fedora.x86_64.rpm
MEGA: https://mega.co.nz/
免费容量 50G,作为同步盘来说基本是够用了。
# 下载主程序
wget https://mega.nz/linux/MEGAsync/CentOS_7/x86_64/megasync-CentOS_7.x86_64.rpm
# 下载文件管理器扩展(可选)
wget https://mega.nz/linux/MEGAsync/CentOS_7/x86_64/nautilus-megasync-CentOS_7.x86_64.rpm
sudo yum localinstall megasync-CentOS_7.x86_64.rpm
sudo yum localinstall nautilus-megasync-CentOS_7.x86_64.rpm
国内的全平台同步网盘,不限空间,但限制每月上传流量 1G,下载流量 3G。
# 坚果云依赖于 notify-python
sudo yum install notify-python
# 下载
wget https://jianguoyun.com/static/exe/installer/fedora/nautilus_nutstore_amd64.rpm
sudo rpm -i nautilus_nutstore_amd64.rpm
you-get 和 youtube-dl 是两个用于从视频网站上下载视频文件的工具。其中,后者支持的网站更多,但前者对国内的视频网站支持更好。
pip install you-get
pip install youtube-dl
# EPEL 中提供了 youtube-dl 包,因而也可以使用 yum 安装。一般来说,pip 安装的版本更新一些
cpdf 是一个跨平台的 PDF 处理工具,可以完成常见的 PDF 合并、 切割、加密解密、书签、水印等功能。
下载已编译好的 二进制包, 解压,并将与自己的平台对应的二进制文件复制到 ${HOME}/bin
目录下即可使用。
transmission 是 Linux 下常用的 Torrent 下载软件:
sudo yum install transmission
在 “Application”->“Internet”-> 中可以启动 transmission。
http://ugetdm.com/
uGet 是 Linux 下的一个下载工具,支持 HTTP、HTTPS、FTP、Torrent 等,支持多连接,并可以监视剪贴板:
sudo yum --enablerepo=epel-testing install uget aria2
GNOME 自带了截图工具。 PrtScn
为截取整个屏幕; Alt+PrtScn
为截取当前窗口; Shift+PrtScn
为自定义截屏区域。
shutter 是一个功能更强大的截图工具,支持不同的截图方式、 图片格式,还支持图片的简单编辑与注释:
sudo yum install shutter
可以通过 修改快捷键使 shutter 成为默认的截图工具。
sudo yum install nfs-utils # 挂载 NFS 文件系统所必须
sudo yum install xclip # 终端的文本复制工具
sudo yum install ImageMagick # 其中的 import 和 convert 命令很有用
sudo yum install dos2unix unix2dos # Windows 和 Linux 换行符互相转换
sudo yum install meld # 图形界面下的文件差异比较工具
Nux Dextop 提供了 mplayer 和 VLC,可以用于播放常见格式的音频和视频,二者选其一安装即可:
sudo yum install mplayer
sudo yum install vlc
sudo yum install 2048-cli # 2048 命令行版
标签: Linux
GROM
一只追尾巴的狗
25 人赞同了该文章
这篇文章主要是用来记录我自己用CentOS搭建机器学习环境的过程,灵感来源及主要参考为
用 CentOS 7 打造合适的科研环境
这篇文章对于我自己而言主要是整理自己的经验以及作为未来重装系统时参考,也希望这篇文章对其人也有一定的借鉴意义。
实际上在Ubuntu上搭建机器学习环境比在CentOS上简单,选择CentOS而不选择Ubuntu的原因有二:
1.Ubuntu自带的Unity桌面太丑而且默认装了太多无用软件
2.入门Linux系统时使用的是CentOS,所以更熟悉CentOS
整个安装过程与参考文章中是一样的。
假设账户名为 grom,要授予他 root 权限,则要修改配置文件 /etc/sudoers :
$ su
# echo 'grom ALL=(ALL) ALL'>> /etc/sudoers # 向配置文件中加入语句
# tail -1 /etc/sudoers # 检查一下是否正确
grom ALL=(ALL) ALL
其中 grom 为当前用户名。
将yum源配置为国内源可以获得比较快的下载速度,在学校使用的是中科大的镜像站,以后离开学校应会使用网易的镜像站。
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
sudo vim /etc/yum.repos.d/CentOS-Base.repo
sudo yum makecache
EPEL
EPEL 即 Extra Packages for Enterprise Linux, 为 CentOS 提供了额外的 10000 多个软件包,而且在不替换系统组件方面下了很多功夫,因而可以放心使用。
sudo yum install epel-release
执行完该命令后,在 /etc/yum.repos.d 目录下会多一个 epel.repo 文件。
ELRepo
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 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
sudo yum install gcc # C 编译器
sudo yum install gcc-c++ # C++ 编译器
sudo yum install gcc-gfortran # Fortran 编译器
sudo yum install compat-gcc-44 # 兼容 gcc 4.4
sudo yum install compat-gcc-44-c++ # 兼容 gcc-c++ 4.4
sudo yum install make
sudo yum install gdb # 代码调试器
sudo yum install cmake # Cmake
sudo yum install git # 版本控制
CUDA™是一种由NVIDIA推出的通用并行计算架构,现行的深度学习框架如caffe、tensorflow都需要先安装CUDA才能安装GPU版本,否则只能安装CPU版本。安装CUDA时会一并安装NVIDIA的显卡驱动。(CentOS自带的显卡驱动是不支持N卡的,所以一开始我把屏幕连接到主板集成显卡的输出口上,这样安装时似乎避免了一些繁琐的过程)
sudo rpm -i cuda-repo-rhel7-8.0.61-1.x86_64.rpm
sudo yum clean all
sudo yum install cuda
注意 ,执行第一行有可能有警告,网上资料说这是由于yum安装了旧版本的GPG keys造成的,可以在语句后加上--force强制执行。
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
$cd /usr/local/cuda-8.0/samples
$sudo make
……
……
Finished building CUDA samples
$cd bin/x86_64/linux/release/
$./deviceQuery
出现显卡信息表明安装成功。编译过程中可能会有警告信息,但是并不影响最后结果。
cuDNN是 CUDA的一个深度网络加速库,也是深度学习框架所需要的。安装cuDNN的过程实际上是下载cuDNN库并拷贝到CUDA的目录中。下载cuDNN库后,进入下载目录执行以下命令即完成安装。
tar xzvf cudnn-8.0-linux-x64-v5.1.tgz
sudo cp -P cuda/include/cudnn.h /usr/local/cuda/include
sudo cp -P cuda/lib64/lib* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/lib*
sudo ldconfig
Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。
sudo bash Anaconda2-4.3.1-Linux-x86_64.sh
安装完毕后可以配置tuna的镜像源,运行以下命令:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
即可添加 Anaconda Python 免费仓库。
安装Anaconda之后就可以很便捷的安装TensorFlow。
conda install tensorflow-gpu
安装完毕后,执行一个hello world程序来验证安装
$ python
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello)
出现Hello, TensorFlow!表示安装成功。
OpenCV是一个开源跨平台计算机视觉库,可以很方便的对图片进行处理。
conda install -c https://conda.binstar.org/menpo opencv
即可安装OpenCV
CentOS 下默认无法挂载 NTFS 格式的硬盘。需安装 nfts-3g 即可实现即插即用:
sudo yum install ntfs-3g
用ss来实现科学上网
sudo yum install s-libev
sudo chmod 777 /etc/s-libev/config.json
vim /etc/s-libev/config.json
ss-local&
Linux 下有很多 shell,比如最常见的 bash,除此之外还有 csh、ksh。zsh 也是一个 shell。
zsh 的特点在于:
完全不经配置的 zsh 已经很好用了,一般用户也没必要花时间研究配置。 oh my zsh 是一群人一起维护的一套 zsh 配置文件。 直接用这个配置文件,稍稍了解一点会有更好的体验。
主题选择为ys
编辑于 2017-05-02
GROM
一只追尾巴的狗
25 人赞同了该文章
这篇文章主要是用来记录我自己用CentOS搭建机器学习环境的过程,灵感来源及主要参考为
用 CentOS 7 打造合适的科研环境
这篇文章对于我自己而言主要是整理自己的经验以及作为未来重装系统时参考,也希望这篇文章对其人也有一定的借鉴意义。
实际上在Ubuntu上搭建机器学习环境比在CentOS上简单,选择CentOS而不选择Ubuntu的原因有二:
1.Ubuntu自带的Unity桌面太丑而且默认装了太多无用软件
2.入门Linux系统时使用的是CentOS,所以更熟悉CentOS
整个安装过程与参考文章中是一样的。
假设账户名为 grom,要授予他 root 权限,则要修改配置文件 /etc/sudoers :
$ su
# echo 'grom ALL=(ALL) ALL'>> /etc/sudoers # 向配置文件中加入语句
# tail -1 /etc/sudoers # 检查一下是否正确
grom ALL=(ALL) ALL
其中 grom 为当前用户名。
将yum源配置为国内源可以获得比较快的下载速度,在学校使用的是中科大的镜像站,以后离开学校应会使用网易的镜像站。
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
sudo vim /etc/yum.repos.d/CentOS-Base.repo
sudo yum makecache
EPEL
EPEL 即 Extra Packages for Enterprise Linux, 为 CentOS 提供了额外的 10000 多个软件包,而且在不替换系统组件方面下了很多功夫,因而可以放心使用。
sudo yum install epel-release
执行完该命令后,在 /etc/yum.repos.d 目录下会多一个 epel.repo 文件。
ELRepo
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 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
sudo yum install gcc # C 编译器
sudo yum install gcc-c++ # C++ 编译器
sudo yum install gcc-gfortran # Fortran 编译器
sudo yum install compat-gcc-44 # 兼容 gcc 4.4
sudo yum install compat-gcc-44-c++ # 兼容 gcc-c++ 4.4
sudo yum install make
sudo yum install gdb # 代码调试器
sudo yum install cmake # Cmake
sudo yum install git # 版本控制
CUDA™是一种由NVIDIA推出的通用并行计算架构,现行的深度学习框架如caffe、tensorflow都需要先安装CUDA才能安装GPU版本,否则只能安装CPU版本。安装CUDA时会一并安装NVIDIA的显卡驱动。(CentOS自带的显卡驱动是不支持N卡的,所以一开始我把屏幕连接到主板集成显卡的输出口上,这样安装时似乎避免了一些繁琐的过程)
sudo rpm -i cuda-repo-rhel7-8.0.61-1.x86_64.rpm
sudo yum clean all
sudo yum install cuda
注意 ,执行第一行有可能有警告,网上资料说这是由于yum安装了旧版本的GPG keys造成的,可以在语句后加上--force强制执行。
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
$cd /usr/local/cuda-8.0/samples
$sudo make
……
……
Finished building CUDA samples
$cd bin/x86_64/linux/release/
$./deviceQuery
出现显卡信息表明安装成功。编译过程中可能会有警告信息,但是并不影响最后结果。
cuDNN是 CUDA的一个深度网络加速库,也是深度学习框架所需要的。安装cuDNN的过程实际上是下载cuDNN库并拷贝到CUDA的目录中。下载cuDNN库后,进入下载目录执行以下命令即完成安装。
tar xzvf cudnn-8.0-linux-x64-v5.1.tgz
sudo cp -P cuda/include/cudnn.h /usr/local/cuda/include
sudo cp -P cuda/lib64/lib* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/lib*
sudo ldconfig
Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。
sudo bash Anaconda2-4.3.1-Linux-x86_64.sh
安装完毕后可以配置tuna的镜像源,运行以下命令:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
即可添加 Anaconda Python 免费仓库。
安装Anaconda之后就可以很便捷的安装TensorFlow。
conda install tensorflow-gpu
安装完毕后,执行一个hello world程序来验证安装
$ python
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello)
出现Hello, TensorFlow!表示安装成功。
OpenCV是一个开源跨平台计算机视觉库,可以很方便的对图片进行处理。
conda install -c https://conda.binstar.org/menpo opencv
即可安装OpenCV
CentOS 下默认无法挂载 NTFS 格式的硬盘。需安装 nfts-3g 即可实现即插即用:
sudo yum install ntfs-3g
用ss来实现科学上网
sudo yum install s-libev
sudo chmod 777 /etc/s-libev/config.json
vim /etc/s-libev/config.json
ss-local&
Linux 下有很多 shell,比如最常见的 bash,除此之外还有 csh、ksh。zsh 也是一个 shell。
zsh 的特点在于:
完全不经配置的 zsh 已经很好用了,一般用户也没必要花时间研究配置。 oh my zsh 是一群人一起维护的一套 zsh 配置文件。 直接用这个配置文件,稍稍了解一点会有更好的体验。
主题选择为ys
编辑于 2017-05-02