第八课Linux软件包安装和卸载

7.1安装软件包的三种方法

Rpm工具:它是一种数据库记录的方式将我们所需要的的套件安装到linux主机的一套管理程序,它记录了安装的包以及包与包之间的依赖关系。

Yum工具:可以联网下载所需要的rpm包,然后自动安装。(最常用)

安装源码包:需要把源代码编译成可执行的二进制文件。(出现问题最多)

7.2rpm包工具

 

1、          设置光驱并挂载

首先检查一下虚拟机的右下角小光标图标是否点亮,如果没有,点击一下,再点击“连接”就可以点亮它。挂载光驱后,会在/mnt/Packages目录下看到很多.rpm文件,这些文件就是rpm包。

[root@localhost ~]# mount /dev/cdrom /mnt

mount: /dev/sr0 写保护,将以只读方式挂载

[root@localhost ~]# ls /mnt/

扫描二维码关注公众号,回复: 1621957 查看本文章

CentOS_BuildTag  images    repodata

EFI              isolinux  RPM-GPG-KEY-CentOS-7

EULA             LiveOS    RPM-GPG-KEY-CentOS-Testing-7

GPL              Packages  TRANS.TBL

[root@localhost ~]# ls /mnt/Packages/|head

389-ds-base-1.3.1.6-25.el7.x86_64.rpm

389-ds-base-libs-1.3.1.6-25.el7.x86_64.rpm

abattis-cantarell-fonts-0.0.12-3.el7.noarch.rpm

abrt-2.1.11-12.el7.centos.x86_64.rpm

abrt-addon-ccpp-2.1.11-12.el7.centos.x86_64.rpm

abrt-addon-kerneloops-2.1.11-12.el7.centos.x86_64.rpm

abrt-addon-pstoreoops-2.1.11-12.el7.centos.x86_64.rpm

abrt-addon-python-2.1.11-12.el7.centos.x86_64.rpm

abrt-addon-vmcore-2.1.11-12.el7.centos.x86_64.rpm

abrt-addon-xorg-2.1.11-12.el7.centos.x86_64.rpm

2、          Rpm包格式、包名、版本号、发布版本号、平台。

以这个包为例:

abrt-addon-pstoreoops-2.1.11-12.el7.centos.x86_64.rpm

每个rpm包的名称都由-和.分成了若干部分。在上述包中,

abrt-addon-pstoreoops为包名,2.1.11为版本信息,12.el7.centos为发布版本号,x86_64为64位运行平台,而有的i386,i586,i686为32位运行平台。另外有些rpm包并没有具体的平台,而是noarch,则说明这个rpm包没有硬件平台限制。

3、          rpm –ivh rpm包文件 //安装

[root@localhost Packages]# rpm -ivh libjpeg-turbo-

libjpeg-turbo-1.2.90-5.el7.x86_64.rpm        libjpeg-turbo-devel-1.2.90-5.el7.x86_64.rpm

[root@localhost Packages]# rpm -ivh libjpeg-turbo-devel-1.2.90-5.el7.x86_64.rpm

准备中...                          ################################# [100%]

正在升级/安装...

   1:libjpeg-turbo-devel-1.2.90-5.el7 ################################# [100%]

-i表示安装,-v表示可视化,-h表示显示安装进度。

--force:表示强制安装,即使覆盖属于其他包的文件也要安装

--nodeps:表示当要安装的rpm包依赖于其他包时,即使其他包没有安装,也要安装这个包。

4、          rpm –Uvh rpm包文件 //升级

[root@localhost Packages]# rpm -Uvh !$

rpm -Uvh libjpeg-turbo-devel-1.2.90-5.el7.x86_64.rpm

准备中...                          ################################# [100%]

  软件包 libjpeg-turbo-devel-1.2.90-5.el7.x86_64 已经安装

5、          rpm –e 包名 //卸载

[root@localhost Packages]# rpm -e libjpeg-turbo-devel

[root@localhost Packages]# rpm -qa !$

rpm -qa libjpeg-turbo-devel

-e参数,表示卸载,后面加的是包名,而不是文件。

6、          rpm –qa //查询所有安装的包

 

7、          rpm –q 包名//查询指定包是否安装

[root@localhost Packages]# rpm -q libjpeg-turbo-devel

未安装软件包 libjpeg-turbo-devel

[root@localhost Packages]# rpm -ivh libjpeg-turbo-devel-1.2.90-5.el7.x86_64.rpm

准备中...                          ################################# [100%]

正在升级/安装...

   1:libjpeg-turbo-devel-1.2.90-5.el7 ################################# [100%]

[root@localhost Packages]# rpm -q libjpeg-turbo-devel

