Linux软件包安装和卸载

7.1 安装软件包的三种方法

在windows系统下安装软件很简单,只要双击后缀为exe的文件,然后根据提示连续点击“下一步”按钮即可。然而在linux系统下安装软件就没那么容易了,因为我们不是在图形界面下。

  • rpm工具

RPM是Red Hat Package Manager的缩写,由Red Hat 公司开发。RPM 是以一种数据库记录的方式来将你所需要的套件安装到你的Linux 主机的一套管理程序。也就是说,你的linux系统中存在着一个关于RPM的数据库,它记录了安装的包以及包与包之间依赖相关性。RPM包是预先在linux机器上编译好并打包好的文件,安装起来非常快捷。但是也有一些缺点,比如安装的环境必须与编译时的环境一致或者相当;包与包之间存在着相互依赖的情况;卸载包时需要先把依赖的包卸载掉,如果依赖的包是系统所必须的,那就不能卸载这个包,否则会造成系统崩溃。

rpm工具有点像Windows下的exe安装

  • yum工具

yum工具比rpm工具好用多了,当然前提是你使用的linux系统是支持yum的。yum最大的优势在于可以联网去下载所需要的rpm包,然后自动安装,在这个工程中如果要安装的rpm包有依赖关系,yum会帮你解决掉这些依赖关系依次安装所有rpm包。

yum工具就像苹果手机上的应用商店一样,可以傻瓜式的一键帮你安装所需的软件。

  • 源码包

这个源码包就完全不同于Windows了,所谓的源码包,就是源代码,你可以看到这个程序当时作者使用例如C语言、C++、等各种语言开发的源码文件。需要我们自己把源代码编译成二进制的可执行文件。如果你读得懂这些源代码,那么你就可以去修改这些源代码自定义功能,然后再去编译成你想要的。使用源码包的好处除了可以自定义修改源代码外还可以定制相关的功能,因为源码包在编译的时候是可以附加额外的选项的。缺点是安装和卸载比较麻烦。

 

7.2 rpm包介绍

我们需要知道rpm包是长啥样的,其实在centos系统安装盘下就有很多的软件就是rpm包形式的。我们在虚拟机里把光盘挂载进来看看吧!

 

Linux软件包安装和卸载_第1张图片

Linux软件包安装和卸载_第2张图片

把光盘添加好后,我们还需要挂载它,如下图:

使用mount /dev/cdroom /mnt 将光盘挂载到mnt/ 目录下,这里会提示以只读方式挂载,因为光盘本身就不支持写数据的。 

Linux软件包安装和卸载_第3张图片

挂载好以后我们就可以在/mnt/Packages/ 目录下看到所有的rpm包了

Linux软件包安装和卸载_第4张图片

rpm包文件名详解:

示例:abrt-desktop-2.1.11-50.el7.centos.x86_64.rpm
abrt-desktop:包名    2.1.11:版本号     50.el7: 发布版本号,7代表是centos7

x86_64 :平台 64位,centos7默认都是64位 
.rpm: 后缀名

64位平台可以安装32位的包,跟Windows一样

 

7.3 rpm工具用法 

 

  • rpm -ivh 包名  --安装rpm包(其中-i是安装-v是可视化-h是人性化显示)

  • rpm -Uvh 包名 --升级rpm包
  • rpm -evh 包名  --卸载(卸载时只要写包名,不能带后缀,而且如果有依赖的包也要将依赖包先卸载掉才可以)

  • rpm -qa --查询当前已安装的所有rpm包

Linux软件包安装和卸载_第5张图片

  • rpm -q 包名 --查询指定包名是否安装

  • rpm -qi 包名 -- 查看指定包的信息

Linux软件包安装和卸载_第6张图片

  • rpm -ql 包名 -- 列出包安装的文件

Linux软件包安装和卸载_第7张图片

  • rpm -qf 文件绝对路径 -- 查看一个文件是由哪个包安装的

知识点:反引号可以引用命令的结果 ,使用反引号which 命令查看,只能查只有一行显示路径的命令,例如cd,ls则不可以,因为它做了别名,which出来就有两行了。

