欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Linux软件包安装与卸载,搭建本地仓库的详细教程

程序员文章站 2022-12-10 23:09:50
Linux软件包的安装与卸载 安装软件包的三种方法 rpm工具     red hat package manager,红帽公司开发的包管理软件 yum工具 &nb...

Linux软件包的安装与卸载

安装软件包的三种方法

rpm工具    

red hat package manager,红帽公司开发的包管理软件

yum工具   

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系。

源码包安装     

需要通过编译器把源码包编译成可执行的文件,可以看到作者的所有代码

rpm包介绍

rpm包格式,包名,版本号,发布版本号,平台

例:

popt-1.13-16.el7.x86_64.rpm

包名 版本号 发布版本 平台

postgresql-jdbc-9.2.1002-5.el7.noarch.rpm

主版本号9,次版本号2,修正版本号1002,noarch表示不限制平台

rpm工具用法

rpm -ivh  rpm包文件    安装

rpm -Uvh rpm包文件   升级

rpm -e 包名                 卸载    不能跟rmp包文件名

rpm -qa                       查询安装的包

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

rpm -qi包名                 查询指定的包信息

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

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

rpm -qf `which cd`      查询cd命令的包是由哪个包安装的

例:

[root@bogon ~]# mount /dev/cdrom /mnt            挂载光盘至/mnt/目录下

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

       /dev/sr0 已经挂载到 /mnt 上

[root@bogon ~]# ls /mnt

CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7

EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL

[root@bogon ~]# cd /mnt/Packages/

[root@bogon Packages]# ls |head                列出前10个文件

389-ds-base-1.3.6.1-16.el7.x86_64.rpm

389-ds-base-libs-1.3.6.1-16.el7.x86_64.rpm

abattis-cantarell-fonts-0.0.25-1.el7.noarch.rpm

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

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

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

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

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

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

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

[root@bogon Packages]# rpm -ivh abrt-addon-ccpp-2.1.11-48.el7.centos.x86_64.rpm    安装此包

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

软件包 abrt-addon-ccpp-2.1.11-48.el7.centos.x86_64 已经安装

[root@bogon Packages]# rpm -Uvh abrt-addon-ccpp-2.1.11-48.el7.centos.x86_64.rpm   升级此包

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

软件包 abrt-addon-ccpp-2.1.11-48.el7.centos.x86_64 已经安装

[root@bogon Packages]# rpm -e abrt-addon-ccpp-2.1.11-48.el7.centos.x86_64.rpm        卸载此包

错误:未安装软件包 abrt-addon-ccpp-2.1.11-48.el7.centos.x86_64.rpm              用包文件名会报错

[root@bogon Packages]# rpm -e abrt-addon-ccpp         卸载此包,用包名才正确

错误:依赖检测失败:  因为有其他包依赖此此包,故卸载失败,非必要,不可强制卸载,可能引起系统崩溃

abrt-addon-ccpp 被 (已安裝) abrt-desktop-2.1.11-48.el7.centos.x86_64 需要

[root@bogon Packages]# rpm -qa                       查询已安装的包

libmusicbrainz5-5.0.1-9.el7.x86_64

grub2-2.02-0.64.el7.centos.x86_64

lvm2-2.02.171-8.el7.x86_64

bind-license-9.9.4-50.el7.noarch

libsemanage-python-2.5-8.el7.x86_64

microcode_ctl-2.1-22.el7.x86_64

libimobiledevice-1.2.0-1.el7.x86_64

ncurses-libs-5.9-13.20130511.el7.x86_64

libnice-0.1.3-4.el7.x86_64

~

[root@bogon Packages]#

[root@bogon Packages]# rpm -q libmusicbrainz5           查询指定包是否已安装

libmusicbrainz5-5.0.1-9.el7.x86_64

[root@bogon Packages]# rpm -qi libmusicbrainz5           查询指定包的详细信息

Name        : libmusicbrainz5

Version     : 5.0.1

Release     : 9.el7

Architecture: x86_64

Install Date: 2018年04月03日 星期二 02时42分15秒

Group       : System Environment/Libraries

Size        : 607838

License     : LGPLv2

Signature   : RSA/SHA256, 2014年07月04日 星期五 11时00分51秒, Key ID 24c6a8a7f4a80eb5

Source RPM  : libmusicbrainz5-5.0.1-9.el7.src.rpm

Build Date  : 2014年06月10日 星期二 12时14分00秒

Build Host  : worker1.bsys.centos.org

Relocations : (not relocatable)

