三种方法部署YUM软件仓库

通过源码编译的方式安装程序在灵活性、可定制性方面具有无可比拟的优势,但也给管理员带来了额外的维护开销,并且在大规模的服务器群应用时存在一定的局限性。而传统的USB光驱、移动硬盘等安装方式显然已经力所难及。借助于YUM软件仓库,可以完成安装、卸载、升级rpm软件包等任务,能够自动查找并解决rpm包之间的依赖关系,使管理员在维护大量的Linux服务器时更加轻松自如。特别是在拥有大量Linux主机的本地网络中,构建一台源服务器可以大大缓解软件安装、升级等对Internet的依赖



部署YUM软件仓库

要成功使用YUM机制来更新系统和软件,需要有一个包含各种rpm安装包文件的软件仓库,提供软件仓库的服务器称为源服务器。在客户机中只要正确指定软件仓库的地址等信息,就可以通过对应的源服务器来安装、更新软件了

1. 准备网络安装源(服务器端)

YUM软件仓库通常借助于HTTP或FTP协议进行发布,这样可以面向网络中所有的客户机提供软件源服务。为了便于客户机查询软件包、获取依赖关系等信息,在软件仓库中需要提供仓库数据(Repodata),其中收集了目录下的所有rpm包的头部信息


2. 配置软件仓库位置(客户机端)

在客户机上需要制定至少一个可用的软件仓库,然后才能使用yum工具进行下载、安装软件包



一、将本地文件夹配置为YUM软件仓库

这种方式配置的YUM仓库仅限于在本机使用

[root@localhost~]#mount/dev/cdrom/media///挂载系统光盘
mount:blockdevice/dev/sr0iswrite-protected,mountingread-only
[root@localhost~]#mkdir/home/localrpm//创建本地软件仓库目录
[root@localhost~]#cp-rf/media/*/home/localrpm//将系统光盘内数据复制到目录下,包含repodata数据文件

[root@localhost~]#vim/etc/yum.repos.d/local.repo//编写yum配置文件
[local]//仓库类别
name=rhel//描述、说明
baseurl=file:///home/localrpm//URL访问路径
enabled=1//1表示启用此仓库,0表示不启用;默认启用,可省略
gpgcheck=0//验证软件包的签名,0表示不验证;若无此要求,可省略



二、用FTP部署YUM软件仓库

(1)服务器端

在REHL系统的安装光盘中,已经针对软件目录Packages建立好了repodata数据。对于用户收集的非REHL系统光盘自带的其他软件包,还需要使用createrepo工具手动创建repodata文件

[root@localhost~]#mount/dev/cdrom/media///挂载系统光盘
mount:blockdevice/dev/sr0iswrite-protected,mountingread-only
[root@localhost~]#yum-yinstallvsftpd//使用本地yum安装vsftpd服务
Installed:
vsftpd.x86_640:2.2.2-11.el6_4.1
Complete!
[root@localhost~]#chkconfigvsftpdon//启动vsftpd服务
[root@localhost~]#servicevsftpdstart

[root@localhost~]#mkdir/var/ftp/rhel//创建系统软件仓库目录
[root@localhost~]#cp-rf/media/*/var/ftp/rhel///将系统光盘内数据复制到目录下,包含repodata数据文件

[root@localhost~]#mkdir/var/ftp/other//创建用户收集的软件仓库目录,需要使用createrepo工具手动创建repodata文件
[root@localhost~]#yum-yinstallcreaterepo//使用本地yum安装createrepo软件包
[root@localhost~]#createrepo--database/var/ftp/other///创建repodata文件
SavingPrimarymetadata
Savingfilelistsmetadata
Savingothermetadata
GeneratingsqliteDBs
SqliteDBscomplete

[root@localhost~]#iptables-IINPUT-ptcp--dport20:21-jACCEPT//允许FTP流量访问本服务器
[root@localhost~]#modprobeip_conntrack-ftp//需要手动加载FTP模块


(2)客户机端

yum工具使用的软件仓库信息存放在/etc/yum.repos.d目录中下扩展名为“.repo”的文件中