libjpeg-turbo-devel-1.2.90-5.el7.x86_64

 

8、          rpm –qi  包名//查询指定包信息

[root@localhost Packages]# rpm -qi libjpeg-turbo-devel

Name        : libjpeg-turbo-devel

Version     : 1.2.90

Release     : 5.el7

Architecture: x86_64

Install Date: 2018年05月29日 星期二 20时36分47秒

Group       : Development/Libraries

Size        : 321621

License     : IJG

Signature   : RSA/SHA256, 2014年07月04日 星期五 10时55分32秒, Key ID 24c6a8a7f4a80eb5

Source RPM  : libjpeg-turbo-1.2.90-5.el7.src.rpm

Build Date  : 2014年06月10日 星期二 11时48分52秒

Build Host  : worker1.bsys.centos.org

9、          rpm –ql 包名//列出包安装的文件

[root@localhost Packages]# rpm -ql libjpeg-turbo-devel

/usr/include/jconfig.h

/usr/include/jerror.h

/usr/include/jmorecfg.h

/usr/include/jpeglib.h

/usr/lib64/libjpeg.so

/usr/share/doc/libjpeg-turbo-devel-1.2.90

/usr/share/doc/libjpeg-turbo-devel-1.2.90/coderules.txt

/usr/share/doc/libjpeg-turbo-devel-1.2.90/example.c

/usr/share/doc/libjpeg-turbo-devel-1.2.90/jconfig.txt

/usr/share/doc/libjpeg-turbo-devel-1.2.90/libjpeg.txt

/usr/share/doc/libjpeg-turbo-devel-1.2.90/structure.txt

10、     rpm –qf 文件绝对路径//查看一个文件是由哪个包安装的

[root@localhost Packages]# rpm -qf /usr/include/jconfig.h

libjpeg-turbo-devel-1.2.90-5.el7.x86_64

 

7.4yum工具用法

1、yum list //列出可用rpm包

从上例看出,有centos.ustc.edu.cn出现,他是指从centos.ustc.edu.cn这里下载的rpm包资源。上例子可以看出,最左侧为rpm包名,中间为版本信息,最右侧是安装信息。

如果已安装,最右侧显示@base,@updates或则@anaconda,它们前面都会有一个@符号。

如果未安装,则会显示base或者anaconda;

如果rpm包已安装但需要升级,则会显示updates.

通常情况下,yumlist命令会先列出已经安装的包,然后再列出可以安装的包。

2、ls /etc/yum.repos.d

root@localhost Packages]# ls /etc/yum.repos.d

CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Sources.repo  CentOS-Vault.repo

上述为yum的配置文件

3、yum search vim /搜索包

[root@localhost Packages]# yum search vim

已加载插件:fastestmirror, langpacks

Loading mirror speeds from cached hostfile

 * base: mirrors.huaweicloud.com

 * extras: mirrors.cn99.com

 * updates: mirrors.huaweicloud.com

=================================================== N/S matched: vim ====================================================

protobuf-vim.x86_64 : Vim syntax highlighting for Google Protocol Buffers descriptions

vim-X11.x86_64 : The VIM version of the vi editor for the X Window System

vim-common.x86_64 : The common files needed by any version of the VIM editor

vim-enhanced.x86_64 : A version of the VIM editor which includes recent enhancements

vim-filesystem.x86_64 : VIM filesystem layout

vim-minimal.x86_64 : A minimal version of the VIM editor

除了上述的方法外,经常会用到grep来过滤。如下所示:

4、yum install –y rpm包名

只列出安装部分图,它首先会把需要安装的rpm包列出来,如果有依赖关系,也会把所有依赖的包列出来。

 

5、yum grouplist

6、yum groupinstall –y

7、yum remove –y,卸载

8、yum update –y,升级

9、yum provides “/*/vim”,当系统中没有此项命令时,可以模糊查找rpm包。

[root@localhost Packages]# yum provides "/*/vim"

——

——

——

2:vim-common-7.4.160-4.el7.x86_64 : The common files needed by any version of the VIM editor

源    :base

匹配来源:

文件名    :/usr/share/vim

 

7.5yum搭建本地仓库

当Linux系统不能联网,就不能很便捷的使用联网的yum源,这样就需要建立本地仓库,从本地仓库安装rpm包。方法如下:

1、    挂载光盘,挂载镜像到/mnt目录

[root@localhost Packages]# mount /dev/cdrom /mnt

mount: /dev/sr0 写保护,将以只读方式挂载

2、    删除/etc/yum.repos.d目录下所有的repo文件(删除前最好先做一个备份)

[root@localhost Packages]# cp -r /etc/yum.repos.d /etc/yum.repos.d_bak

