2. Linux 软件管理 002

这篇具有很好参考价值的文章主要介绍了2. Linux 软件管理 002。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

3)搭建企业内部 Yum 仓库

利用 HTTPD 搭建 企业内部私有仓库。

[ 虚拟机演示:挂载一个新的 CD 光盘镜像源 ]

1)CD 光盘 镜像源

2. Linux 软件管理 002

// `scandisk` 扫描新加的磁盘

echo '- - -' > /sys/class/scsi_host/host0/scan

echo '- - -' > /sys/class/scsi_host/host1/scan

echo '- - -' > /sys/class/scsi_host/host2/scan

2. Linux 软件管理 002

 文章来源地址https://www.toymoban.com/news/detail-747411.html

2)部署 HTTPD

1. 安装 HTTPD

yum install httpd -y

 

2. 启用 并 开机自启

systemctl start httpd

systemctl enable httpd

 

3. 关闭防火墙 and SELinux

systemctl stop firewalld

systemctl disable firewalld

sed -i 's/enforcing/disabled/g' /etc/selinux/config

setenforce 0

2. Linux 软件管理 002

 

3)配置站点目录

1. 切换至 HTTPD 默认站点目录

cd /var/www/html

 

2. 创建子目录

mkdir centos/{7,8} -p

 

3. 验证

// `有安装` tree, 则不执行

// `无安装` tree, 则执行安

rpm -q tree || yum install tree -y

tree centos/

2. Linux 软件管理 002

 

4)挂载光盘

mount /dev/sr1 /var/www/html/centos/7

2. Linux 软件管理 002

 

5)验证仓库

http://192.168.18.141/centos/7/

2. Linux 软件管理 002

 

 

6)客户端编写 repo 配置文件

vim 1.repo

 

[Base]

name=CentOS7

baseurl=http://192.168.18.141/centos/$releasever

gpgcheck=0

enabled=1

yum repolist

yum list vsftpd

yum install vsftpd -y

2. Linux 软件管理 002

完成

 

// `scandisk` 扫描新增的磁盘

echo '- - -' > /sys/class/scsi_host/host0/scan

echo '- - -' > /sys/class/scsi_host/host1/scan

echo '- - -' > /sys/class/scsi_host/host2/scan

2. Linux 软件管理 002

 

// 将该 CD 光盘镜像挂载至 centos/8 站点目录

mount /dev/sr0 /var/www/html/centos/8/

2. Linux 软件管理 002

 

7)createrepo 命令

用于为 YUM 仓库 创建必要的元数据目录(repodata),以便 YUM 工具能够正确地查找和安装软件包。

// 举例

cd /var/www/html/centos

 

// 自建一个放置独立软件包的 repo 目录

mkdir testrepo && cd testrepo

 

// 上传独立软件包

2. Linux 软件管理 002

 

在这种情况下,即使我们编写了仓库配置文件,将其指向了特定的独立软件包存放目录。

但由于 我们没有为该目录生成必要的 repodata 元数据,导致无法成功索引和管理软件包数据。

// `编写仓库配置文件`

vim 1.repo

[Base]

name=CentOS7

baseurl=http://192.168.18.141/centos/$releasever

gpgcheck=0

enabled=1

 

[testrepo]

name=CentOS7

baseurl=http://192.168.18.141/centos/testrepo

gpgcheck=0

enabled=1

 

// 验

yum repolist

2. Linux 软件管理 002

 

给软件包目录生成 repodata 元数据目录

1. 切换至软件包目录

cd /var/www/html/centos/testrepo

 

2. "创建 repodata 元数据目录"

createrepo .

 

3. 验证 repodata 目录是否成功生成

ls -l

 

4. 给软件包目录`生成 repodata 元数据目录后`

// `成功索引到软件包`

yum repolist

2. Linux 软件管理 002

 

8)配置 epel 源

1. 同步网络 epel 源

// 编写 repo 配置文件

// `同步网络 epel 源`

vim epel.repo

[epel]

name=epel

baseurl=https://mirrors.cloud.tencent.com/epel/$releasever/$basearch

https://repo.huaweicloud.com/epel/$releasever/$basearch

https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/$basearch

gpgcheck=0

enabled=1

 

// 验证

yum repolist

2. Linux 软件管理 002

 

2. 下载相关仓库和元数据

// 下载相关仓库和元数据

// dnf reposync --repoid=epel --download-metadata -p /var/www/html // CentOS 8

 

// `基于 rsync 同步 epel 源`

