Linux软件包安装与卸载,搭建本地仓库的详细教程
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]#
上一篇: C++11的新特性介绍