Linux之软件rpm、yum、源码安装方式

  • Linux软件基础知识
  • 软件包类型
  • 二进制软件包的安装方式
  • 获取软件
  • 如何选择合适的软件
  • rpm软件包的安装方式
  • yum软件包安装方式
  • 源码包安装方式
  • 使用源码包`默认`安装cmatrix代码雨
  • 使用源码包`自定义`安装cmatrix代码雨
  • 示例:axel多线程下载软件源码安装
  • 第五步:解决命令无法访问问题
  • 解决源码安装手册找不到问题
  • 卸载源码安装的软件


Linux软件基础知识

三种软件安装方法:

① RPM软件包管理(软件名称.rpm)rpm -ivh 软件包名称
② YUM软件包管理(使用yum命令install + 软件名称) => 下载 + 安装一体化
③ 源码编译安装(相对来说是最复杂的一种方式)

软件包类型

1、二进制软件包

centos 二进制安装nload linux如何安装二进制包_源码包

  • 二进制包,指的是已经编译好了的软件包,只需要直接安装就可以使用。
  • 二进制包,不需要编译,直接下载安装即可。
  • 二进制包,需要根据自己的计算机CPU以及操作系统去选择合适的。

2、源码包

  • 源码包,指的是程序员写的原始的程序代码文件,不能够直接在计算机上运行。
  • 源码包,需要进行编译,变成二进制的软件包后,才可安装使用。
  • 源码包,一般可以在任何的计算机上安装使用。
  • 源码包,命名方式一般为:软件包名.tar.gz[.tar.bz2、.tar.xz、.zip]。

类似于腾讯QQ开发工程师 => QQ的源代码发给你了 如.c源代码 => 编译 => QQ.exe文件二进制包

3、二进制源码包(.src.rpm)

  • 二进制源码包,是一个半成品,安装后不能直接使用。
  • 二进制源码包,需要使用rpmbuild工具重建成真正的rpm包或者重建成源码包才可安装使用。
  • 二进制源码包,命名方式一般为:mysql-community-5.7.25-1.el6.src.rpm、mysql-community-5.7.25-1.el7.src.rpm

常见的二进制软件包

centos 二进制安装nload linux如何安装二进制包_环境变量_02

总结二进制包和源码包区别

centos 二进制安装nload linux如何安装二进制包_centos 二进制安装nload_03

二进制软件包的安装方式

① 基于RPM进行安装(先下载软件然后本地进行安装)

② 基于YUM进行安装(在线下载然后安装)


如何选择合适的软件

选择适合当前系统的版本号:

  • 找不到适合的,才去尝试别的系统版本号
  • el6兼容el5;el5无法安装 el6

选择适合当前计算机cpu的架构:

  • x86_64包,只能安装在64位的系统上
  • i386,i586,i686的软件包可以安装在32和64位系统上
  • noarch表示这个软件包与硬件构架无关,可以通用
  • 32位系统不能安装64位包

建议: 建议不要跨大版本号去安装软件包,尽量使用当前系统版本自带软件包安装

rpm软件包的安装方式

rpm安装软件包无法解决依赖问题,需要根据提示一个一个软件包安装,先解决依赖再回来安装软件

安装:

# rpm -ivh 软件包名称

卸载:

# rpm -e 软件包名称 [--nodeps强制]

查询:

# rpm -q 软件名称
或
# rpm -qa |grep 软件名称

升级:

# rpm -Uvh 软件包名称

注:rpm -Uvh不仅可以升级软件,其实它也可以安装软件。

yum软件包安装方式

使用yum源一键解决依赖包安装问题,yum安装方式的最大好处是,如果安装软件时,产生了依赖,不用担心,yum会自动帮助我们解决这些问题的!

安装:

# yum install 软件名称.rpm

备注:当yum安装需要解决依赖时,下载epel扩展源
# yum install epel-release -y

源码包安装方式

获取软件的源码包:

  • 可以去某个软件的官网获取,官网一般摆放的都是源码包*.tar.gz

源码安装三步走:

  • ① 配置./configure(配置软件安装路径,也可以不配置,不配置使用默认路径)
  • ② 编译make(把软件的源代码做成类似rpm的可以直接按照的软件)
  • ③ 安装make install(把刚才编译好的程序进行安装到Linux系统)

使用源码包默认安装cmatrix代码雨

第一步:对软件进行解压缩
	# tar -zxf cmatrix-1.2a.tar.gz


第二步:进入到cmatrix文件夹,然后对软件进行配置
	# 		cd cmatrix-1.2a
	#l		 ./configure		=>  设置软件默认安装的位置等信息


第三步:编译软件,使用make命令
	# make			


第四步:安装软件
	# make install				

#l  总结:进入解压后的软件目录  =>  ./configure => make => make install



常见错误:
	cmatrix.c:37:20: fatal error: "curses.h": No such file or directory
	出现以上问题的主要原因在于系统中没有找到ncurses-devel软件包
解决方案:
	# yum install gcc gcc-c++ ncurses-devel -y

注意:当编译安装到一半是提示没有安装编译工具或基本库没有安装,需要重新安装工具和库。先把工具安装好,重新解压源码编译安装

使用源码包自定义安装cmatrix代码雨

详解源码安装的配置过程(定制):./configure

  • 可以指定配置源码的安装目录和其他一些配置文件的存放目录。