[root@localhost~]#vim/etc/yum.repos.d/ysf.repo//编写yum配置文件
[base]//仓库类别
name=rhel//描述、说明
baseurl=ftp://192.168.1.1/rhel//URL访问路径
enabled=1//1表示启用此仓库,0表示不启用;默认启用,可省略
gpgcheck=1//验证软件包的签名,0表示不验证;若无此要求,可省略
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release//验证需要指定GPG公钥文件的位置,
[other]
name=othet
baseurl=ftp://192.168.1.1/other
enabled=1
gpgcheck=0



三、用HTTP部署YUM软件仓库

(1)服务器端

[root@localhost~]#mount/dev/cdrom/media///挂载系统光盘
mount:blockdevice/dev/sr0iswrite-protected,mountingread-only
[root@localhost~]#yum-yinstallhttpd//使用本地yum安装httpd服务
[root@localhost~]#chkconfighttpdon//启动httpd服务
[root@localhost~]#servicehttpdstart

[root@localhost~]#mkdir/var/www/html/rhel//创建系统软件仓库目录
[root@localhost~]#cp-rf/media/*/var/www/html/rhel///将系统光盘内数据复制到目录下,包含repodata数据文件

[root@localhost~]#mkdir/var/www/html/other//创建用户收集的软件仓库目录,需要使用createrepo工具手动创建repodata文件
[root@localhost~]#yum-yinstallcreaterepo//使用本地yum安装createrepo软件包
[root@localhost~]#createrepo--database/var/www/html/other///创建repodata文件
SavingPrimarymetadata
Savingfilelistsmetadata
Savingothermetadata
GeneratingsqliteDBs
SqliteDBscomplete

[root@localhost~]#iptables-IINPUT-ptcp--dport80-jACCEPT//允许HTTP流量访问本服务器


(2)客户机端

[root@localhost~]#vim/etc/yum.repos.d/ysf.repo
[base]
name=rhel
baseurl=http://192.168.1.1/rhel
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[other]
name=othet
baseurl=http://192.168.1.1/other
enabled=1
gpgcheck=0



使用yum工具管理软件包

下面列出以下常用的yum命令

1. 查询软件包

(1)yum list——查询软件包列表

可以获得系统中的软件安装情况,也可以获得软件仓库中可用的软件包列表

[root@localhost~]#yumlistinstalled//列出系统已安装的软件包
[root@localhost~]#yumlistavailable//列出软件仓库中可用的软件包(未安装)
[root@localhost~]#yumlistupdates//列出可以升级版本的软件包
[root@localhost~]#yumlistyum\*//列出所有以yum开头的软件包
[root@localhost~]#yumgrouplist//列出YUM仓库中的软件分组信息


(2)yum info——查询软件包的描述信息

[root@localhost~]#yuminfohttpd//查看软件包httpd的信息
[root@localhost~]#yumgroupinfodesktop//列出软件分组Desktop所包含的软件包等信息


(3)yum search——查询指定的软件包

根据某个关键词来查找相关的软件包,默认根据软件包名称和描述信息进行搜索

[root@localhost~]#yumsearchhttp//搜索软件仓库中的软件包名称或描述信息包含“http”的软件包
[root@localhost~]#yumsearchallhttp//搜索软件仓库中与“http”相关的软件包


2. 清除yum缓存

yum会把下载的软件包和header存储在cache中,而不会自动删除。如果我们觉得它们占用了磁盘空间,可以使用yumclean指令进行清除,更精确的用法是yumclean headers清除header,yum cleanpackages清除下载的rpm包,yum cleanall 清除所有

[root@localhost~]#yumcleanall//清空/var/cache/yum目录下的缓存数据


3. 安装、升级、卸载软件包

使用yum工具安装、卸载软件包,执行操作时自动检查并解决软件包之间的依赖关系,期间会提示用户按Y键确认安装,可在yum命令后加“-y”选项,指定确认