示例操作:

Linux软件包安装和卸载_第8张图片

 

7.4 yum工具用法 

是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。 
基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。 
yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

优势点:支持自动安装依赖包

用法:

  • yum list -- 列出可用的rpm包

Linux软件包安装和卸载_第9张图片

yum list 有三列,其中第一列是包名,第二列是版本号,第三列代表的是仓库名字。

  • ls /etc/yum.repos.d --查看仓库名在yum的配置文件 

使用cat /etc/yum.repos.d/CentOS-Base.repo 查看仓库详细配置信息

Linux软件包安装和卸载_第10张图片

上面看到[]里的base,就是仓库名 
把包放到一个容器里,这个容器就是仓库,通过仓库下面的网络地址可以找到它,每个仓库下有很多包。 

  • yum search 包名  -- 搜索包

Linux软件包安装和卸载_第11张图片

这种搜索不太严谨,只要含有vim字符的都会查找出来,而且不区分大小写。我们可以使用另一种方法:

  • yum list |grep “vim” -- 通过管道符将vim的包过滤出来

Linux软件包安装和卸载_第12张图片

  • yum install [-y]   --  安装软件包(加上-y选项可以不交互直接安装)

Linux软件包安装和卸载_第13张图片

  • yum grouplist -- 列出可用组

Linux软件包安装和卸载_第14张图片

  • yum groupinstall [-y]  -- 安装组(安装组就会将组里的所有软件全部装上)

Linux软件包安装和卸载_第15张图片

  • yum remove [-y] --  卸载软件包

Linux软件包安装和卸载_第16张图片

  • yum update [-y] -- 升级软件包(如果不跟包名则会将整个系统更新到最新)

  • yum provides "/*/命令" -- 根据命令搜索包 

Linux软件包安装和卸载_第17张图片

 

7.5 yum搭建本地仓库

在没联网的情况下yum是使用不了的,这时候可以搭建一个本地仓库,方便安装包和它所依赖的包。

1.首先要将系统安装光盘或者镜像挂载到/mnt/目录下,使系统可以访问 

2.挂载好以后我们对yum仓库的配置文件进行备份一下

3.删除/etc/yum.repos.d/下所有文件

Linux软件包安装和卸载_第18张图片

4.在/etc/yum.repos.d/目录下新建一个仓库配置文件dvd.repo并添加加以下五行:

[dvd]                           //仓库名字
name=dvd               //自定义一个描述字符串,意义不大
baseurl=file:///mnt            //路径地址
enable=1                      //是否可用,1可用,0不可用
gpcheck=0                      //是否检测,0不检测,1检测

5.清除yum缓存:yum clean all

Linux软件包安装和卸载_第19张图片

6.查看yum软件包列表:yum list | more

Linux软件包安装和卸载_第20张图片

右边带@的表示已经安装的,下边仓库名为dvd表示可安装的包 

7.此时就可使用yum进行安装我们自己搭建的dvd仓库的软件了

Linux软件包安装和卸载_第21张图片

 

7.6 yum更换国内源

系统自带的yum源不太好使,因为一般默认都是国外的源,没有国内的访问速度快。所以我们就可以自己手动更换到国内的源。

1.将我们之前做的本地源删掉,然后恢复原来的备份。

