001 Linux下编译开发环境和日常使用环境打造(以centos7为例)

2022年11月20日12:26:45

原文来自:http://seisman.info/linux-environment-for-seismology-research.html

一、基础开发环境

GCC 系列

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     # 版本控制

编辑器

写代码的时候选一个好用的编辑器很重要,用的比较多的编辑器如下:

  1. vim
  2. emacs
  3. atom
  4. sublime text 3
  5. Visual Studio Code

Java 环境

sudo yum install java                        # java 运行环境

Python

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 PyQt5  # Qt5 的 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 绑定

二、日常使用环境

驱动程序

显卡驱动

Linux 默认只使用开源的显卡驱动,就目前的情况来看,开源驱动的效果还是不错的,但跟官方的 闭源驱动相比还是有一定差距。最明显的区别是,在使用 SAC 的 ppk 功能放大波形时,使用开源驱动会 出现延迟,而使用官方闭源则整个过程非常顺畅。

关于显卡驱动的安装,请参考 Linux 下安装 nvidia 显卡驱动 一文中的 “从 ELRepo 源中安装驱动” 部分。

注意:目前的显卡驱动似乎有问题,安装后终端有时会出现屏幕闪烁、一屏文字上下重复跳动的情况, 稍微有些影响用 vim 写代码。是否要安装显卡驱动自己决定。

NTFS 驱动

CentOS 下默认无法挂载 NTFS 格式的硬盘。需安装 nfts-3g 即可实现即插即用:

sudo yum install ntfs-3g

日常软件

WPS Office

若在 Linux 下对于文档处理有更高一些的要求,可以尝试目前还处于测试版的 WPS Office for Linux。 WPS Office 的兼容性以及界面都比 LibreOffice 要好很多,值得期待,当然还是不能做到完全兼容 MS Office。

安装过程参考 CentOS 下安装 WPS Office 一文。

Flash 插件

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 客户端

FTP 客户端,还是有界面的 filezilla 比较方便些。

sudo yum install filezilla

效率类软件

这一类工具能够在不同方面提高科研的效率,也提高了使用者的体验。

终端模拟器

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 进行配置。

zsh 与 oh my zsh

Linux 下有很多 shell,比如最常见的 bash,除此之外还有 csh、ksh。zsh 也是一个 shell。

zsh 的特点在于:

  • 语法基本完全兼容于 bash,一般用户完全体会不到其区别
  • zsh 提供命令补全特性,比 bash 的补全要更好用
  • 可配置性强

完全不经配置的 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
  • 备份已有的 zsh 配置文件~/.zshrc ,并复制新的.zshrc 文件
  • 将当前用户的默认 shell 由 bash 改成 zsh

第三步中,会报错如下:chsh: "/usr/bin/zsh" is not listed in /etc/shells. ,需要手动修改默认 shell:

chsh -s /bin/zsh

chsh 命令修改的是 login shell,因而需要退出当前用户并重新登陆,以后用户的默认 shell 就从 bash 变成了 zsh,所有的配置都不用写到.bashrc 而要写到.zshrc 中。

.zshrc 中可以选择喜欢的主题,以及适当数量的插件。下面列出我在用的插件:

  1. git

    该插件为 git 的众多常用命令提供了更简单的别名,比如git status 的别名是gst, 大大减少了击键数。但该插件中git mergetool --no-prompt 的别名是gmt, 与 GMT 软件冲突,需要将该插件的目录 git 复制到 custom/plugins 下,然后删除其中的 gmt 别名;

  2. 命令补全插件: pip, pyenv
  3. sudo:按两下ESC 即可在当前命令前加上sudo
  4. yum:为常见的 yum 命令提供别名

中文输入法

由于使用的是全英文安装,所以默认是没有中文输入法的。

在“Application”->“Settings”->“Region & Language” 中将“Chinese(Intelligent Pinyin)”添加到“Input Sources” 中即可使用中文输入法。默认使用“Shift”键切换中文输入法。

等宽字体

编程要用等宽字体,这点是常识了。一款适合编程的等宽字体,至少要满足如下几个要求:

  1. 易于区分 “1”、“i” 和“l”
  2. 易于区分 “0”、“o” 和“O”
  3. 易于区分中文下的左引号和右引号
  4. 美观

目前选择的 Source Code Pro。将解压后的字体文件放在~/.fonts 目录下,并修改终端、gedit 以及其他编辑器、IDE 等的默认字体。

虚拟机

有时候可能需要在 Windows 下做一些操作,如果机器性能足够好的话,可以安装虚拟机。

VirtualBox 虚拟机

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

需要注意两点:

  • 若机器性能不够,虚拟机的使用体验会非常差,所以不建议在老机器上使用;
  • 更新 kernel 之后需要执行sudo /sbin/rcvboxdrv setup
  • 在 VirtualBox 安装虚拟系统后,记得使用 “设备”->“安装增强功能”,使用效果会更好;

BT 软件

uGet

http://ugetdm.com/

uGet 是 Linux 下的一个下载工具,支持 HTTP、HTTPS、FTP、Torrent 等,支持多连接,并可以监视剪贴板:

sudo yum --enablerepo=epel-testing install uget aria2

截图软件 shutter

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 meld          # 图形界面下的文件差异比较工具

三、给一般账号 root 权限

默认情况下,一般账号是没有 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 为当前用户名。

四、全面更新

在进一步操作之前,先把已经安装的软件包都升级到最新版:

sudo yum update

要更新的软件包有些多,可能需要一段时间。不过有了 yum-axelget 插件,速度已经快了很多啦。

重启

第一次全面更新完之后建议重启。

删除多余的 kernel

在前面的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

五、最后:软件安装若干原则

为了搭建一个稳定的系统,尽量避免因为各种瞎折腾而导致的系统问题,特订立了一些软件安装的原则。 具体参见CentOS7 下的软件安装方法与策略》。

  • 作者:昕water
  • 原文链接:https://blog.csdn.net/qq_15304853/article/details/78700100
    更新时间:2022年11月20日12:26:45 ,共 5297 字。