[root@localhost~]#yumupdate//升级系统
[root@localhost~]#yuminstall软件包//安装指定软件包
[root@localhost~]#yumupdate软件包//升级指定软件包
[root@localhost~]#yumremove软件包//卸载指定软件包
[root@localhost~]#yumdeplist软件包//查询指定软件包的依赖关系
[root@localhost~]#yumlocalinstall软件包//从磁盘安装rpm包并使用yum解决依赖

[root@localhost~]#yumgroupinstall软件组//安装指定软件组中的软件包
[root@localhost~]#yumgroupupdate软件组//更新指定软件组中的软件包
[root@localhost~]#yumgroupremove软件组//卸载指定软件组中的软件包


4. yum高级管理应用技巧

技巧1:加快你的yum的速度.使用yum的扩展插件yum-fastestmirror,个人认为这个插件非常有效,速度真的是明显提高

[root@localhost~]#yum-yinstallyum-fastestmirror//在CentOS上,名字叫yum-plugin-fastestmirror


技巧2:扩展你的rpm包好多包官方没有,怎么搞定他.要我自己编译吗?你可以自己到http://dag.wieers.com/rpm这来找


技巧3:还是有rpm包找不到怎么办,你可以用高级查找http://rpm.pbone.net/,基本上可以搜集齐全


技巧4:软件组安装有时我们安装完系统,管理有一类软件没有安装,比如用于开发的开发包,我们可以用软件包来安装。

[root@localhost~]#yum-ygroupinstall"DevelopmentLibraries"
[root@localhost~]#yum-ygroupinstall"DevelopmentTools"//安装用于开发的软件包

[root@localhost~]#yum-ygroupinstall"ChineseSupport"//安装用于中文支持的软件包
[root@localhost~]#yumdeplistpackage1//查看程序package1依赖关系


技巧4:关于其他知识,可以通过man命令查看

[root@localhost~]#manyum