Packager    : CentOS BuildSystem <http://bugs.centos.org>

Vendor      : CentOS

URL         : http://www.musicbrainz.org/

Summary     : Library for accessing MusicBrainz servers

Description :

The MusicBrainz client library allows applications to make metadata

lookup to a MusicBrainz server, generate signatures from WAV data and

create CD Index Disk ids from audio CD roms.

[root@bogon Packages]# rpm -ql libmusicbrainz5           查询指定包安装的文件

/usr/lib64/libmusicbrainz5.so.0

/usr/lib64/libmusicbrainz5.so.0.0.1

/usr/share/doc/libmusicbrainz5-5.0.1

/usr/share/doc/libmusicbrainz5-5.0.1/AUTHORS.txt

/usr/share/doc/libmusicbrainz5-5.0.1/COPYING.txt

/usr/share/doc/libmusicbrainz5-5.0.1/NEWS.txt

/usr/share/doc/libmusicbrainz5-5.0.1/README.md

[root@bogon Packages]# rpm -qf /usr/share/d

dbus-1/              defaults/            dict/                

dconf/               desktop-directories/ doc/                 

[root@bogon Packages]# rpm -qf /usr/share/doc/libmusicbrainz5-5.0.1/NEWS.txt  

依据文件查询由哪个包安装

libmusicbrainz5-5.0.1-9.el7.x86_64

[root@bogon Packages]# rpm -qf `which cd`    查询cd命令的包是由哪个包安装的,两步合并操作

bash-4.2.46-28.el7.x86_64

[root@bogon Packages]# 

yum工具用法

yum list                              可安装和可更新的RPM包

ls /etc/yum.repos.d            查看yum源的配置文件

yum search 包名               搜索包

yum install (-y)包名       安装 (-y 自动应答yes,-q 静默执行,-t 忽略错误,-R[分钟] 设置等待时间)

yum grouplist                    列出可安装的组

yum groupinstall (-y)    安装组包   如果是一个单词,不用加单引号,有空格要加单引号

yum remove (-y)包名    卸载包 {yum erase (-y)}

yum updeta (-y)包名     升级,若不指定文件名,则升级全部已安装包,包括升级系统

yum upgrade                    升级系统

yum provides  "/*/vim"       搜索特定包文件名

yum list |grep ‘vim’            过滤列出包名中包含vim的包名

yum info 包名                    可安装和可更新的RPM包 信息

yum deplist 包文件名         显示软件包依赖关系

拓展部分:

       yum --skip-broken         忽略依赖问题

  yum --nogpgcheck        忽略GPG验证check-update 检查可更新的包

  yum clean all                 清除全部

  yum clean packages     清除临时包文件(/var/cache/yum 下文件)

  yum clean headers       清除rpm头文件

  yum clean oldheaders  清除旧的rpm头文件

  yum deplist                   列出包的依赖

  yum list installed           已安装的包

  yum list extras              已安装且不在资源库的包

  yum info installed         已安装包的信息(-qa 参数相似)

    yum localinstall             安装本地的 RPM包

  yum reinstall[RPM包]   重新安装包

  yum repolist                 显示资源库的配置

  yum resolvedep           指定依赖

例:

[root@bogon Packages]# yum list | head -n 20    列出可安装和可更新的包,列出前20个文件

已加载插件:fastestmirror

Loading mirror speeds from cached hostfile

 * base: mirrors.163.com

 * extras: mirrors.163.com

 * updates: mirrors.cn99.com

已安装的软件包

GConf2.x86_64                               3.2.6-8.el7                @base    

GeoIP.x86_64                                1.5.0-11.el7               @anaconda

ModemManager-glib.x86_64                    1.6.0-2.el7                @base    

NetworkManager.x86_64                       1:1.8.0-11.el7_4           @updates 

NetworkManager-glib.x86_64                  1:1.8.0-11.el7_4           @updates 

NetworkManager-libnm.x86_64                 1:1.8.0-11.el7_4           @updates 

NetworkManager-libreswan.x86_64             1.2.4-2.el7                @base    

NetworkManager-libreswan-gnome.x86_64       1.2.4-2.el7                @base    

NetworkManager-team.x86_64                  1:1.8.0-11.el7_4           @updates 

NetworkManager-tui.x86_64                   1:1.8.0-11.el7_4           @updates 

NetworkManager-wifi.x86_64                  1:1.8.0-11.el7_4           @updates 

PackageKit.x86_64                           1.1.5-1.el7.centos         @base    

