环境配置

2022-10-25 19:31:52 浏览数 (2)

一、用户环境设置

由于 Linux 命令行没有图形化界面,因此,所有的设置都采用文本的方式来完成,而其中最重要的用户设置则为 bashrc 文件,很多时候,命令找不到,缺少 XXX,都可能与这个有关。bashrc:为每一个运行 bash shell 的用户执行此文件。当 bash shell 被打开时,该文件被读取,其中 rc 是“run configure”的简写。

在每个用户的 home 目录下,我们使用 ls -a 命令,就会看到以 bash 开始开头的四个隐藏文件。.bash_profile、.bashrc,.bash_logout 和.bash_history。

为了让每个新用户继承默认配置,可以修改/etc/skel 目录下的文件,修改其中的.bashrc 文件,为每个用户重新配置 PS,Alias,PATH 变量等。

代码语言:javascript复制
root 08:59:38 ~
$ ll -a
total 52K
-rw-r--r--.  1 root root  129 May 11  2019 .tcshrc
-rw-r--r--.  1 root root  100 May 11  2019 .cshrc
-rw-r--r--.  1 root root  176 May 11  2019 .bash_profile
-rw-r--r--.  1 root root   18 May 11  2019 .bash_logout
drwxr-xr-x   2 root root 4.0K Jul 16  2020 .pip/
drwx------   2 root root 4.0K Mar 13 21:27 .cache/
-rw-r--r--   1 root root   73 Jul  6 08:44 .pydistutils.cfg
drwx------   2 root root 4.0K Jul  6 08:48 .ssh/
-rw-r--r--   1 root root  681 Jul  6 08:57 .bashrc
drwx------   3 root root 4.0K Jul  6 08:57 .config/
dr-xr-x---.  6 root root 4.0K Jul  6 08:57 ./
-rw-------   1 root root  350 Jul  6 08:59 .bash_history
dr-xr-xr-x. 19 root root 4.0K Jul  6 09:00 ../
代码语言:javascript复制
#1 默认文本界面
systemctl get-default
graphical.target #显示的是graphical.target,也就是图形模式,多用户模式,multi-user.target
systemctl set-default multi-user.target

二、CentOS rpm 包

因为 Linux 开源免费的特性,没有 windows 系统和 MacOS 系统统一的开发环境,Linux 系统的环境配置是学习和使用 Linux 系统最难的地方。为了解决 Linux 系统源代码编译所带来的诸多问题,Linux 系统提供了 RPM 的软件管理方式,RPM 是 RPM Package Manager,RPM 软件包管理器的缩写,其实真正的名字应该是 Red Hat Package Manager,最早是给Redhat 用的,这一文件格式名称虽然打上了 RedHat 的标志,但是其原始设计理念是开放式的,现在包括 OpenLinux、CentOS,SusE.以及 Turbo Linux 等 Linux 分发版本都有采用,可以算是公认的行业标准了。

在 RPM(红帽软件包管理器)公布之前,要想在 Linux 系统中安装软件,只能采取编译源码包的方式。所以,早期安装软件是一件非常困难、耗费耐心的事情,而且大多数的服务程序仅仅提供自身的源代码,还需要运维人员编译代码后自行解决软件之间的依赖关系。因此要安装好一个服务程序,运维人员不仅需要具备丰富的知识、高超的技能,还要有良好的耐心。与前面自行安装编译生物软件类似,使用源代码的方式经常需要解决各种报错问题。

总而言之,早期的 Linux 系统在安装、升级、卸载服务程序时还要考虑到其他程序、库的依赖关系,所以在进行校验、安装、卸载、查询、升级等软件操作时难度都非常大。RPM 机制则正是为了解决这些问题而设计的。

目前,Debian 与 Ubuntu 阵营使用 deb 软件包与 rpm 类似。下载操作系统文件在 4G 以上,其中很大一部分都是相应的 rpm 软件包。

三、yum 工具

rpm 软件包虽然显著的提高了 Linux 软件的安装过程,但是还是会存在很多问题,比如最令人头疼的软件依赖关系问题。有些大型软件可能与数十个程序都有依赖关系,在这种情况下安装软件依然很繁琐。例如我们想通过 rpm 安装 boost 库,还是没法解决依赖关系,还不如使用源代码编译,另外,批量安装的问题,比如需要安装所有 boost 相关的内容,需要一个个安装,但是这样也会有问题,即使没有其他依赖关系,这么多 boost 开头的软件还是会有顺序问题,我们并不清楚需要先安装哪个,再安装哪个,还是令人头疼。所以,就出现了yum 的解决方案。