yum-yinstall软件包(支持*)//自动选择y,全自动
yuminstall软件包(支持*)//手动选择yorn
yumremove软件包(不支持*)
rpm-ivh软件包(支持*)//安装rpm包
rpm-e软件包(不支持*)//卸载rpm包
yuminstallkernel-headerskernel-devel//升级内核

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2280端口映射到公网,发现经常被暴力破解,自己写了个临时封禁ip功能的脚本,实现5分钟内同一个ip登录密码错误10次就封禁这个ip5分钟,并且进行邮件通知使用步骤openwrt为19.07.03版本,其他版本没有测试过安装bashmsmtpopkg
#!/bin/bashcommand1&command2&wait从Shell脚本并行运行多个程序–杨河老李(kviccn.github.io)
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/phpls-ls 2.编辑修改.bash_profile文件(没有.bash_profile文件的情况下回自动创建)sudovim~/.bash_profile在文件的最后输入以下信息,然后保存退出exportPATH="/Applications/MAMP/bin/php/php7.2.20/b
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如zh_CN之类的语言包,进行中文语言包装:apt-getinstalllanguage-pack-zh-hans3、安装好后我们可以进行临时修改:然后添加中文支持: locale-genzh_CN.UTF-8临时修改> export LC_ALL='zh_CN.utf8'> locale永久
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexadecimalbash2#[0~1]0[0~7]0x[0~f]or0X[0~f]perl0b[0~1]0[0~7]0x[0~f]tcl0b[0~1]0o[0~7]0x[0~f]bashdifferentbaserepresntationreference2.StringlengthLanguageStr
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全命令补全方法:yum-yinstallbash-completionsource/usr/share/bash-completion/bash_completionsource<(kubectlcompletionbash)echo"source<(kubectlcompletionbash)">>~/.bashrc 
参考这里启动jar包shell脚本修改过来的#!/bin/bash#默认应用名称defaultAppName='./gadmin'appName=''if[[$1&&$1!=0]]thenappName=$1elseappName=$defaultAppNamefiecho">>>>>>本次重启的应用:$appName<
#一个数字的行#!/bin/bashwhilereadlinedon=`echo$line|sed's/[^0-9]//g'|wc-L`if[$n-eq1]thenecho$linefidone<1.txt#日志切割归档#!/bin/bashcd/data/logslog=1.logmv_log(){[-f$1]&&mv$1$2
#文件增加内容#!/bin/bashn=0cat1.txt|whilereadlinedon=[$n+1]if[$n-eq5]thenecho$lineecho-e"#Thisisatestfile.\n#Testinsertlineintothisfile."elseecho$linefidone#备份/etc目录#
# su - oraclesu: /usr/bin/ksh: No such file or directory根据报错信息:显示无法找到文件 /usr/bin/ksh果然没有该文件,但是发现存在文件/bin/ksh,于是创建了一个软连接,可以规避问题,可以成功切换到用户下,但无法执行系统自带命令。$. .bash_profile-ksh: .: .b
history显示历史指令记录内容,下达历史纪录中的指令主要的使用方法如果你想禁用history,可以将HISTSIZE设置为0:#exportHISTSIZE=0使用HISTIGNORE忽略历史中的特定命令下面的例子,将忽略pwd、ls、ls-ltr等命令:#exportHISTIGNORE=”pwd:ls:ls-ltr:”使用HIS
一.命令历史  1.history环境变量:    HISTSIZE:输出的命令历史条数,如history的记录数    HISTFILESIZE:~/.bash_history保存的命令历史记录数    HISTFILLE:历史记录的文件路径    HISTCONTROL:     ignorespace:忽略以空格开头的命令
之前在网上看到很多师傅们总结的linux反弹shell的一些方法,为了更熟练的去运用这些技术,于是自己花精力查了很多资料去理解这些命令的含义,将研究的成果记录在这里,所谓的反弹shell,指的是我们在自己的机器上开启监听,然后在被攻击者的机器上发送连接请求去连接我们的机器,将被攻击者的she
BashOne-LinersExplained,PartI:Workingwithfileshttps://catonmat.net/bash-one-liners-explained-part-oneBashOne-LinersExplained,PartII:Workingwithstringshttps://catonmat.net/bash-one-liners-explained-part-twoBashOne-LinersExplained,PartII
Shell中变量的作用域:在当前Shell会话中使用,全局变量。在函数内部使用,局部变量。可以在其他Shell会话中使用,环境变量。局部变量:默认情况下函数内的变量也是全局变量#!/bin/bashfunctionfunc(){a=99}funcecho$a输出>>99为了让全局变量变成局部变量
1、多命令顺序执行;  命令1;命令2  多个命令顺序执行,命令之间没有任何逻辑联系&&  命令1&&命令2  逻辑与,当命令1正确执行,才会执行命令2||  命令1||命令2  逻辑或,当命令1执行不正确,才会执行命令2例如:ls;date;cd/home/lsx;pwd;who ddif=输入文件of=输
原博文使用Linux或者unix系统的同学可能都对#!这个符号并不陌生,但是你真的了解它吗?首先,这个符号(#!)的名称,叫做"Shebang"或者"Sha-bang"。Linux执行文件时发现这个格式,会把!后的内容提取出来拼接在脚本文件或路径之前,当作实际执行的命令。 Shebang这个符号通常在Unix系统的脚本
1、历史命令history[选项][历史命令保存文件]选项:-c:  清空历史命令-w:  把缓存中的历史命令写入历史命令保存文件 ~/.bash_historyvim/etc/profile中的Histsize可改存储历史命令数量历史命令的调用使用上、下箭头调用以前的历史命令使用“!n”重复执行第n条历史
目录1.Shell脚本规范2.Shell脚本执行3.Shell脚本变量3.1环境变量3.1.1自定义环境变量3.1.2显示与取消环境变量3.1.3环境变量初始化与对应文件的生效顺序3.2普通变量3.2.1定义本地变量3.2.2shell调用变量3.2.3grep调用变量3.2.4awk调用变量3.3
   http://www.voidcn.com/blog/wszzdanm/article/p-6145895.html命令功能:显示登录用户的信息命令格式:常用选项:举例:w显示已经登录的用户及正在进行的操作[root@localhost~]#w 11:22:01up4days,21:22, 3users, loadaverage:0.00,0.00,0.00USER