linux repo工具,Linux自学笔记——yum程序包管理工具

YUM,Yellow dog UpdateModified,是一个在Fedora和RedHat以及CentOS中的shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包,无需繁琐地一次次下载、安装。

1.Yum客户端:

配置文件:

/etc/yum.conf:为所有仓库提供公共配置

f9fe79f597d2516504e47f7adef8cb81.png

具体参数含义为:

cachedir=/var/cache/yum/$basearch/$releasever   ##yum缓存目录,yum在此存储下载的rpm包和数据库;

keepcache=0    ##安装完成后是否保留软件包,0不保留,1为保留,默认为0;

debuglevel=2    ##debug信息输出等级,范围为0-10,缺省为2;

logfile=/var/log/yum.log  ##yum日志文件位置;

exactarch=1           ##精确平台匹配,设置为1时,yum只会安装和系统架构精确匹配的软件包;

obsoletes=1           ##update的参数,允许更新陈旧的rpm包;

gpgcheck=1           ##检查安装包的完整性和来源合法性,1检查,0不检查;

plugins=1         ##是否启用插件,默认为1允许,

installonly_limit=5      ##

bugtracker_url=           ##bug提交的url

gory=yum              ##

distroverpkg=centos-release          ##指定一个软件包,yum会根据这个包判断你的发行版本;

这其中也是部分的参数配置,如果想要了解更深入的可以使用如下指令进行查阅man手册:

a0ac2a0952aa52937ae28efd298499c6.png

仓库指向:

下面我们随机查看yum的其中一个.repo文件:

0b89534de1fe9aebb860555bdeaf8e8d.png

仓库指向的定义:

[repositoryID]##软件源的名称;

name=Somename for this repository           ##软件仓库名;

baseurl=url://path/to/repository/         ##yum源的镜像服务器地址;

enabled={1|0}          ##是否启用这个repo文件,默认为1启用;

gpgcheck={1|0}        ##是否检查安装包的完整性以及合法性;

gpgkey=URL        ##用于校验的gpg秘钥地址;

enablegroups={1|0}        ##手否对组启用;

failovermethod={roundrobin|priority}默认为:roundrobin,意为从列出的baseurl里随机挑选;

cost=        ##花销,默认为1000;

2.Yum命令的用法:

yum [options] [command][package ...]

command is one of:

* install package1 [package2] [...]

*update [package1] [package2] [...]

* update-to [package1] [package2] [...]

* check-update

* upgrade [package1] [package2] [...]

* upgrade-to [package1] [package2][...]

* distribution-synchronization[package1] [package2] [...]

* remove | erase package1 [package2][...]

* list [...]

* info [...]

* provides | whatprovides feature1[feature2] [...]

* clean [ packages | metadata |expire-cache | rpmdb | plugins | all ]

* makecache

* groupinstall group1 [group2] [...]

* groupupdate group1 [group2] [...]

* grouplist [hidden] [groupwildcard][...]

* groupremove group1 [group2] [...]

* groupinfo group1 [...]

* search string1 [string2] [...]

* shell [filename]

* resolvedep dep1 [dep2] [...]

* localinstall rpmfile1 [rpmfile2][...]

(maintained for legacy reasons only- use install)

* localupdate rpmfile1 [rpmfile2] [...]

(maintained for legacy reasons only- use update)

* reinstall package1 [package2] [...]

* downgrade package1 [package2] [...]

* deplist package1 [package2] [...]

* repolist [all|enabled|disabled]

* version [ all | installed | available| group-* | nogroups* | grouplist | groupinfo ]

