首页 文章 精选 留言 我的

精选列表

搜索[前端设计],共10000篇文章
优秀的个人博客,低调大师

软件包管理之前端管理工具yum

一、前言 RPM安装软件有一个很繁琐的问题,那就是包与包之间的依赖关系,如果想正常安装和使用软件程序,就必须根据要求一步一步的解决软件之间的依赖关系。那么如果程序使用的包很多,将会很消耗使用人的时间和精力。那么有没有办法解决这一问题呢? 在RPM中我们介绍了RPM软件会记录软件之间的安装信息,其中也包括了软件之间的依赖属性。那么如果我们在安装前就分析这个列表,那么在安装时就能根据软件之间的关系将所需的软件一次性安装起来,这样就能解决这一问题,这就是 YUM 的机制。 二、yum的介绍 yum(Yellow dog Updater Modified)是CentOS中属于RPM前段软件包管理器,能从指定的服务器中下载RPM包,并自动分析和处理RPM包之间的依赖关系,最后将依次所依赖的软件包都安装了,而无需繁琐的一个一个安装。 三、yum repository:yum仓库 yum仓库的组成部分 3.1、数据 包含所有的软件包文件 3.2、元数据 指的是数据文件:包括每个包的包名、版本信息、各包所包含的文件列表、包与包之间的依赖关系、包的分组信息 小扩展:元数据是怎么来的呢? 使用createrepo工具,能够简洁的快速的将我们所指定的存放大量RPM包的目录,里面所有的RPM包信息都读出来,分析他的依赖关系并生成元数据。所以createrepo可以理解为它是制作yum元数据的工具。 在光盘里其实也有这个元数据,路径在光盘中的 [root@www mnt]# cd repodata/ 里,然后是以 sqlite文件后缀 备注:centos5 是以 xml 后缀,centos6、7是以sqlite数据库的方式存储的 四、yum的配置文件介绍 yum的配置文件有2个: 主配置文件 + 仓库配置文件 4.1、主配置文件路径 /etc/yum.conf [main] cachedir=/var/cache/yum/$basearch/$releasever #下载RPM包的缓存目录 keepcache=0 #RPM缓存的程序包安装完成后是否保存,0表示不保存,1表示保存 buglevel=2 #调试级别取值范围0-10,默认值为2 logfile=/var/log/yum.log #yum相关日志存放路径 exactarch=1 #是否要平台完全匹配才能安装 obsoletes=1 #需不需要检查已过期的仓库 gpgcheck=1 #是否检查包的完整性和合法性 plugins=1 #是否允许支持yum的插件功能,0表示不允许,1表示允许,建议允许,一般会用yum-fastestmirror这个插件 installonly_limit=5 #允许保留多少个内核包 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release #指定一个软件包,yum会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm包 4.2、仓库配置文件路径 /etc/yum.repos.d/*.repo 仓库文件可以有多个,而且一个或几个相关的仓库的配置信息也可保存为一个文件,并且所以的仓库文件名都以 .repo结尾。 [REPOID]#容器名字,必须是唯一的 name=#somenameforthisrepository仓库的名字,仅作一个标识 baseurl=#指定真正仓库所在的路径,可以指多个仓库 #例如:baseurl=file:///media/cdrom #ftp://172.168.1.1/path#备注第二行不能顶格写,否则会出错 mirrorlist=#列出容器可以使用站点,如果不想使用,可以再前面加#注释 enabled={0|1}#指是否启用这个仓库,0表示不启用,1表示启用 gpgcheck={0|1}#是否要检测软件包的合法性,0表示不检测,1表示不检查 gpgkey=#软件包的公钥文件所在路径,例如:gpgkey=file:///media/cdrom/GPG-RPM-KEY-centos-6 cost= #仓库优先级,比如一个软件包在多个仓库都有,那应该选择哪个安装呢?就是根据这个优先级,默认是100, 数字越小表示越优先使用 备注:默认各仓库的用法: base库:通常为系统发行版所提供的程序包(就是光盘) updates库:存放更新包 extra库:存放额外包 epel库:epel库文件 库本身有优先级的,但是仅是在客户端有,服务器端是没有优先级的 小贴士:yum可支持多个协议,包括 ftp、http、nfs和本地文件共享服务 所以仓库配置文件中的 baseurl 一项可以有多个写法,下面是各写法的格式 1)ftp 格式:ftp://server/path/to/repository 2)http 格式:http://server/path/to/repository 3)nfs 格式:nfs://server/nfs_path 4)本地文件共享服务 格式:file:///path/to/repository 五、yum安装步骤 六、yum命令的使用 6.1、yum查询功能 yum[option][需要查询的信息][参数] -y:默认yum需要是交互模式,-y表示自动提供yes响应 -q:静默模式 search:搜索某个软件名或关键字 list:列出所有yum所管理的软件包和名称 info:同上,也类似rpm-qai provides:查找该命令是由软件安装生成的,类似rpm-df的功能 repolist:列出所有可用的repo 例如: [root@localhost~]#yumprovidesbash [root@localhost~]#yumrepolist 例如: [root@localhostyum.repos.d]#yuminstallzlib-static 6.2、安装、升级、降级、卸载功能 yum[option][需要查询的信息][参数] install:后面接需要安装的软件 reinstall:后面接需要重新安装的软件 update:后面接需要升级到的软件 check-update:检查可用的升级包 downgrade:后面接需要降级到的版本 remove:卸载软件 erase:功能同上,卸载 --disablerepo=repoid临时禁用此处指定的repo --enablerepo=repoid临时启动此处启用的repo --noplugins:禁用所有插件 例如: [root@localhostyum.repos.d]#yuminstallzlib-static 6.3、和软件组相关的功能 yum[组功能][软件组] grouplist:列出所有可使用的组列表 groupinfo:后面接groupname,可用了解该group内含所有组的名称 groupinstall:安装整组的软件 groupremove:删除某个组的软件 例如: [root@localhostyum.repos.d]#yumgrouplist #所有的包组未一一列举,若想安装某组可使用groupinstall直接安装 InstalledGroups:#已经安装的软件组 AdditionalDevelopment Base Consoleinternettools Developmenttools InstalledLanguageGroups:#已经安装的语言组 ArabicSupport[ar] ArmenianSupport[hy] GeorgianSupport[ka] AvailableGroups:#有效软件组包文件 BackupClient BackupServer AvailableLanguageGroups:#有效的语言组包文件 AfrikaansSupport[af] AlbanianSupport[sq] 6.4、清理缓存 yumclean{all|package|headers} all:将所有的数据删除,包括元数据和软件文件 package:将所有已下载的软件文件删除 headers:删除所有下载的元数据文件 例如: [root@localhostyum.repos.d]#yumcleanall#这样将会清除所有的已下载的元数据和软件文件 Loadedplugins:fastestmirror,security Cleaningrepos:baseextrasupdates CleaningupEverything Cleaninguplistoffastestmirrors 6.5、yum历史命令 yumhistory[info|list|packages-list|packages-info|summary|addon-info|redo|undo] history:列出历史事务 redo:重新执行事务 undo:撤销事务 例如: yumhistoryinfo15//查看yumhistoryid为15的操作 yumhistoryundo15//撤销yumhistoryid为15的操作 日志文件:/var/log/yum.log 6.6、yum内置变量 $releaserver:代表系统的版本,对Yum而言指的是redhat-releaser版本,指向发行版的主版本号;只替换为主版本号,如RedHat 6.5 ,则替换为6 $basearch:系统基本架构,如果是i686,i586等基本架构就为i386 $arch:系统架构 比如我现在的系统是CentOS6.5,系统架构是x86_64,则 baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/会自动替换为 baseurl=http://mirrors.163.com/centos/6/os/x86_64 六、如何自建yum仓库 6.1、引言: 虽然系统自带的仓库已经很常用,只要连接到互联网我们就能很容易有获取到互联网的yum仓库。但是如果是在企业内网,企业内部不允许访问互联网,又或者如果企业服务器众多,如果都要从互联网去获取yum仓库,那将很占用带宽。基于这种情况,我们就需要自己在企业内部创建yum仓库。 6.2、自建仓库需要使用的命令介绍 createrepo(create repo):创建仓库,在自建仓库时,使用命令createrepo会自动帮我们生成repodata文件作为软件的仓库,而其目录下有四个必要文件:filelists.xml.gz,other.xml.gz,primary.xml.gz和repomd.xml,其中最重要的是repomd.xml文件。一般出现的找不到repodata目录或文件的错误的原因通常有三个:一是路径问题;二是没有生成repodata目录;三是*.repo配置文件冲突(这个需要特意注意)。 小贴士:createrepo命令默认是没有安装,所以我们需要提前安装,createrepo的安装包为“createrepo-0.9.9-17.el6.noarch.rpm”,可以使用RPM或yum先将此程序包安装。 安装方法: #yum-yinstallcreaterepo或rpm-ivhcreaterepo-0.9.9-17.el6.noarch.rpm(路径一定要写对) 6.3、自建yum仓库有2种方法 1)、基于关盘镜像创建yum仓库 2)、根据服务自建提供yum仓库的服务器(ftp、http、nfs) 6.4、基于关盘镜像创建yum仓库 6.4.1、先将光盘挂载至/mnt目录下 mount/dev/cdrom/mnt 6.4.2、配置yum仓库文件 [root@wwwyum.repos.d]#vim/etc/yum.repos.d/local-media.repo#如果local-media.repo不存在,请直接创建 [Meida-repo] name=ThisisLocalmediarepo baseurl=#指向光盘镜像路径 enabled=1#是否启动该仓库 gpgcheck=0#是否检查包完整性 [root@wwwyum.repos.d]#yumcleanall#清除所有的包缓存和元数据 [root@wwwyum.repos.d]#yumlist#列出所有的仓库和程序包 6.5、根据服务自建提供yum仓库的服务器(这里以http服务为例) 6.5.1、首先安装http服务 yum-yinstallhttpd或rpm-ivhhttpd 6.5.2、关闭Linux防火墙和Selinux #防火墙和Selinux可能会影响用户访问HTTP,所以这里需要将其禁用 [root@wwwyum.repos.d]#serviceiptablesstop#关闭防火墙服务 [root@localhost~]#chkconfigiptablesoff#关闭防火墙自动启动 [root@wwwyum.repos.d]#getenforce#查看Selinux状态Enforcing表示启用Permissive表示不启用 Enforcing [root@wwwyum.repos.d]#setenforce0#关闭Selinux0表示关闭1表示开启 [root@wwwyum.repos.d]#getenforce Permissive [root@localhost~]#vim/etc/selinux/config#关闭Selinux开机启动,编辑confg文件,将其中SELINUX字段改为如下设置 SELINUX=disabled 6.5.3、启动httpd服务和开机自动服务 [root@wwwyum.repos.d]#servicehttpdstart#开启httpd服务 [root@wwwyum.repos.d]#chkconfigon#设置httpd服务开机自动启动 [root@localhost~]#netstat-tunlp|grephttp#查看http服务是否已启用 tcp00:::80:::*LISTEN1532/httpd 6.5.4、编辑httpd的文档目录 #httpd默认的目录文档路径为/var/www/html [root@localhosthtml]#mkdir/var/www/html/rpm-repo#创建仓库路径 [root@localhostrpm-repo]#cp-a/mnt/Packages/xcb*/var/www/html/rpm-repo/#拷贝RPM程序包为测试使用 6.5.5、使用createrepo配置yum仓库 [root@localhostrpm-repo]#createrepo/var/www/html/rpm-repo/ 6.5.6、验证和查看http仓库的文件 6.5.7、配置和验证yum仓库 [root@localhostyum.repos.d]#vim/etc/yum.repos.d/local.repo#编辑yum仓库文件,让仓库路径指向http的yum仓库 [http-repo] name=httpyumrepo baseurl=http://192.168.80.150/rpm-repo enabled=1 gpgcheck=0 [root@localhost~]#yumlist 补充:yum只下载rpm包不安装的方法 Yumdownloader 另外一个下载RPM包的方法就是通过一个专门的包下载工具yumdownloader。 这个工具是yum工具包(包含了用来进行yum包管理的帮助工具套件)的子集。 #yuminstallyum-utils 下载一个RPM包: #yumdownloader<package-name> --destdir=/PATH/TO/DIRECTORY:制定下载目录 --resolve:依赖包也会被下载 实例: [root@bash~]#yumdownloadertree Loadedplugins:fastestmirror,langpacks file:///root/test/repodata/repomd.xml:[Errno14]curl#37-"Couldn'topenfile/root/test/repodata/repomd.xml" Tryingothermirror. Loadingmirrorspeedsfromcachedhostfile tree-1.6.0-10.el7.x86_64.rpm [root@bash~]#lstree* tree-1.6.0-10.el7.x86_64.rpm [root@bash~]#yumdownloadersubversion--destdir=/tmp--resolve 下载的包会被保存在当前目录中。你需要使用root权限,因为yumdownloader会在下载过程中更新包索引文件。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册