rsync -avrt rsync://rsync.mirrors.ustc.edu.cn/epel/ /var/www/html/centos/epel // CentOS 7

 

// `下载相关 KEY 文件`

wget -P /var/www/html/centos/epel/ https://mirrors.cloud.tencent.com/epel/RPM-GPG-KEY-EPEL-8

2. Linux 软件管理 002

 

9)CentOS 7 小细节

< Linux 小技巧 >

Yum( Yellow dog Updater, Modified)是一款广泛用于 RedHat 和 CentOS 等系统的 RPM 软件包管理工具。

它建立在 RPM 包管理系统之上,具备自动下载和安装 RPM 包的能力。其中一个主要优点是它能够自动解决依赖关系,让我们不再需要手动逐个的下载和安装依赖的软件包,大大简化了软件包管理的过程。

并且 Yum 提供了一系列简洁而易记的命令,用于查找、安装、卸载单个软件包、或一组软件包,甚至是系统上的所有软件包。

当我们执行 yum install httpd 时,您会注意到 YUM 工具 不仅会安装指定的 httpd 软件包,还会自动安装所依赖的其他软件包。

这是因为许多软件包在运行时需要一些额外的组件或库来支持其功能,这些被称为 依赖关系。

然而,当我们执行 yum remove httpd 时,情况有所不同。YUM 工具会默认仅卸载指定的软件包 httpd,而不会自动删除其他可能仍然被其他软件包使用的共享依赖项。

这是为了防止意外地卸载其他软件包所依赖的组件,导致系统不稳定。

这种行为的目的是为了保持系统的完整性和稳定性。如果您确定某些共享依赖项不再被其他软件包使用,可以使用 yum autoremove 命令来自动删除不再需要的依赖项。

总之,YUM 在安装和卸载软件包时考虑了依赖关系,以确保系统的安全性和稳定性。

在卸载软件包时,它会默认保留可能被其他软件包使用的共享依赖项,除非您明确指定要删除不再需要的依赖项。

// 安装 httpd 软件包

yum install httpd

 

// 卸载 httpd 软件包

yum remove httpd

2. Linux 软件管理 002

2. Linux 软件管理 002

 

[ 那我们如何 干净卸载 所安装软件的所有软件包 ]

// 显示系统中`已经执行过的软件包操作历史记录`

yum history

 

// 显示`历史记录标识号为 3 `的操作的详细信息

yum history info 3

2. Linux 软件管理 002

 

撤销历史操作

// `撤消历史记录标识号为 3 的操作`

// 操作号为 3 的操作是一个安装、升级或删除软件包的操作, 运行此命令将会尝试将系统恢复到执行该操作之前的状态。

yum history undo 3

2. Linux 软件管理 002

 

[ CentOS 8 系统,安装多少包即会卸载多少包。]

2. Linux 软件管理 002

 

4)软件包组

// 列出系统中`可用的软件包组`

yum group list

 

// 安装一个名为 "Server with GUI" 的软件包组

// 这个软件包组通常包含用于图形用户界面(GUI)的软件和工具, 适用于服务器系统需要有图形界面的情况。

yum group install "Server with GUI"

2. Linux 软件管理 002

// 安装

yum group install "Server with GUI"

 

5)仓库缓存

清除目录 /var/cache/yum/ 缓存

// CentOS 7 `查看仓库缓存路径`

cat /etc/yum.conf

2. Linux 软件管理 002

 

du -sh /var/cache/yum/x86_64/7/查看缓存目录数据大小

yum clean all 清理 yum 的缓存。它会删除所有下载的 RPM 软件包和相关的元数据,以释放磁盘空间。

yum makecache 用于重新生成 yum 的元数据缓存。

du -sh /var/cache/yum/x86_64/7/

 

yum clean all

 

du -sh /var/cache/yum/x86_64/7/

 

yum makecache

 

du -sh /var/cache/yum/x86_64/7/

2. Linux 软件管理 002

 

或者使用 rm -rf 删除缓存目录下的数据也可以。