[root@localhost Packages]# rm -rf /etc/yum.repos.d/*

3、    创建新文件dvd.repo

[root@localhost Packages]# vim /etc/yum.repos.d/dvd.repo

[dvd]

name=install dvd

baseurl=file:///mnt

enabled=1

gpgcheck=0

enabled表示是否可用,gpgcheck表示是否要检测。

4、    刷新repos生成缓存

[root@localhost Packages]# yum clean all

已加载插件:fastestmirror, langpacks

正在清理软件源: dvd

Cleaning up everything

Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos

Cleaning up list of fastest mirrors

5、    yum list|less

6、    现在就可以安装所需的软件包了

7.6yum更换国内源

7.7yum下载rpm包

首先恢复之前的yum源,否则后续使用yum还会出现问题。

[root@localhost Packages]# rm -rf /etc/yum.repos.d

[root@localhost Packages]# mv /etc/yum.repos.d_bak /etc/yum.repos.d

[root@localhost Packages]# yum clean all//这样就可以生成缓存,方便下次使用

已加载插件:fastestmirror, langpacks

正在清理软件源: base extras updates

Cleaning up everything

当我们需要下载rpm包但不安装时,而是仅仅想要复制给其他机器使用。可以利用yum工具做到只下载不安装。方法如下:

命令格式:#yum install 包名 –y –downloadonly

这个命令虽然下载了rpm包,但并没有保存到我们指定的目录,默认会在/var/cache/yum/x86_64/7/xxx/packages下面,这里的xxx指base,updates或者extra等,跟yum list最右侧的字符串是一致的。

指定目录命令:

#yum install 包名 –y –-downloadonly –-downloaddir=/usr/local/src

这样就会下载在/usr/local/src目录下

实例:[root@localhost Packages]# yum install -y ypbind --downloadonly --downloaddir=/tmp/

——

——

——

[root@localhost Packages]# ls /tmp/*.rpm

/tmp/ypbind-1.37.1-9.el7.x86_64.rpm  /tmp/yp-tools-2.14-5.el7.x86_64.rpm

若果包已经安装上了,那么使用yum install 包名 –y –-downloadonly,将会提示这个包已安装过,不会下载下来。此时不需要卸载再下载安装,还有另一个办法:

[root@localhost Packages]# ls /var/cache/yum/x86_64/7/base/packages/bash-4.2.46-30.el7.x86_64.rpm

/var/cache/yum/x86_64/7/base/packages/bash-4.2.46-30.el7.x86_64.rpm

7.8源码包安装

安装源码包,需要把源码包编译成可自行的二进制文件。常见的源码包一般使用C语言开发的,因为C语言是Linux上最标准的程序语言。Linux上的C语言编译器称为gcc,利用它可以把C语言编译成可执行的二进制文件。若果机器上面没有安装gcc,就无法编译源码,可以使用如下命令安装:

[root@localhost Packages]# yum install -y gcc

安装源码包通常需要以下3个步骤:

1、./configue。这一步可以定制功能,加上对应的选项即可。具体加什么选项,可以通过./configue –help查看。这一步会自动检测你的Linux系统与相关的套件是否有编译该源码包时所需要的库,因为一旦缺少某个库,就不能完成编译。只有检测通过后,才会生成Makefile文件。

2、make.使用这个命令,会根据Makefile文件中预设的参数进行编译

3、make install.这一步是安装步骤,用于创建相关软件的存放目录和配置文件。

下面安装一个源码包:

1、    下载源码包:

[root@localhost Packages]# cd /usr/local/src/

[root@localhost src]# wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.33.tar.gz

解压源码包

#tar –zxvf httpd-2.4.33.tar.gz

 

2、    配置相关的选项并生成Makefiel

首先进入解压后的源码目录

#cd httpd-2.2.9

在配置前先查看可用的配置参数:

#./configure –help |less

[root@localhost src]# cd httpd-2.4.33

[root@localhost httpd-2.4.33]# .configure --help |less

此时想安装在/usr/local/apache2:

--prefix=/usr/local/apache2

验证上一步 是否成功的命令:

#echo $?

0

这里返回值是0,说明执行成功,否则就没有成功。此时就生成了Makefile了,

4、进行编译

 

扩展:http://blog.lishiming.net/?p=500

1. yum保留已经安装过的包http://www.360doc.com/content/11/0218/15/4171006_94080041.shtml 

2. 
搭建局域网yum源 http://ask.apelearn.com/question/7627
3. 
把源码包打包成rpm包 https://jin-yang.github.io/post/linux-create-rpm-package.html

猜你喜欢

转载自blog.csdn.net/zanghaos/article/details/80503754