[root@localhost yum.repos.d]# rm -rf dvd.repo 
[root@localhost etc]# cp yum.repos.d.bak/* yum.repos.d/
cp: 略过目录"yum.repos.d.bak/yum.repos.d"
[root@localhost etc]# cd yum.repos.d
[root@localhost yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
[root@localhost yum.repos.d]# 

2.删掉默认的Base源

[root@localhost yum.repos.d]# rm -rf CentOS-Base.repo 

3.使用wget或者curl下载国内的163源,至此就已经更换完成了。

[root@localhost yum.repos.d]# curl -O http://mirrors.163.com/.help/CentOS7-Base-163.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1572  100  1572    0     0  45246      0 --:--:-- --:--:-- --:--:-- 46235
[root@localhost yum.repos.d]# ls
CentOS7-Base-163.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo         CentOS-fasttrack.repo  CentOS-Sources.repo
[root@localhost yum.repos.d]# 

 

7.7 yum下载rpm包

工作中有时候我们只想下载一个软件包,并不想安装它。所以我们就需要这样做了,

  • 首先需要安装一个工具:yum install -y epel-release 

Linux软件包安装和卸载_第22张图片

  • 下载rpm包到当前目录:yumdownloader 包名

Linux软件包安装和卸载_第23张图片

另一种用法:yum install 包名 --downloadonly 

Linux软件包安装和卸载_第24张图片

这种用法的话将会下载到一个固定的目录下:

ls /var/cache/yum/x86_64/7/仓库名/packages 

Linux软件包安装和卸载_第25张图片

可以看到我们下载的zsh是base仓库的,所以在base/packages/目录下

  • 下载包到指定路径:yum reinstall 包名 --downloadonly --downloaddir=路径(reinstall参数是重新安装的意思主要针对已经安装的包)

Linux软件包安装和卸载_第26张图片

  • yum安装软件时自动保存rpm包

可以设置使yum保留已经下载的rpm包,供以后升级或重新安装时使用。如果不设置的话,每次yum安装好软件后是不会保留该rpm包的。 
修改/etc/yum.conf即可: 

[main]
cachedir=/var/cache/yum/$basearch/$releasever   //放置下载的包的地方,可以修改为自己想放置的位置。
keepcache=1                                    //为1时表示保存已经下载的rpm包。0则不保存。
debuglevel=2

 

7.8 源码包安装

先达成一个约定,以后所有的源码包我们都统一放在/usr/local/src/目录下,方便你,方便我,方便大家。

1.下载源码包:wget http://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz

Linux软件包安装和卸载_第27张图片

2,解压源码包后进入目录下查看:tar -zxvf apr-1.6.3.tar.gz 

Linux软件包安装和卸载_第28张图片

3.所有的源码包都会有些说明文档 
README 说明书:

Linux软件包安装和卸载_第29张图片

INSTALL 安装文档:

Linux软件包安装和卸载_第30张图片

3.开始安装并指定安装路径: ./configure –prefix=/usr/local/apache

[root@localhost apr-1.6.3]# ./configure -prefix=/usr/local/apache

这一步其实已经是在预编译了,时间会比较长,如果出现错误则会停止。这里我们可以使用echo $?来检查上一条命令是否执行成功:

可以看出输出结果为0,表示上一条命令执行成功,如果为1的话就是执行失败,这时就需要查看报错信息去处理问题了。

4.编译:make

Linux软件包安装和卸载_第31张图片

正式编译时间也会很久,同样的,执行完make后我们使用echo $? 进行检查,可以看到结果也是0,很完美的结果。

5.正式安装:make install

Linux软件包安装和卸载_第32张图片

Linux软件包安装和卸载_第33张图片

 这样就完成了apr包的编译安装了。可以查看到它已经成功的安装到/usr/local/apache/目录下:

 

课堂笔记:

 

  • https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/isolinux/ 清华镜像源

rpm安装软件包时,可以加--nodeps选项,表示当要安装的RPM包依赖于其他包时,即使其他包没有安装,也要安装这个包。如下图:

 

Linux软件包安装和卸载_第34张图片

yum autoremove vim : 卸载时连依赖包一起卸载

 

Linux软件包安装和卸载_第35张图片

yum makecache   --把服务器的包信息下载到本地电脑缓存起来

yum check-update   --检查是否有可用的更新rpm软件包

yum repolist   --查看yum仓库标识,如图:

Linux软件包安装和卸载_第36张图片

扩展:

  • 搭建局域网yum源 :https://blog.csdn.net/miouqi/article/details/73159297 
  • 把源码包打包成rpm包: https://jin-yang.github.io/post/linux-create-rpm-package.html
  • 搭建一个局域网http的yum源 :http://blog.lishiming.net/?p=500

 

 

 

 

 

 

你可能感兴趣的:(Linux软件包安装和卸载)