rm -rf /var/cache/yum/x86_64/7/*

2. Linux 软件管理 002

 

6)命令总结

// 显示 `仓库列表`

yum repolist [all|enabled|disabled]

 

// 显示 `软件包`

yum list httpd # 指定软件包

yum list all # 所有软件包

yum list installed # 已安装软件包

 

// `安装` 程序包

yum install epel-release # 安装epel源

 

// `卸载` 软件包

yum remove epel-release # 卸载epel源

 

// `查询`

yum info xxx

yum search xxx

yum deplist xxx

yum provides xxx

 

// `升级`

yum check-update

yum update xxx

 

// `缓存`

yum clean

yum makecache

 

// `历史记录`

/var/log/yum.log // 日志

yum history

yum history list

yum history info

yum history undo

 

`软件包组`

yum grouplist

yum groupinstall

yum groupupdate

yum groupremove

yum groupinfo

 

举例 1

// 挂载光盘镜像

mount /dev/sr0 /mnt

 

// 基于 rpm 安装软件包

rpm -ivh /mnt/Packages/httpd-2.4.6-95.el7.centos.x86_64.rpm

报错,缺依赖包。

2. Linux 软件管理 002

 

查询依赖来源于哪个软件包

yum provides libapr-1.so.0

2. Linux 软件管理 002

 

举例 2

文件要写全路径,而不只是文件名,否则可能无法查询到

// `环境准备`

yum install vsftpd

 

// `查询` /etc/vsftpd/vsftpd.conf 属于哪个软件包

rpm -qf /etc/vsftpd/vsftpd.conf

 

// `卸载`软件包

yum remove vsftpd-3.0.2-29.el7_9.x86_64

 

// 要写`文件全路径`才能查询到

yum provides vsftpd.conf // 查询`不到`

yum provides /etc/vsftpd/vsftpd.conf // 查询`到了`

 

// 或`通配查询`

// 尝试查找所有包含 vsftpd.conf 文件的软件包。

yum provides */vsftpd.conf

2. Linux 软件管理 002

2. Linux 软件管理 002

 

举例 3

使用 yum 和 dnf 命令失败最主要的原因

  1. yum 的配置文件格式或路径错误