PackageKit-command-not-found.x86_64         1.1.5-1.el7.centos         @base    

PackageKit-glib.x86_64                      1.1.5-1.el7.centos         @base    

由于管道被破坏而退出   忽略此错误

[root@bogon Packages]# ls /etc/yum.repos.d         查看yum源配置文件,Base是仓库配置文件

CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo

CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo

[root@bogon Packages]# yum search GConf2-3.2.6-8.el7.x86_64.rpm   搜索此包,不能用包文件名

已加载插件:fastestmirror

Loading mirror speeds from cached hostfile

 * base: mirrors.163.com

 * extras: mirrors.163.com

 * updates: mirrors.cn99.com

警告:没有匹配 GConf2-3.2.6-8.el7.x86_64.rpm 的软件包

No matches found

[root@bogon Packages]# yum search GConf2     搜索此包,用包名才正确

已加载插件:fastestmirror

Loading mirror speeds from cached hostfile

 * base: mirrors.cn99.com

 * extras: mirrors.163.com

 * updates: mirrors.cn99.com

============================================ N/S matched: GConf2 =============================================

GConf2.i686 : A process-transparent configuration system

GConf2.x86_64 : A process-transparent configuration system

GConf2-devel.i686 : Headers and libraries for GConf development

GConf2-devel.x86_64 : Headers and libraries for GConf development

  名称和简介匹配 only,使用“search all”试试。

[root@bogon Packages]# yum install GConf2    安装此包

已加载插件:fastestmirror

base                                                                                   | 3.6 kB  00:00:00     

extras                                                                                 | 3.4 kB  00:00:00     

updates                                                                                | 3.4 kB  00:00:00     

updates/7/x86_64/primary_db                                                            | 6.9 MB  00:00:02     

Loading mirror speeds from cached hostfile

 * base: mirrors.cn99.com

 * extras: mirrors.tuna.tsinghua.edu.cn

 * updates: mirrors.cn99.com

软件包 GConf2-3.2.6-8.el7.x86_64 已安装并且是最新版本

无须任何处理

[root@bogon Packages]# yum grouplist  列出可安装的包组

已加载插件:fastestmirror

Loading mirror speeds from cached hostfile

 * base: mirrors.cn99.com

 * extras: mirrors.163.com

 * updates: mirrors.cn99.com

可用的环境分组:

   最小安装

   基础设施服务器

   计算节点

   文件及打印服务器

   基本网页服务器

   虚拟化主机

   带 GUI 的服务器

   GNOME 桌面

   KDE Plasma Workspaces

   开发及生成工作站

可用组:

   传统 UNIX 兼容性

   兼容性程序库

   图形管理工具

   安全性工具

   开发工具

   控制台互联网工具

   智能卡支持

   科学记数法支持

   系统管理

   系统管理工具

完成

[root@bogon Packages]# LANG=en            切换系统语言至英语

[root@bogon Packages]# yum grouplist      列出可安装的包组

Failed to set locale, defaulting to C

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

 * base: mirrors.163.com

 * extras: mirrors.163.com

 * updates: mirrors.cn99.com

Available Environment Groups:

   Minimal Install

   Compute Node

   Infrastructure Server

   File and Print Server

   Basic Web Server

   Virtualization Host

   Server with GUI

   GNOME Desktop

   KDE Plasma Workspaces

   Development and Creative Workstation

Available Groups:

   Compatibility Libraries

   Console Internet Tools

   Development Tools

   Graphical Administration Tools

   Legacy UNIX Compatibility

   Scientific Support

   Security Tools

   Smart Card Support

   System Administration Tools

   System Management

Done

[root@bogon Packages]# yum groupinstall Basic Web Server 安装名为Basic Web Server的包组

Failed to set locale, defaulting to C

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

 * base: mirrors.cn99.com

 * extras: mirrors.tuna.tsinghua.edu.cn

 * updates: mirrors.cn99.com

Warning: group Basic does not exist.

Warning: group Web does not exist.

Warning: group Server does not exist.

Maybe run: yum groups mark install (see man yum)

Error: No packages in any requested group available to install or update

[root@bogon Packages]# yum groupinstall 'Basic Web Server' 包组名字中有空格,需给包组添加单引号

Failed to set locale, defaulting to C

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

 * base: mirrors.163.com

 * extras: mirrors.163.com

 * updates: mirrors.cn99.com

Warning: Group core does not have any packages to install.

Resolving Dependencies

--> Running transaction check

