- 浏览: 72223 次
-
文章分类
最新评论
rpm、yum及yum局域网软件源
第七章 软件包安装和卸载
7.1 安装软件包的三种方法
- rpm工具
rpm(Redhat Package Manager)RPM软件包管理器,是以一种数据库记录的方式来将我们所需要的套件安装到Linux主机的一套管理程序。rpm包是预先在Linux机器上编译好并打包好的文件,安装起来非常快捷。但是有一个缺点:安装环境必须与编译时的一致或相当;包与包之间存在着相互依赖的情况,安装或卸载包时需要先把依赖的包安装/卸载,如果依赖的包时系统所必须的,那就不能卸载这个包。
- yum工具
yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
- 源码包
Linux软件的源代码分发是指提供了该软件所有程序源代码的发布形式,需要用户自己编译成可执行的二进制码并进行安装。其优点是配置灵活,可以随意去掉或保留某些功能/模块,适应多种硬件/操作系统平台及编译环境;缺点是难度较大。
7.2-7.3 rpm工具
rpm包介绍(准备工作)
挂载系统安装盘镜像(挂载到一个空目录,此处/mnt/目录未使用,所以直接挂载到/mnt/目录下)
[root@adai002 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 1.3G 27G 5% /
devtmpfs 483M 0 483M 0% /dev
tmpfs 493M 0 493M 0% /dev/shm
tmpfs 493M 6.8M 486M 2% /run
tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/sda1 197M 109M 88M 56% /boot
tmpfs 99M 0 99M 0% /run/user/0
[root@adai002 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@adai002 mnt]# ls
CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7
EFI images Packages RPM-GPG-KEY-CentOS-Testing-7
EULA isolinux repodata TRANS.TBL
[root@adai002 Packages]# ls
yum-plugin-changelog-1.1.31-40.el7.noarch.rpm
yum-plugin-fastestmirror-1.1.31-40.el7.noarch.rpm
yum-plugin-tmprepo-1.1.31-40.el7.noarch.rpm
yum-plugin-verify-1.1.31-40.el7.noarch.rpm
yum-plugin-versionlock-1.1.31-40.el7.noarch.rpm
……
(rpm包格式:包名、版本号、发布版本号、平台)
rpm包存放在Packages该文件下!
rpm工具用法
安装rpm包
语法: rpm [options] [参数]
Options:
-i:=install,安装
-v:可视化
-h:显示安装进度
在安装一个rpm包时常用附带选项:
--force:强制安装
--nodeps:=no dependent 无依赖安装(忽视与其他包之间的依赖关系)
- eg1:安装一个rpm包(无依赖包)
[root@adai002 Packages]# rpm -ivh x86info-1.30-6.el7.x86_64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:x86info-1:1.30-6.el7 ################################# [100%]
- eg2:安装一个rpm包(有依赖包)
[root@adai002 Packages]# rpm -ivh yp-tools-2.14-3.el7.x86_64.rpm
错误:依赖检测失败:
ypbind 被 yp-tools-2.14-3.el7.x86_64 需要
## 即,两个包之间存在依赖关系
## 解决办法:
①:
[root@adai002 Packages]# rpm -iv hyp-tools-2.14-3.el7.x86_64.rpm yp-tools-2.14-3.el7.x86_64
②:
[root@adai002 Packages]# rpm -ivh --force yp-tools-2.14-3.el7.x86_64.rpm
(添加--force或--nodeps选项即可安装)
说明: 安装有依赖关系的包时,可以先安装其所依赖的包再安装目标包(同时安装存在依赖关系的包),或者使用--force或--nodeps选项进行强行安装(不建议使用)。
升级rpm包
语法: rpm [-U] [包名]
[root@adai002 Packages]# rpm -Uvh x86info-1.30-6.el7.x86_64.rpm
Preparing... ################################# [100%]
package x86info-1:1.30-6.el7.x86_64 is already installed
说明: 如果升级一个已经安装的最新版本的包,执行该命令后无任何操作。
卸载一个rpm包
语法: rpm [-e] [包名]
[root@adai002 Packages]# rpm -e x86info-1.30-6.el7.x86_64.rpm
error: package x86info-1.30-6.el7.x86_64.rpm is not installed
[root@adai002 Packages]# rpm -e x86info
注: 卸载时直接跟报名,无需跟该包的信息;当包之间存在依赖关系时也需要先卸载其依赖包。
查询rpm包
查询已安装的包
语法:
rpm [-q] [包名] 查询指定包
rpm [-qa] 查询所有已安装包
eg:
[root@adai002 Packages]# rpm -q kmod
kmod-20-9.el7.x86_64
#########################################
[root@adai002 Packages]# rpm -qa |head -5
trousers-0.3.13-1.el7.x86_64
filesystem-3.2-21.el7.x86_64
net-tools-2.0-0.17.20131004git.el7.x86_64
bind-license-9.9.4-37.el7.noarch
fxload-2002_04_11-16.el7.x86_64
查询已安装包的相关信息
语法: rpm [-qi] [包名]
i=information
[root@adai002 Packages]# rpm -qi filesystem
Name : filesystem
Version : 3.2
Release : 21.el7
Architecture: x86_64
Install Date: Mon May 22 01:19:49 2017
Group : System Environment/Base
Size : 0
……
查询某包所安装的文件
语法: rpm [-ql] [包名]
l=list
[root@adai002 Packages]# rpm -ql vim-enhanced
/etc/profile.d/vim.csh
/etc/profile.d/vim.sh
/usr/bin/rvim
/usr/bin/vim
/usr/bin/vimdiff
/usr/bin/vimtutor
查看某文件的安装包
语法: rpm [-qf] [文件绝对路径]
[root@adai002 Packages]# rpm -qf /usr/bin/vim
vim-enhanced-7.4.160-1.el7_3.1.x86_64
即,通过其绝对路径查询到其安装包,当不知道其绝对路径时,使用which命令查询。
反引号命令
>反引号的作用就是将反引号内的Linux命令先执行,然后将执行结果赋予变量。即,在命令行上把Linux命令放在反引号中,这个命令会首先被执行,然后将其结果作为为该命令行的一个参数。
eg:
[root@adai002 Packages]# rpm -qf `which cd`
bash-4.2.46-20.el7_2.x86_64
说明: 先执行“which cd”命令,其次将“which cd”的结果作为“rpm -qf”的参数执行该命令。
7.4 yum工具用法
列出所有rpm包
语法: yum list
[root@adai002 Packages]# yum list
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.btte.net
* extras: mirrors.aliyun.com
* updates: mirrors.tuna.tsinghua.edu.cn
Installed Packages
NetworkManager-libnm.x86_64 1:1.4.0-12.el7 @anaconda
NetworkManager-team.x86_64 1:1.4.0-12.el7 @anaconda
zsh.x86_64 5.0.2-25.el7_3.1 updates
zsh-html.x86_64 5.0.2-25.el7_3.1 updates
zziplib.i686 0.13.62-5.el7 base
zziplib.x86_64 0.13.62-5.el7 base
……
Exiting on Broken Pipe
注: 第一列是包名,第二列是版本号,第三列是库
说明: 库所在位置有“@”表示已安装;“updates”表示已安装,有新版本,需要升级;其他的表示可安装但还未安装的rpm包。
- yum配置文件
[root@adai002 Packages]# ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Sources.repo CentOS-fasttrack.repo
CentOS-CR.repo CentOS-Media.repo CentOS-Vault.repo
- 配置文件base的信息
[root@adai002 Packages]# cat /etc/yum.repos.d/CentOS-Base.repo
# CentOS-Base.repo
#
……
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
……
说明: 该文件下有rpm包所在库base的镜像地址信息!
搜索rpm包
语法: yum search [关键词]
[root@adai002 Packages]# yum search vim
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.btte.net
* extras: mirrors.aliyun.com
* updates: mirrors.tuna.tsinghua.edu.cn
====================================== N/S matched: vim =======================================
golang-vim.noarch : Vim plugins for Go
protobuf-vim.x86_64 : Vim syntax highlighting
vim-minimal.x86_64 : A minimal version of the VIM editor
Name and summary matches only, use "search all" for everything.
说明: 使用该命令搜索时会列出所有包含‘vim’(关键词)的信息,不精确,为了只搜索相关rpm包,可用如下方法:
[root@adai002 Packages]# yum list |grep vim
Failed to set locale, defaulting to C
vim-common.x86_64 2:7.4.160-1.el7_3.1 @updates
vim-enhanced.x86_64 2:7.4.160-1.el7_3.1 @updates
vim-filesystem.x86_64 2:7.4.160-1.el7_3.1 @updates
vim-minimal.x86_64 2:7.4.160-1.el7 @anaconda
说明: grep表示过滤。
列出rpm包组
语法: yum grouplist
[root@adai002 Packages]# yum grouplist
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
* base: mirrors.btte.net
* extras: mirrors.aliyun.com
* updates: mirrors.tuna.tsinghua.edu.cn
Available Environment Groups:
Minimal Install
Compute Node
……
Available Groups:
Compatibility Libraries
Console Internet Tools
……
Done
安装rpm包
语法: yum install [-y] [包名]
说明: 如果不加‘-y’选项,则会以与用户交互的方式安装。首先是列出需要安装的rpm包,然后会问用户是否需要安装,输入‘y’则安装,输入‘n’则不安装,这样太麻烦,所以直接加上‘-y’选项,省略与用户之间的交互。
安装rpm包组
语法: yum groupinstall [-y] [包的组名]
如果不知道组名,可用yum grouplist查看(注:进行安装时只能用英文名)。
卸载rpm包
语法: yum remove [-y] [包名]
说明: ‘-y’选项同install的用法,需要注意的是,在使用该命令进行卸载时会将目标文件所依赖的所有包同时删除,所以要谨慎使用!
升级rpm包
语法: yum update [-y] [包名]
说明: 如果不加包名,则会升级系统内所有包以及系统本身(慎用,一般只在刚安装完系统时使用)。
yum provides
该命令的作用是通过已知命令名称来搜索其rpm包名。
用法:
[root@adai002 Packages]# yum provides “/*/vim”
说明: 因为该命令位置不确定,所以进行搜索时使用‘*’(通配符)来代表其路径。
7.5 yum搭建本地仓库
>有时候Linux系统无法联网,此时无法使用网上的yum源,需要我们利用Linux系统光盘制作一个yum源。
步骤
挂载光盘——删除/etc/yum.repos.d/目录所有repo文件——创建新文件dvd.repo——清除原有缓存‘yum clean all’。
[root@adai002 ~]# cp -r /etc/yum.repos.d /etc/yum.repos.d.bak
备份原.repo文件
[root@adai002 ~]# cd /etc/yum.repos.d 切换目录
[root@adai002 yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Sources.repo CentOS-fasttrack.repo
CentOS-CR.repo CentOS-Media.repo CentOS-Vault.repo
[root@adai002 yum.repos.d]# rm -rf ./*
删除原有repo文件
[root@adai002 yum.repos.d]# vim dvd.repo
“
[dvd]
name=install dvd
baseurl=file:///mnt
enable=1
gpgcheck=0
”
此部分内容除baseurl目录根据个人实际操作更改外,其余内容固定。
[root@adai002 yum.repos.d]# yum clean all
清除系统原有缓存
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Cleaning repos: dvd
Cleaning up everything
Cleaning up list of fastest mirrors
[root@adai002 ~]# yum list
……
Available Packages 还未安装的可安装rpm包的库都变成dvd
ypserv.x86_64 2.31-8.el7 dvd
yum-langpacks.noarch 0.4.2-7.el7 dvd
yum-plugin-aliases.noarch 1.1.31-40.el7 dvd
yum-plugin-changelog.noarch 1.1.31-40.el7 dvd
yum-plugin-tmprepo.noarch 1.1.31-40.el7 dvd ……
配置完成后便可直接使用yum安装所需要的rpm包。如果不想使用本地yum源,需要删除/etc/yum.repos.d/dvd.repo文件,然后恢复原来的配置文件。
扩展1:yum保留已经安装过的包
可以设置使yum保留已经下载的rpm包,供以后升级或重新安装时使用。
修改/etc/yum/conf即可:
[main]
cachedir=/home/soft1/yumcache
keepcache=1
debuglevel=2
cachedir是放置下载的包的地方,可以修改成自己想放置的位置。
keepcache为1时表示保存已经下载的rpm包。
扩展2:yum局域网软件源搭建
搭建Apache服务器或ftp服务器
yum安装或二进制包安装.
准备RPM包
把CentOS的DVD1和DVD2.iso都下载下来,把DVD1.iso里的所有内容解压出来,放到/var/www/html/centos-6目录下,然后把DVD2.iso解压出来的Packages目录下的rpm包复制到/var/html/centos-6/Packages目录下,这样/var/html/centos-6/Packages里面就有了6000多个rpm包。
创建yum仓库
准备createrepo:yum -y install createrepo
创建repository:createrepo /var/www/html/centos-6/
创建完成之后,会在/var/www/html/centos-6/repodata下生成一些文件。
使用软件源
在其他centos机器上试试软件源能不能用。
- 首先修改机器上软件源配置文件:
# cd /etc/yum.repos.d/
# mkdir bk
# mv *.repo bk/
# cp bk/CentOS-Base.repo ./
# vi CentOS-Base.repo
- CentOS-Base.repo文件修改之后如下:
[base]
name=CentOS-$releasever - Base
baseurl=http://*.*.*.*/centos-6/
gpgcheck=1(改成0下面那行就不用设置了)
gpgkey=http:///*.*.*.*/centos-6/RPM-GPG-KEY-CentOS-6
enabled=1
#released updates
#[updates]
#name=CentOS-$releasever - Updates
#baseurl=http:///*.*.*.*/centos-6/
#gpgcheck=1
#gpgkey=http:///*.*.*.*/centos-6/RPM-GPG-KEY-CentOS-6
#enabled = 1
保存之后,就可以使用局域网的软件源了:
# yum update
转载于:https://my.oschina.net/1995blog/blog/1593426
相关推荐
在CentOS8系统中,搭建本地YUM源和局域网YUM源对于批量部署和管理服务器集群至关重要,可以显著提高软件安装和更新的速度。以下是详细步骤: 1. **前言** 在开始之前,确保已经准备了以下要素: - **Nginx服务器*...
在这种情况下,为了方便管理和维护这些服务器,我们需要在局域网内搭建一个YUM仓库,以实现内网中的软件安装。YUM(Yellowdog Updater, Modified)是Red Hat、CentOS等Linux发行版中常用的一款包管理器,它能够自动...
在内网环境中,由于无法直接访问互联网,为Linux服务器配置局域网YUM源成为了一种高效、便捷的软件管理和更新方法。本文以Rocky Linux 9.2为例,详细阐述了如何基于HTTP方式搭建这样的局域网YUM源。 首先,你需要...
5.生成 YUM 源 使用 createrepo 生成 YUM 仓库的 metadata,使得客户端可以通过 YUM 仓库安装软件包。 HTTP 传输方式 除了 FTP 传输方式外,还可以使用 HTTP 传输方式来访问 YUM 仓库。HTTP 传输方式可以通过配置...
项目安装部署过程中,有很多包需要在线下载,但又是网络是隔离的,无法连接外网。搭建一个本地yum源或者局域网yum源,用于离线安装。
Centos7 部署本地局域网 yum 源 本地 yum 源仓库是公司部署大量服务器时的必要配置,因为阿里云镜像源必须要连接外网才可以使用,占用出口带宽,且有些特殊的镜像源架设在国外,使用起来很不稳定。因此,部署本地 ...
在局域网 YUM 源中添加 rpm 包是为了满足特定的软件需求。在本地做了一个 yum 源,但是可能并不是很全。因此,需要在 yum 源中添加相关的 rpm 包。下面将详细介绍添加 rpm 包的步骤和相关知识点。 一、添加 rpm 包...
CentOS 7 配置局域网 YUM 源是指在局域网中搭建一个 YUM 源服务器,以便局域网中的 CentOS 7 主机可以从该服务器上下载和安装软件包。下面是配置局域网 YUM 源的步骤: 一、挂载系统 ISO 光驱文件 首先,需要挂载...
本资源详细介绍了在 CentOS 上搭建局域网 Yum 安装源的过程,该安装源可提供本地网络的 rpm 包下载,纯手工编写。实验环境中,我们使用 CentOS 6.3-x86_64 作为服务端和客户端操作系统。 知识点1: Linux 安装...
为了成功地使用 yum 工具更新系统和软件,需要有一个包含各种 rpm 软件包的 repository(软件仓库),提供软件仓库的服务器习惯上成为“源”服务器。 网络上有大量的源服务器,但是,由于受到网络连接速度、带宽的...
CentOS 局域网做源 YUM Lan 本文将详细介绍如何在 CentOS 局域网中搭建一个本地 YUM 源,使用 FTP 或 HTTP 服务来共享光盘的源文件,并配置客户端系统以便从该源安装软件包。 一、搭建 FTP 或 HTTP 服务 在 ...
- 定义:本地yum源是在本地计算机或局域网内搭建的软件包仓库,用于替代远程网络上的yum仓库。 - 优势:适用于网络不稳定或无互联网连接的环境;提高软件安装速度;减少对外部网络的依赖。 2. **工具/原料** - ...
在CentOS 7系统中创建一个HTTP服务器用作yum源,可以极大地提高局域网内安装和更新软件包的效率,尤其是当外部网络连接不稳定或无法访问互联网时。以下是根据提供的文件内容,详细解读该过程中的关键知识点: 1. ...
这个问题的解决方案可以分为两种:使用光盘直接挂载到本地的方式和使用Nginx或Apache等Web Server在局域网发布本地yum源的方式。 使用光盘直接挂载到本地 使用光盘直接挂载到本地的方式速度快,操作简单。首先,...
### 局域网搭建YUM服务器详解 #### 一、引言 在现代企业环境中,为了提高系统的稳定性与安全性,通常需要对系统进行定期更新。然而,在某些情况下,由于网络限制或其他因素,直接通过互联网进行软件包更新可能不切...
有了局域网中的 YUM 源服务器,即便在 Internet 连接中断的情况下,也不会影响其他 YUM 客户端的软件升级和安装。 如何构建本地 YUM 源服务器? 可以通过从 DVD 光盘、YUM 客户端缓存目录(/var/cache/yum/)以及 ...
本文将详细介绍如何在Linux系统中构建这样一个本地YUM仓库,并实现通过网络分享给局域网内的其他服务器使用。 #### 二、准备工作 1. **硬件与软件准备**: - 一台运行CentOS 6.7的服务器。 - CentOS-6.7-x86_64-...
要成功使用 YUM 工具安装更新软件或系统,就需要有一个包含各种 rpm 软件包的 repository(软件仓库),这个软件仓库习惯称为 yum 源。网络上有大量的 yum 源,但由于受到网络环境的限制,导致软件安装耗时过长甚至...
因此,构建本地YUM源服务器对于在局域网环境中的高效软件管理和更新至关重要。 构建本地YUM源服务器的优点在于提供高速、稳定的网络连接,尤其在大量服务器需要升级或安装软件时,即使在没有Internet连接的情况下也...
创建局域网内的离线 YUM 仓库 在这个资源中,我们将学习如何创建一个离线的 YUM 仓库,并将其共享到局域网中,以便于其他 Linux 服务器从中获取系统更新。这个方法可以节约数据量,提高传输速度,并且可以在没有...