yum的功能:
在我们使用rpm包安装程序时,各个程序包之间可能存在非常严重的依赖关系,这就导致我们在安装一个包的同时还需要安装其他存在依赖关系的包,因此我们可以使用rpm包的前端管理工具yum,可通过yum所支持的文件共享机制来解决各个rpm包之间的依赖关系。
yum仓库的配置文件:
/etc/yum.conf:为所有仓库提供配置参数。
[main] cachedir=/var/cache/yum/$basearch/$releasever keepcache=0 ###(是否保存缓存中的已经被下载安装的rpm包) 会删除已缓存的rpm包 debuglevel=2 logfile=/var/log/yum.log ###日志文件存放路径 exactarch=1 ###到仓库中下载rpm包的时候要与当前主机的版本完全匹配才能安装 obsoletes=1 gpgcheck=1 ###是否检查rpm包的来源合法性及数据包的完整 plugins=1 installonly_limit=5 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release
/etc/yum.repos.d/*.repo:为指定的仓库提供配置
[repo_ID] ###指定ID,不能重复,不能省略 name=String ###指定仓库名称 baseurl=仓库的访问路径 ###指定仓库的访问路径,不能省略(repodate所在目录的父目录即为仓库所在路径) 查看是否配置成功可以通过yum repolist查看 enabled={1|0} ###是否启用此仓库 默认启用,省略后默认值为0 gpgcheck={1|0} ###是否检查完整性和来源合法性,不能省略 gpgkey=公钥文件 ###可以在本地,也可是服务器端路径 cost=定义此仓库开销 ###默认为1000 开销越小 优先级越高
yum的repo配置文件中可用的变量:
$releasever: 当前OS的发行版的主版本号
$arch: 平台, i386,i486,i586,x86_64等
$basearch:基础平台; i386
$YUM0-$YUM9:自定义变量
实例:
http://server/centos/$releasever/$basearch/
http://server/centos/7/x86_64
http://server/centos/6/i384
yum仓库
由于在某些特定的情况下,比如某些公司不能通过服务器访问外网等,需要我们自行配置和创建yum仓库,那么就可以采取如下四种办法解决:
方法1、使用本地挂载光盘的方法来创建yum仓库
a、首先要查看我们的光盘是否已经挂载,可通过df命令查看,如果没有挂载可通过mount命令进行挂载,如果时cenots6可以通过如下方式挂载。
root@cenots6.8 ~ # cd /misc ####只要访问/misc/cd 目录 ,光盘就会自动挂载到/misc/cd下 root@cenots6.8 /misc # ls -a . .. root@cenots6.8 /misc # cd cd root@cenots6.8 /misc/cd # df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda3 121455724 4401412 110878008 4% / tmpfs 502068 76 501992 1% /dev/shm /dev/sda1 194241 34100 149901 19% /boot /dev/sr0 3824484 3824484 0 100% /media/CentOS_6.8_Final /dev/sr0 3824484 3824484 0 100% /misc/cd #######此处可以看到光盘已经挂载到了/misc/cd上
b、挂载完光盘后,我们cd/misc/cd目录下后,就可以看到一个repodata目录,该目录存在的位置就是我们要指向的yum仓库的路径,RPM-GPG-KEY-CentOS-7就是公钥(/etc/pki/目录下也可以获取公钥)。
root@cenots6.8 /misc/cd # ls CentOS_BuildTag EULA images Packages repodata RPM-GPG-KEY-CentOS-Debug-6 RPM-GPG-KEY-CentOS-Testing-6 EFI GPL isolinux RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-6 RPM-GPG-KEY-CentOS-Security-6 TRANS.TBL
c、接下来我们就可以配置yum仓库,vim /etc/yum.repos.d/CentOS-Local.repo注意这里我们所创建的文件必须要以repo结尾,这样才能够被识别生效,配置参数如下
[cdrom] name= cdrom baseurl=file:///misc/cd enabled=1 gpgcheck=0
d、执行yum repolist命令,查看是否正常工作。
root@cenots6.8 /etc/yum.repos.d # yum repolist 已加载插件:fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile cdrom | 4.0 kB 00:00 ... 仓库标识 仓库名称 状态 cdrom cdrom 6,696 repolist: 6,696
注意:baseurl可以指多条路径,但是要求每条路径指向的内容是一样的,增加冗余能力
方法2、通过createrepo自行创建yum仓库
a、首先创建一个目录用于存储rpm包,mkdir /testdir/testrepo,并cd到该目录下
b、访问指定的路径,查找自己的所要下载rpm包到/testdir/testrepo路径下,然后createrepo /testdir/testrepo创建yum仓库
root@cenots6.8 /testdir/testrepo # ls tree-1.5.3-3.el6.x86_64.rpm root@cenots6.8 /testdir/testrepo # createrepo ./ Spawning worker 0 with 1 pkgs Workers Finished Gathering worker results Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete root@cenots6.8 /testdir/testrepo # ls ###创建完成之后我们会发现目录下多了一个repodata目录 此时手动创建yum仓库成功 repodata tree-1.5.3-3.el6.x86_64.rpm
d、配置/etc/yum.repos.d/CentOS-Local.repo文件
[tree] name=tree baseurl=file:///testdir/testrepo gpgcheck=0 enabled=1
e、yum repolist查看生效有否。
root@cenots6.8 /etc/yum.repos.d # yum repolist 已加载插件:fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile cdrom | 4.0 kB 00:00 ... tree 仓库名称 状态 cdrom cdrom 6,696 tree tree 1 repolist: 6,697
方法3、基于Ftp的方式配置yum仓库
a、安装vsftpd,输入yum install vsftpd,在/var/ftp/pub目录下创建rpm目录,并且把/testdir/testrepo中的全部文件(/*)拷贝到rpm目录中,然后执行service vsftpd start开启vsftpd服务。
b、配置/etc/yum.repos.d/local.repo文件
[Ftprepo] name=Ftp-repo baseurl=ftp://192.168.1.103/pub/rpm gpgcheck=0 enabled=1
c、yum repolist查看生效与否。
方法4、基于htp的方式配置yum仓库
a、安装httpd,输入yum install httpd,然后输入service http start启动,把/var/ftp/pub/目录下的所有文件复制到/var/www/htm/目录下。
b、在浏览器中热输入http://192.168.1.103/rpm
c、 编辑/etc/yum.repos.d/local.repo文件配置仓库路径。
d、yum repolist查看生效与否。
注意:/etc/yum.repos.d/目录下,执行mv CentOS-Base.repo CentOS-Base.bak,这样CentOS-Bse.repo就停止工作也做备份,以后重新使用把bak的后缀名改成repo即可,禁用启用yum仓库也可以使用yum-config-manager –disable “仓库名" 禁用仓库, yum-config-manager –enable “仓库名” 启用仓库。
程序包的编译安装
程序包的安装编译:
1、拿到源代码,并解压:
# tar xf package-version.tar.{gz|bz2|xz}
注意:展开后的目录名通常为package-version
2、切换至源码目录中
# cd package-version
3、执行configure脚本
# ./configure
4、编译
# make
5、安装
# make install
建议:安装前先查看INSTALL,README
configure脚本功能:检查编译环境是否满足编译需求,并定义当前程序编译时启用哪个特性或功能,以及安装路径的定义等等;
GNU/make:项目管理工具 通过make命令来调用GCC编译工具来实现编译
configure脚本的通用功能:
1、指定安装路径:
–prefix=/usr/local/packagename 指定安装路径
–sysconfdir=/etc/packagename 指定配置文件的存放路径
2、指定启用/禁用的特性:
–enable-feature: 例如–enable-fpm
–disable-feature: 例如 –disable-socket
3、指定所依赖功能、程序或文件
–with-function:启用某功能
–without-function:禁用某功能
不同的程序,其configure脚本功能不同,要获取帮助:./configure –help
安装后的配置:
1、 二进制程序目录导入至PATH环境变量中;
编辑文件/etc/profile.d/NAME.sh
export PATH=/PATH/TO/BIN:$PATH
2、 导入库文件路径
编辑/etc/ld.so.conf.d/NAME.conf
添加新的库文件所在目录至此文件中
让系统重新生成缓存:
ldconfig [-v]
3、导入头文件
基于链接的方式实现:
ln -sv
4、导入帮助手册
编辑/etc/man.config|man_db.conf文件
添加一个MANPATH
vim /etc/mandb.conf
MANDATORY_MANPATH /usr/local/NAME/man
应用举例:源码安装apache
1、下载httpd到指定目录中。
root@cenots6.8 ~ # lftp http://mirrors.sohu.com/apache/ cd 成功, 当前目录=/apache lftp mirrors.sohu.com:/apache> ls lftp mirrors.sohu.com:/apache> get httpd-2.2.31.tar.bz2 5610489 bytes transferred in 51 seconds (106.8K/s) lftp mirrors.sohu.com:/apache> bye root@cenots6.8 ~ # ls aa cc dir1 httpd-2.2.31.tar.bz2 install.log.syslog 模板 图片 下载 桌面 bb dir ee install.log 公共的 视频 文档 音乐
2、解压程序包,并切换到nginx-1.9.9目录中
root@cenots6.8 ~ # tar xf httpd-2.2.31.tar.bz2 root@cenots6.8 ~ # ls aa cc dir1 httpd-2.2.31 install.log 公共的 视频 文档 音乐 bb dir ee httpd-2.2.31.tar.bz2 install.log.syslog 模板 图片 下载 桌面 root@cenots6.8 ~ # cd httpd-2.2.31 root@cenots6.8 ~/httpd-2.2.31 # ls ABOUT_APACHE CHANGES httpd.dsp libhttpd.dep NOTICE server acinclude.m4 config.layout httpd.mak libhttpd.dsp NWGNUmakefile srclib Apache.dsw configure httpd.spec libhttpd.mak os support build configure.in include LICENSE README test BuildAll.dsp docs INSTALL Makefile.in README.platforms VERSIONING BuildBin.dsp emacs-style InstallBin.dsp Makefile.win README-win32.txt buildconf httpd.dep LAYOUT modules ROADMAP
3、配置configure命令指定安装路径和配置文件的存放路径
./configure --prefix=/usr/local/http2 --sysconfdir=/etc/http2/
注意:如果在执行此命令报错,error requires the *** library.可通过yum search ***,然后执行yum install ***—devel.x86_64 (支包一般都在***—devel包中)。
4、make
5、make install
6、cd /usr/local/http2/bin 执行./apachectl start
7、netstat -ant
8、iptables -F
9、在浏览器处输入ip地址查看状态即可。
yum的常用命令及选项
yum的常用命令:
显示仓库列表:yum repolist
显示程序包:yumlist
安装程序包:yum install package
升级程序包:yum update package
降级程序包:yum downgrade package
卸载程序包:yum remove | erase package
检查可用升级:yum check-update
查看程序包信息:yum info
查看指定的特定是由哪个程序包所提供的:yum provides | whatprovides feature
清理本地缓存:yum clean [ packages | metadata | expire-cache |rpmdb | plugins | all ]
构建缓存:yum makecache
搜索:yum search string1 [string2] […]
查看指定程序包所依赖的能力:yum deplist package1 [package2] […
查看yum事物历史:
yum history [info|list|packages-list|packages-info| summary|addon-info|redo|undo|rollback|new|sync|stats]
yum history
yum history info 6
yum history redo 6 重新执行编号为6的操作
yum history undo 6 撤销之前编号6 的操作
查看yum的日志:/var/log/yum.log
创建yum仓库:createrepo /path/to/dir
包组管理的相关命令:
yum groupinstall group1 [group2] […]
yum grouplist [hidden] [groupwildcard] […]
yum groupremove group1 [group2] […]
yum groupinfo group1 […]
通过包组提供开发组件:
centOS5:“Development Tools”和“Development Libraries”
centos6:Develop Tools Server Platform Development
centos7:Develop Tools
yum的命令行选项:
–nogpgcheck:禁止进行gpg check
-y: 自动回答为“ yes”
-q:静默模式
–disablerepo=repoidglob:临时禁用此处指定的repo
–enablerepo=repoidglob:临时启用此处指定的repo
–noplugins:禁用所有插件
原创文章,作者:Naruto,如若转载,请注明出处:http://www.178linux.com/39759
评论列表(1条)
文章对内容总结的很全面,同时通过多种方式自建yum源,并配置使用,加深了自己对yum工具的使用。如果在用词上更专业点,会让文章看起来更优秀哦。