---> Package abrt-cli.x86_64 0:2.1.11-48.el7.centos will be installed

--> Processing Dependency: abrt-tui for package: abrt-cli-2.1.11-48.el7.centos.x86_64

--->

~

~

省略

Transaction Summary

==============================================================================================================

Install  51 Packages (+20 Dependent packages)

Upgrade              (  2 Dependent packages)

Total download size: 25 M

Is this ok [y/d/N]: N

[root@bogon Packages]#

[root@bogon Packages]# LANG=zh_CN.UTF-8     切换系统语言至中文简体 

[root@bogon Packages]# yum remove GConf2-3.2.6-8.el7.x86_64.rpm  删除此包,不能用包文件名

已加载插件:fastestmirror

参数 GConf2-3.2.6-8.el7.x86_64.rpm 没有匹配

不删除任何软件包

[root@bogon Packages]# yum remove GConf2  删除此包,用包名才对

已加载插件:fastestmirror

正在解决依赖关系

--> 正在检查事务

---> 软件包 GConf2.x86_64.0.3.2.6-8.el7 将被 删除

--> 正在处理依赖关系 GConf2,它被软件包 gstreamer-plugins-good-0.10.31-13.el7.x86_64 需要

--> 正在处理依赖关系 GConf2,它被软件包 gstreamer-plugins-good-0.10.31-13.el7.x86_64 需要

--> 正在处理依赖关系 GConf2,它被软件包 gstreamer-plugins-good-0.10.31-13.el7.x86_64 需要

--> 正在处理依赖关系 libgconf-2.so.4()(64bit),它被软件包 gstreamer-plugins-good-0.10.31-13.el7.x86_64 需要

--> 正在处理依赖关系 libgconf-2.so.4()(64bit),它被软件包 gnome-session-3.22.3-4.el7.x86_64 需要

--> 正在处理依赖关系 libgconf-2.so.4()(64bit),它被软件包 gnome-terminal-3.22.1-2.el7.x86_64 需要

~

~

省略

[root@bogon Packages]# yum update  升级全部已安装的包

已加载插件:fastestmirror

Loading mirror speeds from cached hostfile

 * base: mirrors.163.com

 * extras: mirrors.163.com

 * updates: mirrors.cn99.com

正在解决依赖关系

--> 正在检查事务

---> 软件包 bash.x86_64.0.4.2.46-28.el7 将被 升级

---> 软件包 bash.x86_64.0.4.2.46-29.el7_4 将被 更新

---> 软件包 bind-libs-lite.x86_64.32.9.9.4-50.el7 将被 升级

---> 软件包 bind-libs-lite.x86_64.32.9.9.4-51.el7_4.2 将被 更新

~

~

省略 

[root@bogon Packages]# yum update GConf2  升级指定包

已加载插件:fastestmirror

Loading mirror speeds from cached hostfile

 * base: mirrors.163.com

 * extras: mirrors.163.com

 * updates: mirrors.cn99.com

No packages marked for update

[root@bogon Packages]# yum update

已加载插件:fastestmirror

Loading mirror speeds from cached hostfile

 * base: mirrors.163.com

 * extras: mirrors.163.com

 * updates: mirrors.cn99.com

正在解决依赖关系

--> 正在检查事务

---> 软件包 bash.x86_64.0.4.2.46-28.el7 将被 升级

---> 软件包 bash.x86_64.0.4.2.46-29.el7_4 将被 更新

---> 软件包 bind-libs-lite.x86_64.32.9.9.4-50.el7 将被 升级

~

~

省略

[root@bogon Packages]# yum provides  "/*/cat"   搜索cat文件的包名

已加载插件:fastestmirror

Loading mirror speeds from cached hostfile

 * base: mirrors.163.com

 * extras: mirrors.163.com

 * updates: mirrors.sohu.com

coreutils-8.22-18.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts

源    :base

匹配来源:

文件名    :/usr/bin/cat

文件名    :/bin/cat

irssi-0.8.15-16.el7.x86_64 : Modular text mode IRC client with Perl scripting

源    :base

匹配来源:

文件名    :/usr/share/irssi/help/cat

coreutils-8.22-18.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts

源    :@anaconda

匹配来源:

文件名    :/usr/bin/cat

文件名    :/bin/cat

[root@bogon Packages]# yum list |grep 'vim'     列出有关vim可安装和可更新的包

vim-common.x86_64                           2:7.4.160-2.el7            @base    @表示此包已安装

vim-enhanced.x86_64                         2:7.4.160-2.el7            @base    