* history[info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

* check

* help [command]

显示仓库列表:

repolist [all |enabled|disabled]

d33e3e43a4c9729105a885a44ec35ffc.png

c645e9137b2836137e318aa6a8ccfb8f.png

显示程序包:

list

#yum list [all |glob_exp1][golb_exp2]

#yum list{available|installed|updates} [glob_exp1] [...]

d3e42182f3e358f38b81ada59f98bf6b.png

安装程序包:

Install package1 [package2]…

Reinstall package1 [package2]…

deea807581e43b9f3c353d510302df81.png

在安装过程中,会有一个询问交互式的过程,必须选择y才能继续安装,否则则不会继续安装;

升级安装包:

update [package1] [package2]…

downgrade package1 package2…(降级)

检查可用升级:

check-update

3b5344616cc3bb8fd50e08bcb802b160.png

卸载安装包:

remove | erase package1 [package2]…

24d9163470defa337b4f30d3362e6a8a.png

查看程序包信息information:

info[…]

ef270946cd90ca72a8c4baacea58047b.png

查看指定的特性(可以是某个文件)是由哪个程序包提供的:

Provides| whatprovides feature1 [feature2][…]

693e8d02496757d2756af0455d778d73.png

清理本地缓存:

Clean[ packages | metadata | expire-cache | rpmdb |plugins | all ];

83018431d106e8617cf9502f20c478a5.png

构建缓存:

makecache

86e34c9b7997856facf76a3d2f967ed4.png

搜索:

searchstring1 [string2] […]以指定的关键字搜索程序包及summary信息;

caf7e12a0bc107a48cb04921281bfe69.png

查看指定的包所依赖的capabilities:

deplistpackage1 [package2][…]

4b57b6df23dd33d17eaf0b44f7d2cac6.png

查看yum事物历史:

history  [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

e7311a73de49480e87a7ac6d7d20355d.png

安装及升级本地程序包:

* localinstall rpmfile1 [rpmfile2][...]    ##本地安装

(maintained for legacy reasons only - useinstall)

*localupdate rpmfile1 [rpmfile2] [...]##本地升级

(maintainedfor legacy reasons only - use update)

包组管理的相关命令:

* groupinstall group1 [group2] [...]    ##组安装

* groupupdate group1 [group2] [...]  ##组升级

* grouplist [hidden] [groupwildcard] [...]##显示组

* groupremove group1 [group2] [...]##卸载组

* groupinfo group1 [...]         ##查看组信息

如何使用光盘当作本地yum仓库:

(1)挂载光盘至某目录,例如/media/cdrom;

Mount –r –tiso9660 /dev/cdrom /media/cdrom;

(2)创建配置文件:

[centos6.6]

name=

baseurl=

gpgcheck=

enabled=

1.将/etc/yum.repo.d下的文件备份一份,

beb83672f6fa5c789f538491e836c87f.png

2.然后新建一个.repo结尾的文件,编辑配置文件,保存退出后可用yum repolist查看yum仓库是否创建成功;

4409ca4b9bf581dec947663fb9bb6f8c.png

其中cdrom.repo的配置文件内容为:

0cb676cfa47a94b31a68ef65953e474f.png

yum的命令行选项:

--nogpgcheck:不进行gpgcheck;

-y:自动回答为yes;

-q:静默模式;

--disablerepo=repoidglob:临时禁用此处指定的repo;

--enablerepo=repoidglob:临时启用此处指定的repo;

--noplugins:禁用所有插件;

创建yum仓库:

createrepo[options]

程序包的编译安装:

testapp-VERSION-release.src.rpm-->安装后,使用rpmbuild命令制作成二进制格式的rpm包,而后再安装;

大概的执行流程为:源代码 --> 预处理 --> 编译(gcc) --> 汇编 --> 链接 --> 执行

源代码组织格式:

多文件:文件中的代码之间,很可能存在跨文件依赖关系;

C、C++: make (configure --> Makefile.in --> makefile)

java: maven

c代码编译安装三步骤:

./configure:

(1)通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及makefile.in文件生成makefile;

(2)检查依赖到的外部环境;

make:

根据makefile文件,构建应用程序;

make install

开发工具:

autoconf:生成configure脚本;

automake:生成makefile.in

建议:安装前查看INSTALL,README

开源程序源代码的获取:

官方自建站点:

apache.org(ASF)

mariadb.org

代码托管:

SourceForge

Github.com

code.google.com

c/c++: gcc (GNU C Complier)

编译c源代码:

前提:提供开发工具及开发环境

开发工具:make,gcc等

开发环境:开发库,头文件

glibc:标准库

通过“包组”提供开发组件

Centos6:“development tools”,“server platform development”

第一步:configure脚本

选项:指定安装位置、指定启用的特性

--help:获取其支持使用的选项

选项分类:

安装路径设定:

--prefix=/PATH/TO/SOMEWHERE:指定默认安装位置:默认为/usr/local/

--sysconfdir=/PATH/TO/SOMEWHERE:配置文件安装位置;

System types:

Optional Features:可选特性

--disable-FEATURE

--enable-FEATURE[=ARG]

Optional Packages:可选包

--with-Packages=[ARG]

--without-PACKAGE

第二步:make

第三步:make install

安装后的配置:

(1)导出二进制程序目录至PATH环境变量中;

编辑文件/etc/profile.d/NAME.sh

ExportPATH=/PATH/TO/BIN:$PATH

(2)导出库文件路径

编辑/etc/ld.so.conf.d/NAME.conf

添加新的库文件所在的目录至此文件中:

让系统重新生成缓存:

ldconfig[-v]

(3)导出头文件

基于链接的方式实现:

ln –sv

(4)导出帮助手册

编辑/etc/man.config文件

添加一个MANPATH

举例:在centos6.6上编译安装httpd

1.安装gcc编译工具:

824ed0874023e06818a27965d802dbe2.png

2.安装开发组件,"Development tools" "Server PlatformDevelopment"

5274c3906923e4564a92742679c4a4f1.png

3.进入下载的httpd文件夹,展开httpd-2.2.26.tar.gz,并进入http-2.2.26文件夹:

741ab7b7d44520847b59930852196b9d.png

4.运行http-2.2.26文件夹下的configue脚本,并指明安装路径等选项:

49bf1c3300784d55a544845009299250.png

5.等脚本运行完之后运行make命令:

70dcac522b04c9e927bf2bc6e198dc16.png

6.然后运行make install命令:

533eee12e798522462ae343017293dfc.png

7.进入安装目录,

3c28928f044bb4f774c8b328e88fd24a.png

测试80端口是否在监听状态:

a0db7486d9f5a8ec1c826b0fb0568e93.png

8.在网页中测试服务状态:

8383c16c8b42ccbe2150910f629cb944.png

安装完之后的配置:

9.导出二进制程序目录至PATH环境变量中;

783a5d31245633e097d36303cca5f63d.png

10.导出库文件路径,并让系统重新生成缓存:

06ce1d5759f9c9839cb6d41bbdd3fd41.png

系统重新生成缓存:

b94dd276d834016118c988bdc7a80bb9.png

11.导出头文件:

98737b5322db87d36aa7a75ad889977d.png

12.导出帮助手册:

c8e1bddbc52049d9577ec2647609defa.png

此时,才算完成整个程序的编译安装。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值