Yum 全称为 Yellowdog Updater, Modified 是一个在 RedHat 以及 CentOS 中的 Shell 前端软件包管理器。主要目的是用来自动解决软件依赖关系问题而开发的。为什么叫 Yellodog,是因为之前有一个 Linux 的发行版本叫为 Yellowdog,后来 Redhat 也引入 yum 这种软件管理方式。yum 基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装,这点非常重要。yum 类似与 Debian 阵营中的 apt 工具。目前 yum 工具已经被效率更高的 dnf 工具取代,但依然可以直接使用 yum 命令。

四、yum 仓库

yum 并不是一种全新的软件封装形式,而是用来管理 rpm 软件的工具,软件还是使用 rpm方式封装,yum 只不过是能够自动解决 rpm 的依赖关系。此外 yum 还可以对 rpm 进行分组,并基于组进行安装操作,正常情况下 rpm 每个软件包都是独立的,而 yum 对 rpm 进行了分组,比如安装“development tools”可以一次性安装开发相关的所有 rpm 软件包,这样一条命令就配置好了开发环境,而不需要自己一个个 rpm 去进行安装。

那什么是 yum 的仓库呢,yum 仓库用来存放所有现有的 rpm 软件包,类似于 bioconda 为Anaconda 的一个仓库。在系统安装镜像中的 Packages 包含 9000 多个 rpm 软件包,就可以称为一个仓库。当使用 yum 安装一个 rpm 软件的时候,如果存在依赖关系,yum 会自动的去找依赖的软件,那么 yum 去哪里去找呢,就是在软件仓库中,yum 会自动在仓库中查找依赖软件并安装。如果仓库中没有,yum 也是无法安装的。

yum 仓库可以是本地的,也可以通过 http,ftp 或者 nfs 形式使用集中的,统一的网络仓库。互联网上有很多的提供这种 yum 软件仓库的服务器,这种软件仓库我们也称为软件源。

腾讯云服务器有自己的仓库,但是不对外访问,可以在下面路径中找到。

代码语言:javascript复制
root 09:01:04 ~
$ cd /etc/yum.repos.d/
root 09:04:52 /etc/yum.repos.d
$ ll
total 32K
-rw-r--r-- 1 root root 231 Oct 26  2020 CentOS-PowerTools.repo
-rw-r--r-- 1 root root 232 Oct 26  2020 CentOS-HA.repo
-rw-r--r-- 1 root root 216 Oct 26  2020 CentOS-Extras.repo
-rw-r--r-- 1 root root 230 Oct 26  2020 CentOS-Epel.repo
-rw-r--r-- 1 root root 249 Oct 26  2020 CentOS-Devel.repo
-rw-r--r-- 1 root root 226 Oct 26  2020 CentOS-centosplus.repo
-rw-r--r-- 1 root root 214 Oct 26  2020 CentOS-Base.repo
-rw-r--r-- 1 root root 228 Oct 26  2020 CentOS-AppStream.repo
root 09:04:54 /etc/yum.repos.d
$ cat CentOS-Base.repo
# Qcloud-Base.repo

[BaseOS]
name=Qcloud-$releasever - BaseOS
baseurl=http://mirrors.tencentyun.com/centos/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Qcloud-8

五、利用 yum 安装配置

在了解了 yum 的工作原理之后,就可以使用 yum 工具来进行系统配置,在支持 rpm 软件包管理的系统上一般都装有 yum 工具。

yum 是一个 python 编写的程序,yum 包含很多命令,可以完成 rpm 软件包大量的管理工作。后面我们分析平台系统环境配置,绝大部分工作都是通过 yum 工具来完成的,所以一定要能够熟练使用 yum 工具。

yum 有很多选项参数,直接敲 yum 就会弹出软件帮助信息,yum 包括完整的 rpm 管理方式,包括软件的安装,更新,查找,显示,删除,清除缓存等等功能。类似于之前学习过的 conda命令软件管理方式。

很多环境配置都可以使用 yum 直接完成,例如各种库,python 模块,perl 模块等。包括安装 gcc,g ,java,zlib 库,boost 库,cmake,compat 库等。很多库需要一堆依赖,比如32 位版本,devel 开发版本,因此添加同配置“*”,一次全部安装。

写在最后:有时间我们会努力更新的。大家互动交流可以前去论坛,地址在下面,复制去浏览器即可访问,弥补下公众号没有留言功能的缺憾。原地址暂未启用(bioinfoer.com)。

代码语言:javascript复制
sx.voiceclouds.cn

有些板块也可以预设为大家日常趣事的分享等,欢迎大家来提建议。

0 人点赞