yum的地位:yum是rpm的前端管理工具,而且依赖于rpm。
yum仓库:yum repository,仓库里存储了众多rpm包,以及包的相关的元数据文件.yum仓库里会有个repodata目录存在.
yum支持的文件服务器类型: ftp:// http:// file:///(本地服务器,例光盘) /nfs://
查看yum的信息: [root@yph7yum.repos.d]# rpm -q yum ------查看yum命令的安装包是哪个 yum-3.4.3-125.el7.centos.noarch [root@yph7yum.repos.d]# rpm -qc yum ------查看yum命令的配置文件 /etc/logrotate.d/yum /etc/yum.conf /etc/yum/version-groups.conf
yum的配置文件: /etc/yum.conf:此文件为所有仓库提供公共配置 /etc/yum.repos.d/*.repo:为仓库的指向提供配置。配置一个或多个仓库指向,如果多个仓库都有需要的那个程序包包,就选择最近的仓库,或者选择成本低的仓库。
用man 5 yum.conf可以查看对yum.conf文件的读取帮助。 yum.conf文件的内容及格式
仓库的指向的定义: [repositoryID] 仓库ID name=Some namefor this repository等号右边是自己定义的文件名 baseurl=url://path/to/repository/ 等号右边是要下载的程序包的url enabled={1|0}是否启用仓库,1表示启用,默认为1 gpgcheck={1|0}安装前是否检查来源合法性及完整性,1为默认表示是 gpgkey=URL指明秘钥文件的路径 enablegroups={1|0}是否支持在此仓库上使用组来批量管理包,1为默认,表示是 failovermethod={roundrobin|priority};默认为:roundrobin,意为随机挑选; cost=1000,表示开销,默认为1000
创建yum仓库: 请自行查看/etc/yum.repos.d/CentOs-Base.repo这个文件,然后我们仿照这个yum源仓库文件的格式写一个我们自己的仓库文件。注意:有repodata所在的路径才能是yum源指定的路径。 创建之前先把原仓库重命名一下。mv CentOS-Base.repo CentOS-Base.repo.bak 下面我们来自己创建本地yum源仓库文件centos-local.repo,内容如下: [base] name=Base Repo172.16.0.1 ----------自己定义的名字 baseurl=http://172.16.0.1/cobbler/ks_mirror/CentOS-7-x86_64-1503/ ----下载程序包的路径 gpgcheck=0---------------不检查来源合法性及内容完整性 [epel] name=Fedora EPELfor EL6 x86 64 baseurl=http://172.16.0.1/fedora-epel/7/x86_64/ gpgcheck=0 这是两个不同的仓库,虽然写在同一个文件。如果是相同的仓库,里面的文件是镜像,就可以把多个url写在同一个“baseurl”下面。
yum命令的用法:详细信息请manyum yum [options][command] [package ...]
显示仓库列表:默认显示已启用的,即enabled repolist[all|enabled|disabled] [root@yph7yum.repos.d]# yum repolist enabled 显示可用的仓库列表 [root@yph7yum.repos.d]# yum repolist all 显示可用的和不可用的仓库列表 [root@yph7yum.repos.d]# yum repolist disabled 显示不可用的仓库列表 显示程序包: yum list [all |glob_exp1] [glob_exp2] [...]基于文件名通配查找:
yum list{available|installed|updates} [glob_exp1] [...]
[root@yph7 yum.repos.d]# yum list available显示可以用的包 [root@yph7 yum.repos.d]# yum list installed显示已安装的包 [root@yph7 yum.repos.d]# yum list updates显示可更新的包 [root@yph7 yum.repos.d]# yum list updates xorg* | wc–l 13 -------------------------一共有13个可更新的并且以xorg开头的程序包 安装程序包: install package1[package2] [...] [root@yph7 ~]# yum install phpwapmail.noarch [root@yph7 ~]# yum install gcc-4.5.4 如果不想安装最新程序包,可以这样指明要安装程序包的版本
reinstall package1 [package2] [...] 重新安装程序包 [root@yph7~]# yum reinstall zsh 在安装zsh之后,要重新安装一次
升级程序包: update [package1][package2] [...] [root@yph7 ~]#yum update xorg-x11-drv-fbdev ………………………………………………………. 更新完毕: xorg-x11-drv-fbdev.x86_64 0:0.4.3-16.el6 完毕!
downgrade package1 [package2] [...]降级安装
检查可用升级: check-update [root@yph7 ~]#yum check-update | wc –l 71 ------------------有71个可用升级包 卸载程序包: remove package1 [package2] [...]
查看程序包information: info [...]
查看指定的特性或者文件是由哪个程序包所提供:类似 rpm -qf provides |whatprovides feature1 [feature2] [...]
[root@yph7~]# yum provides zsh
清理本地缓存: clean [ packages| metadata | expire-cache | rpmdb | plugins | all ] (对应于上面的单词分别是)包,元数据,过期缓存,rpmdb ,插件,所有缓存
构建缓存:makecache
搜索:以指定的关键字或字符串搜索程序包名及概要信息; search string1[string2] [...]
查看指定包所依赖的capabilities: deplist package1[package2] [...]
查看yum事务历史:在什么时候,有谁执行过哪些yum的安装或卸载等操作 history [info|list |summary| stats|packages-list|packages-info|addon-info|redo|undo|rollback|new|sync]
安装及升级本地程序包: 安装本地包时,如果有依赖关系的包在网站上,yum会自动下载安装依赖包,rpm无此功能
localinstall rpmfile1 [rpmfile2] [...] localinstall只是为了兼容,建议用install
localupdate rpmfile1 [rpmfile2] [...];同理,建议用update,而不是localupdate
包组管理的相关命令: grouplist [hidden] [groupwildcard] [...] [root@yph7 ~]#yum grouplist | wc –l 96 ----------------------------一共96个包组
groupinstall group1 [group2] [...] ---安装包组内的包,而且自动安装依赖包
groupupdate group1 [group2] [...] 升级包组内包 [root@yph7 ~]#yum groupupdate "Server Platform"
groupremove group1 [group2] [...] 卸载包组内的包 [root@yph7 ~]#yum groupremove "XWindow System " ------------卸载图形界面包组
groupinfo group1 [...] 查看包组的信息 [root@yph7 ~]#yum groupinfo "X Window System" 可以列出包组内的所有包,包含下列三大类。 MandatoryPackages:必须安装的包 Default Packages:默认安装的包 OptionalPackages:可选择安装的包
yum的命令行选项: --nogpgcheck:安装时禁止进行gpgcheck,即便仓库中定义为检测。 -y: 对安装过程的交互自动回答为“yes”。 -q:静默模式; --disablerepo=repoidglob:临时禁用此处指定的repo; --enablerepo=repoidglob:临时启用此处指定的repo; --noplugins:禁用所有插件;
repo配置文件中可用的变量: $releasever: 当前OS的发行版的主版本号;比如centos7中的"7" $basearch:基础平台;无论i386,i486,还是i586都理解为i386 $arch: 平台 $YUM0-$YUM9:
例如:http://mirrors.magedu.com/centos/$releasever/$basearch/os
用光盘做本地仓库:
[root@yph6 media]# mkdir /media/cdrom [root@yph6 media]# mount -r -t iso9660 /dev/cdrom /media/cdrom ---"-r"为只读,"-t"指明类型,如iso9660;
或者用下面的方法挂载光盘: [root@yph6 media]# mount -o loop /dev/cdrom /media/cdrom
新建或者添加yum仓库指向: [cdrom] name=cdrom baseurl=file:///media/cdrom gpgcheck=0
通过光盘做的仓库安装zsh
创建本地yum仓库:
repodata目录下有个repomd.xml文件,这里存储同目录下其他文件的特征码,指纹信息
或者在/etc/repos.d/centos-local.repo里添加新的仓库指向
程序包编译安装:
源代码编译安装过程. 源代码--> 预处理 --> 编译(gcc)--> 汇编(需要汇编器) --> 链接(需要链接器) --> 执行 make会自动调动预处理器做预处理,再调动编译器
C代码编译安装三步骤: 第一步: ./configure (1) 通过选项传递参数,指定启用特性、安装路径等;执行./configure时会参考用户的指定以及Makefile.in文件生成makefile;makefile是编译安装时的必须依赖的引导文件。 (2) 检查依赖到的外部环境;
第二步:make make不是编译器,它是管理器,调用编译器完成编译的,只是个项目管理工具,依赖于mkafile这个文件完成对程序的安装等操作。
第三步:make install 其实这是一些脚本,把二进制放到指定的二进制的安装路径下去,库文件放到指定的库文件路径下去,作用大致就这些。
开发工具: autoconf: 能生成configure脚本 automake:能生成Makefile.in 建议:安装前查看INSTALL,README
开源程序源代码的获取: 1、官方自建站点: apache.org (ASF) mariadb.org 2、代码托管: SourceForge Github.com code.google.com
程序包编译安装的过程: 下载httpd-2.2.29源码包,解压后查看里面的文件
在INSTALL文件里可以看到安装提示信息如下 $ ./configure--prefix=PREFIX ---------第一步 $ make ----------------第二步 $ make install -------------------第三步 $PREFIX/bin/apachectl start ---------------第四步
然后可以查看configure命令的选项: [root@yph6httpd-2.2.29]# ./configure –help 安装之前先安装好需要用到的工具,即一个包组 [root@yph6httpd-2.2.29]# yum groupinstall "Server Platform Development" 另外gcc也是个必须编译的工具,也要装上。 [root@yph6httpd-2.2.29]# yum install gcc
然后需要选择安装路径,因为我们没有通过rpm包安装,所以不能通过rpm管理器卸载,所以我们只能手动卸载并删除其配置文件,所以要指定并记住安装路径。 [root@yph6httpd-2.2.29]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd2 ---第一步 [root@yph6httpd-2.2.29]# make --------------第二步 [root@yph6httpd-2.2.29]# make install -----------第三步 [root@yph6httpd-2.2.29]# cd /usr/local/apache2 [root@yph6apache2]# ls bin build cgi-bin error htdocs icons include lib logs man manual modules
[root@yph6apache2]# ./bin/apachectl start -----------第四步
安装后的配置: (1) 导出二进制程序目录至PATH环境变量中;否则只能用绝对路径 新建建文件/etc/profile.d/apache2.sh,写入下行代码 export PATH=/usr/local/apache2/bin:$PATH
(2) 导出库文件路径 新建文件/etc/ld.so.conf.d/apache2.conf 把这个路径/usr/local/apache2/lib添加至文件中,即添加新的库文件所在目录至此新建文件中; 让系统重新生成缓存:ldconfig -v,否则只能下次开机才生效
(3) 导出头文件 本来include目录应该在/usr/include 中才对,但现在却在当前目录下,可以 可以连接整个目录过去,也可以连接每一个文件过去,可以导出整个目录为一个符号链接,也可以导出所有文件为一个符号链接 基于链接的方式实现: [root@yph6apache2]# ln -sv include /usr/include/apache2
[root@yph6 apache2]# ln -sv /uar/local/apache2/include /usr/include/apache2 `/usr/include/apache2' -> `/uar/local/apache2/include'
(4) 导出帮助手册 编辑/etc/man.config文件 MANPATH /usr/man MANPATH/usr/share/man MANPATH/usr/local/man MANPATH/usr/local/share/man MANPATH/usr/X11R6/man --------------------前面几行是/etc/man.config本来就有内容 MANPATH/usr/local/apache2/man ----------在MANPATH的行下面添加一行man路径
注意:安装过程的选项: 安装路径的设定: --prefix=/PATH/TO/SOMEWHERE:指定默认安装位置;默认为/usr/local/ --sysconfdir=/PATH/TO/SOMEWHERE:配置文件安装位置; 有需要的话可以加上下面的选项: System types: OptionalFeatures: 可选特性 --disable-FEATURE --enable-FEATURE[=ARG] OptionalPackages: 可选包 --with-PACKAGE[=ARG]依赖关系 --without-PACKAGE不允许依赖
附加: CentOS 6上通过提供开发组件的两个重要包组为: "Development Tools", "ServerPlatform Development", (责任编辑:IT) |