码迷,mamicode.com
首页 > 系统相关 > 详细

Linux软件管理

时间:2015-02-06 19:02:03      阅读:295      评论:0      收藏:0      [点我收藏+]

标签:linux   yum   rpm   

软件包管理器的核心功能:

打包成一个文件:二进制程序,库文件,配置文件,帮助文件。

生成数据库:追踪所安装的每一个文件。


软件包管理的核心功能:

1.制作软件包。

2.安装、卸载、升级、查询、校验。


依赖关系:

一个软件包安装需要其他已安装的软件包的支持。


rpm:

rpm包命名:

主包:

NAME-VERSION-RELEASE.ARCH.rpm

子包:

NAME-MAJOR.MINOR.RELEASE-RELEASE-ARCH.rpm


主版本号(MAJOR)重大改进。

此版本号(MINOR):某个子功能发生重大变化

发行号(RELEASE):修正了部分bug,调整了一点功能。


#rpm [OPTION]  PACKAGE

数据库存放在/var/lib/rpm

[OPTION]

-a 显示所有已安装的软件包。

-i 安装。

-e 卸载。

-V 校验已安装的软件包。

校验结果为8个字符表示。

. 通过验证,无问题。

? 无法执行。

S 文件大小变化。

M 模式改变,例如文件类型、权限等。

5 md5值改变。

D 设备主次版本号不匹配。

L readlink不匹配。

U 属主变化

G 属组变化。

T 修改时间变化。


-K 验证软件包。

dsa、gpg 验证来源合法性,即验证签名。

sha1、md5 验证软件包完整性。

--nosignature 只验证来源合法性。

--nodigest 只验证完整性。

--import KEY 导入秘钥文件。

/etc/pli/rpm-gpg/


--rebuilddb 重建数据库。不管数据库是否存在都重新创建。

数据库在/var/lib/rpm/下。

--initdb 初始化数据库。没有才建立,有则不建立。


-h --hash 打印50个#号显示安装进度,每个#号表示2%的进度。

-v 显示详细过程。

-vv 显示更详细的过程。

--nodeps 忽略依赖关系。

--replacepkgs 重新安装,替换原有的安装。

--replacefiles 替换文件。

--oldpackages 降级安装。

--force 强行安装,实现重装或降级。等同于--replacepkgs + --replacefiles + --oldpackages。


-q 查询软件包是否已安装。

-qa 显示所有已安装的包。

-qi 查询软件包的相关信息。

-ql 查询软件包安装后生成的文件列表。

-qf FILE 查询制定的文件是由那个rpm包安装生成的。

-qc 查询软件包生成的配置文件。

-qd 查询软件包生成的帮助文件。

-q --scripts 查询软件包中包含的脚本。包含4类脚本:安装前、后和卸载前、后。

-qpi 查询未安装的软件包的相关信息。

-qpl 查询未安装的软件包生成的文件列表。



-Uvh 升级软件包。如果有旧版本,则升级,若没有则安装新版本。

-Fvh 升级软件包。如果有旧版本,则升级,若没有则退出。


例如:

#rpm -ivh httpd-xxxxx.rpm

#rpm -ivh --force httpd-xxxxx.rpm

#rpm -q httpd-xxxx.rpm

#rpm -qa | grep "httpd*"

#rpm -qi httpd-xxxxx.rpm

#rpm -ql httpd-xxxx.rpm | more

#rpm -qf /etc/yum.conf 

#rpm -Uvh httpd-xxxx.rpm

#rpm -Uvh --oldpackages httpd-old-xxxxx.rpm

#rpm -e --nodeps httpd-xxxx.rpm




yum:

yum仓库中中的元数据文件:

primary.xml.gz

所有RPM包的列表。

依赖关系。

每个RMP安装生成的文件列表。

filelists.xml.gz

当前仓库中所有的RPM包的所有文件列表。

other.xml.gz

额外信息,RPM包的修改日志。

repomd.xml

包含filelists.xml.gz other.xml.gz primary.xml.gz的时间戳和校验和。

comps*.xml

RPM包的分组信息。


yum的配置文件:

/etc/yum.conf


创建yum仓库:

1.拷贝所有的rpm包到目录。

2.使用createrepo命令生成仓库。