解决方法:检查 /etc/yum.repos.d/*.repo 文件格式

  1. yum cache

解决方法:yum clean all

  1. 网络不通

解决方法:网卡配置

 

7)内核升级

范例 1

利用 elrepo 源在 CentOS 7 安装新版内核。

2. Linux 软件管理 002

1. 安装 ELrepo 的仓库配置文件

yum install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm

 

2. 验证是否已生成 elrepo 配置文件

ll /etc/yum.repos.d/

 

3. 验证仓库

yum repolist

yum repolist all

2. Linux 软件管理 002

2. Linux 软件管理 002

 

// 启用

vim /etc/yum.repos.d/elrepo.repo

enable=1

 

// 验证

yum repolist all | grep -i kernel

2. Linux 软件管理 002

//

yum list *kernel*

 

// `安装新内核`

yum install kernel-lt.x86_64

2. Linux 软件管理 002

2. Linux 软件管理 002

 

reboot

内核选择菜单

2. Linux 软件管理 002

 

// 查看`系统内核版本`

uname -r

2. Linux 软件管理 002

 

如果后续发现新内核与部分软件不兼容如何卸载新内核。

// 切换回旧内核

uname -r

 

// 卸载新内核

1. yum remove

2. yum history undo 17

2. Linux 软件管理 002

[ 大家有无想过,上述情况我们是在有互联网环境的主机上完成内核升级的,并且我们无法指定内核版本,我们大多生产环境是没有互联网的,并且需要安装指定内核版本等情况,这个时候我们就会使用到更为常见的升级内核方式编译安装指定内核版本。]

 

范例 2

< Linux 小技巧 >

[ 当然,其实我们还有一种方式,可以在非互联网环境下安装好某个软件。]

[ 首先,我们在一台有网络的机器将该软件需要的所有软件包下载至某个路径。]

[ 而后,将该目录拷贝至无网络的主机,执行 rpm -ivh ./*.rpm 安装所有软件包即可 ]

// 这个命令的目的是下载名为 kernel-lt.x86_64 的软件包文件到指定的目录 /data/kernel

// 不会进行实际的安装。这对于提前获取软件包以备后续离线安装非常有用。

yum install kernel-lt.x86_64 --downloadonly --downloaddir=/data/kernel

 

// 安装所有软件包

rpm -ivh /data/kernel/*

 

// 重启验证

reboot

2. Linux 软件管理 002

 

举例

仅下载相关的依赖包,而不安装。< 拷贝至无网络主机安装 >

// 这个命令的目的是下载名为 nginx 的软件包文件到指定的目录 /data/nginx

// 不会进行实际的安装。这对于提前获取软件包以备后续离线安装非常有用。

yum install nginx --downloadonly --downloaddir=/data/nginx

 

// 安装所有软件包

ll /data/nginx

rpm -ivh /data/nginx/*

 

// 验证

systemctl start nginx

2. Linux 软件管理 002

 

到了这里,关于2. Linux 软件管理 002的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux的开胃小菜】常用的RPM软件包与YUM仓库包管理器使用

    systemd与System V init的区别以及作用: System V init运行级别 systemd目标名称 systemd目标作用 0 poweroff.target 关机 1 rescue.target 单用户模式 2 multi-user.target 多用户的文本界面 3 multi-user.target 多用户的文本界面 4 multi-user.target 多用户的文本界面 5 graphical.target 多用户的图形界面 6 reboot.t

    2024年02月13日
    浏览(62)
  • 一个适用于搭建企业内部培训平台的开源系统

    大家好,我是 Java陈序员 。 问君能有几多愁,唯有开源项目解千愁! 最近领导给了个任务, 搭建一个企业内部培训平台 !好不容易刚完成上个任务,又来一个活,这不又得加班了! 还好,之前逛 GitHub 的时候,发现了一个项目,完美适用!马上就部署给领导看,领导直夸这

    2024年02月05日
    浏览(67)
  • Docker(四)搭建harbor企业级仓库

    虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境的Registry也是非常必要的。 所以Harbor孕育而生,Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支

    2024年02月04日
    浏览(71)
  • CentOS7搭建Harbor企业级Docker仓库

    前言 Harbor是一个企业级的Docker Registry管理项目,主要用于存储和分发Docker镜像。它提供了一些企业必需的功能特性,如安全、标识和管理等,以扩展开源Docker Distribution。 作为企业级私有Registry服务器,Harbor提供了更好的性能和安全,并提升了用户使用Registry构建和运行环境传

    2024年01月22日
    浏览(48)
  • 【云原生-Harbor】企业级搭建镜像仓库Harbor最佳教程

    Harbor 是由 VMware 公司中国团队为企业用户设计的 Registry server 开源项目,包括了权限管理 (RBAC)、LDAP、审计、管理界面、自我注册、HA 等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。 官网:https://goharbor.io/ 开源地址:https://github.com/goharbor/har

    2024年02月02日
    浏览(75)
  • 麒麟KYLINIOS软件仓库搭建02-软件仓库添加新的软件包

    原文链接:麒麟KYLINIOS软件仓库搭建02-软件仓库添加新的软件包 hello,大家好啊,今天给大家带来麒麟桌面操作系统软件仓库搭建的文章02-软件仓库添加新的软件包,本篇文章主要给大家介绍了如何在麒麟桌面操作系统2203-x86版本上,为搭建好内网软件仓库源中添加新的类型软

    2024年02月05日
    浏览(68)
  • 麒麟KYLINIOS软件仓库搭建01-新创建软件仓库服务器

    原文链接:麒麟KYLINIOS软件仓库搭建01-新创建软件仓库服务器 hello,大家好啊,今天给大家带来麒麟桌面操作系统软件仓库搭建的文章01-新创建软件仓库服务器,本篇文章主要给大家介绍了如何在麒麟桌面操作系统2203-x86版本上搭建内网软件仓库源,本系列共有三个内容,欢迎

    2024年02月04日
    浏览(41)
  • [架构之路-243]:目标系统 - 纵向分层 - 架构是表面轮廓、内部骨架、未来蓝图,企业组织架构、信息系统架构、软件架构、应用程序就架构

    目录 一、什么是架构 1.1 架构是表面轮廓 1.2 架构是内部骨架 1.3 架构是蓝图,是愿景 1.4 架构是数据流、控制流、管理流、同步流 1.5 数据、控制、同步、管理的比较 二、架构的层级 2.1 企业组织架构 2.2 企业系统架构 2.2 信息系统架构 2.3 软件架构 2.4 应用程序的架构 三、软

    2024年02月08日
    浏览(57)
  • 企业仓库管理系统的设计与实现(ASP.NET,SQL)

    开发环境:Microsoft Visual Studio 数据库:Microsoft SQL Server 程序语言:asp.NET(C#)语言 本系统的开发使各大公司所的项目管理更加方便快捷,同时也促使项目的管理变的更加系统化、有序化。系统界面较友好,易于操作。 本仓库管理系统分为管理员和员工两部分,具体功能如下所述

    2024年02月07日
    浏览(40)
  • 2023系统分析师---论软件项目管理技术及应用(内部信息)

    试题:“论软件项目管理”技术及其应用。 软件项目管理是为了使软件项目能够按照预定的成本、进度和质量顺利完成,对人员、产品、过程和项目进行分析和管理的活动。软件项目管理的根本目的是为了让软件项目,尤其是大型软件项目的整个生命周期都能在管理者的控制

    2024年02月06日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包