# cd 软件源码包
# ./configure [选项]
# ./configure --help
选项说明:
	--prefix=... Directories to put files in /usr/local "软件家目录"	
	--bindir=... $prefix/bin 	"命令的目录"
	--etcdir=... $prefix/etc 	"配置文件的目录" httpd => /etc/httpd/httpd.conf
	--mandir=... $prefix/share/man man	"文档路径"
	--locale=... $prefix/share/locale 	"语言编码"

详解编译过程:make

  • 在Linux操作系统中,make 主要功能就是讲其他语言的源代码包打包成 Linux 可以识别安装的程序,编译的过程中需要一个gcc软件(开发工具)的支持。
  • 当源码包是c或c++语言编写的时候需要额外下载 gcc 和gcc-c++工具的支持。
# make

安装过程:make install

  • 将make编译好的程序直接安装。
# make install

示例:axel多线程下载软件源码安装

第一步:获取axel多线程下载软件
第二步:上传axel软件包到Linux系统中
第三步:安装axel软件(源码安装三步走=>配置+编译+安装)

  • ①对软件进行解压缩操作
# tar -zxf axel-2.4.tar.gz
或
# tar -xf axel-2.4.tar.gz
  • ② 使用cd命令切换到axel目录中
# cd axel-2.4
  • ③ 对axel软件进行配置(不采用默认配置)
设置axel软件的安装路径为/opt/axel
#l	 ./configure --prefix=/opt/axel


选项说明:
	#l	 ./configure --help
	Usage: ./configure [OPTIONS]
	Option          Description                             Default
	--prefix=...    Directories to put files in             /usr/local
	--bindir=...                                            $prefix/bin
	--etcdir=...                                            $prefix/etc
	--mandir=...                                            $sharedir/man
	--locale=...                                            $sharedir/locale

④ 对axel软件进行编译与安装

  • && :逻辑与,如果make编译成功会立即执行右边的make install安装程序,如果make编译失败,则以上程序会停止执行,然后抛出错误。
# make
# make install
或
# make && make install

第四步:测试与使用:

  • 出现以下问题的主要原因在于:我们没有采用默认的安装方式,所以导致当我们执行axel命令时,其找不到对应的软件。
#l [root@yunwei ~]# axel http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7
#				bash: axel: command not found...

第五步:解决命令无法访问问题

  • 第一种方式:采用软链接形式(类似Windows中的快捷方式)
  • 第二种方式:使用环境变量(重要,Linux中的环境变量)

①使用软链接解决command not found

# whereis axel	=>	查询axel命令所在的目录。
	[root@localhost opt]# whereis axel
	axel: /opt/axel/bin/axel

# which axel	=>	查询,发现axel命令不在系统命令目录中,所以无法直接调用axel命令
/usr/bin/which: no axel in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)


# ll /opt/axel/bin	=>	axel命令在/opt/axel/bin目录下,需要想办法将其链接到系统命令目录中
axel


解决方案:给/opt/axel/bin/axel创建一个快捷方式到/usr/local/bin
# ln [选项]  源文件路径 软链接路径
选项说明:
	s:建立软链接
	
# ln -s /opt/axel/bin/axel /usr/local/bin/axel 
主要功能:创建axel命令的软链接,把axel命令加入环境变量


验证:
# axel http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7


	#l 删除软链接:
		# rm -rf /usr/local/bin/axel

②使用环境变量解决command not found

  • 环境变量:命令能执行主要是因为命令存放在系统的环境变量里面
  • axel多线程下载软件,通过源码的方式安装成功后。由于没有使用默认的安装路径,导致axel命令没有出现在系统的环境变量中,所以会出现 command not found,需要手动将axel命令添加到环境变量中
#l 终端	=>	命令	=>	系统的环境变量(PATH => /etc/profile[全局配置环境变量])	=>	一些命令的存放路径

# echo $PATH
	[root@localhost ~]# echo $PATH
	/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
主要功能:以上目录都属于"系统的环境变量"
  • 手动添加命令到系统环境变量
第一步:查询当前系统环境变量路径
	# echo $PATH	
	/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

第二步:把axel命令所在的目录添加到环境变量中
	第一种方法:使用vim编辑/etc/profile文件,追加到最后一行
		# vim /etc/profile
		...
		增加如下内容:
		 export PATH=$PATH:/opt/axel/bin
		# soure /etc/profile	=>	代表让配置立即生效

	第二种方法:使用echo命令向/etc/profile文件追加一行
		# echo 'export PATH=$PATH:/opt/axel/bin' >> /etc/profiel
		# soure /etc/profile	=>	代表让配置立即生效
	
第三步:测试axel命令是否正常使用
	# axel http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7

#l 查看环境变量
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/axel/bin

解决源码安装手册找不到问题

  • 当使用源码安装时,有些电脑找软件手册找不到
# man axel	=>	查看axel更详细的帮助
	[root@localhost ~]# man axel
	No manual entry for axel 
	原因:找不到指定的man文档

解决方案:
# vim /etc/man.config	=>	属于系统文件,查找的时候查找不到,使用就可以
	...
	增加如下内容:
	MANPATH /opt/axel/share/man
	主要功能:增加自定义路径,当使用man axel 时就可以查看到软件的手册

卸载源码安装的软件

第一步:进入到源码的安装包中
	#   cd axel-2.4/
	# make uninstall	=>   对安装软件的安装包等程序进行卸载
	# make distclean    =>   卸载编译与配置过程,恢复到原始状态

第二步:删除软件的目录
	# rm -rf /opt/axel