vim-filesystem.x86_64                       2:7.4.160-2.el7            @base    

vim-minimal.x86_64                          2:7.4.160-2.el7            @anaconda表示此包所在仓库

protobuf-vim.x86_64                         2.5.0-8.el7                base     base表示此包所在仓库

vim-X11.x86_64                              2:7.4.160-2.el7            base     无@表示未安装

[root@bogon Packages]# yum deplist vim    列出vim的依赖关系,不能用包名

已加载插件:fastestmirror

Loading mirror speeds from cached hostfile

 * base: mirrors.cn99.com

 * extras: mirrors.163.com

 * updates: mirrors.cn99.com

[root@bogon Packages]# yum deplist vim-common-7.4.160-2.el7.x86_64.rpm  

列出vim的依赖关系,要用包的文件名才正确

已加载插件:fastestmirror

Loading mirror speeds from cached hostfile

 * base: mirrors.cn99.com

 * extras: mirrors.tuna.tsinghua.edu.cn

 * updates: mirrors.cn99.com

软件包:vim-common.x86_64 2:7.4.160-2.el7

   依赖:/bin/sh

   provider: bash.x86_64 4.2.46-29.el7_4

   依赖:config(vim-common) = 2:7.4.160-2.el7

   provider: vim-common.x86_64 2:7.4.160-2.el7

   依赖:libc.so.6()(64bit)

   provider: glibc.x86_64 2.17-196.el7_4.2

   依赖:libc.so.6(GLIBC_2.2.5)(64bit)

   provider: glibc.x86_64 2.17-196.el7_4.2

   依赖:libc.so.6(GLIBC_2.3)(64bit)

   provider: glibc.x86_64 2.17-196.el7_4.2

   依赖:libc.so.6(GLIBC_2.3.4)(64bit)

   provider: glibc.x86_64 2.17-196.el7_4.2

   依赖:rtld(GNU_HASH)

   provider: glibc.x86_64 2.17-196.el7_4.2

   provider: glibc.i686 2.17-196.el7_4.2

   依赖:vim-filesystem

   provider: vim-filesystem.x86_64 2:7.4.160-2.el7

[root@bogon Packages]# 

yum搭建本地仓库

mount /dev/cdrom /mnt                                             挂载镜像到/mnt目录

cp -r /etc/yum.repos.d /etc/yum.repos.d.bak             备份原来的配置文件

rm -f /etc/yum.repos.d/*                                             删除原来的配置文件

vim /etc/yum.repos.d/dvd.repo                                  新建仓库配置文件

插入如下内容:

[dvd]

name=install dvd

baseurl=file:///mnt

enable=1

gpgcheck=0  0表示不检查,1表示检查

保存退出

yum clean all                                                                清理所有缓存

yum list                                                                      查看可装可更新的包文件,仓库名已变为dvd

例:

[root@bogon Packages]# cp -r /etc/yum.repos.d /etc/yum.repos.d.bak   备份原来的配置文件

[root@bogon Packages]# rm -f /etc/yum.repos.d/*                                  删除所有原来的配置文件

[root@bogon Packages]#  vim /etc/yum.repos.d/dvd.repo                       新建dvd.repo配置文件

[dvd]                写入内容并保存退出

name=install dvd

baseurl=file:///mnt

enable=1

gpgcheck=0

~                                                                                                                                                                                                                      

~                                                                                                             

-- 插入 --                                                                                  5,11         全部

[root@bogon Packages]# yum clean all                                                        清除所有缓存

已加载插件:fastestmirror

正在清理软件源: 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

[root@bogon Packages]# 

[root@bogon Packages]# yum list |tail                                 列出后10个可装可更新的包

ypserv.x86_64                           2.31-10.el7                    dvd      新的软件源已生效

yum-langpacks.noarch                    0.4.2-7.el7                    dvd      

yum-plugin-aliases.noarch               1.1.31-42.el7                  dvd      

yum-plugin-changelog.noarch             1.1.31-42.el7                  dvd      

yum-plugin-tmprepo.noarch               1.1.31-42.el7                  dvd      

yum-plugin-verify.noarch                1.1.31-42.el7                  dvd      

yum-plugin-versionlock.noarch           1.1.31-42.el7                  dvd      

zlib-devel.x86_64                       1.2.7-17.el7                   dvd      

zsh.x86_64                              5.0.2-28.el7                   dvd      

zziplib.x86_64                          0.13.62-5.el7                  dvd      

[root@bogon Packages]#