3.如果需要建立包组,需要在源文件夹内找到comps*.xml文件。使用-g选项 comps*.xml REPO_dir。


#createrepo [OPTION] REPO_DIR

-g FILE 创建组。需要comps*.xml文件。





为yum定义repo文件:

/etc/yum.repos.d/ repo文件都放在此文件夹下。

格式如下:


[REPO_NAME] repo源的名称。


name=DESCRIPTION 描述信息。


baseurl=REPO_DIR yum仓库的的位置,支持ftp、http、file三种方式。

ftp://

http://

file:///


enabled=0|1 是否启用此repo源,0表示禁用,1表示启用。


gpgcheck=0|1 是否使用gpg验证,0表示禁用,1表示启用,启用要指定gpgkey的路径


gpgkey=KEY_DIR

ftp://

http://

file:///



#yum [OPTION] COMMAND PACKAGE ...

[OPITON]

-y 自动回答为yes。

--nogpgcheck 禁用gpg验证。



COMMAND

list 列表

all 所有。默认。

available 所有可用的。仓库中有但未安装的。

installde 已安装的。

updates 可用的升级。



clean 清理缓存。

packages rpm包。

headers 头部信息。

meatdate 元数据文件。

dbcache rpm库缓存。

all 全部。


repolist 列出repo源列表和简要信息。

all 全部repo源。

enabled 启用的repo源。默认。

disabled 禁用的repo源。



install 安装。


update 升级。


update_to 升级为指定版本。


remove|erase 卸载。

如果包有依赖性关系,则会将所有有依赖关系的包全部卸载。


info 显示包的相关信息。比rpm -qi要简要。


provides|whatprovides 查看文件或特性是由哪个包安装生成的,等同于rpm -qf。


groupinfo GOURPK_NAME 显示指定包组的相关信息。


grouplist 列出所有的软件包组。


groupinstall 安装软件包组。


groupremove 移除软件包组。


groupupdate 升级软件包组。


reinstall 重新安装。


downgrade 降级软件包。


localinstall 安装本地包。



make 项目管理工具

makefile文件

定义了make命令(调用gcc,g++等)按何种次序去编译这些源程序文件中的源程序。


automake --> makefile.in -->makefile

autoconf --> configure


编译安装的3步骤:

前提:需要开发环境(编译环境)

#yum groupinstall "Development Tools" "Development Libaries" ... 


所有操作都是在源码包解压文件目录下操作。


1.#./configure

功能:

1.让用户选定编译特性。

2.检查编译环境。


--help 获取脚本使用格式。

--prefix=INSDIR 指定软件安装位置。

--sysconfigdir=CONFDIR 指定配置文件的路径。


2.#make


3.#make install



编译后执行程序:

1.修改/etc/profile中的PATH环境变量。以此能够识别此程序的二进制文件路径。注销后重新登陆即可生效。

#vim /etc/profile

PATH=$PATH:DIR


或者在/etc/profile.d/目录下建立.sh文件。在里边定义export PATH=$PAHT:DIR



2.创建.conf文件。

默认情况下,系统搜索文件库的路径只有/lib和/usr/lib。要添加额外的搜索路径,要在/etc/ld.so.conf.d/中创建以.conf为后缀名的文件。而后把要增加的二进制文件路径写入此文件中。


#vim /etc/ld.so.conf.d/SWNAME.sh

BINDIR

#ldconfig [OPTION] 重新搜寻库文件。 

-v 显示过程。 


3.头文件

默认位置:/usr/include

增加头文件搜索路径,使用链接进行:

1,把每个头文件链接过去。

ln -s /usr/local/SWNAME/include/* /usr/include/

2.把文件夹链接过去。

ln -s /usr/local/SWNAME/include /usr/include/SWNAME


4.man文件路径:

默认路径在/etc/man.conf配置文件中的MANPAHT字段定义。

#vim /etc/man.config

MANPATH=DIR

或者使用-m DIR 指定软件的man文档位置。每次都得指定路径。

#man -M DIR COMMAND


本文出自 “小私的blog” 博客,请务必保留此出处http://ggvylf.blog.51cto.com/784661/1612478

Linux软件管理

标签:linux   yum   rpm   

原文地址:http://ggvylf.blog.51cto.com/784661/1612478

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!