您的位置:首页 > 运维架构 > Linux

linux软件管理学习笔记

2017-05-13 15:30 369 查看
一、软件主要组成

1.二进制程序              --> /bin  /sbin

2.用于导出功能的库和头文件  --> /lib /usr/include

3.配置文件                --> /etc

4.使用帮助                --> /usr/share/man

其中

/etc、/bin、/sbin、 /lib是系统*启动*时就要使用的,必须位于根文件系统中;

/usr/bin、/usr/sbin、/usr/lib 是系统提供的*核心功能*,可以单独分区以便重装系统后直接使用;

/usr/local/bin、/usr/local/sbin、/usr/local/lib、/usr/local/man是*第三方软件*安装的地方,所有相关文件都和系统文件都自成一体,建议单独分区;

########################  UDEV  #################################

linux 2.6之前

/dev目录下所有的设备文件都耍预先创建,以备不时之用

linux 2.6.x+改善

udev机制可以动态创建/dev目录下的文件,还引入了设备别名的概念

#################################################################

二、软件包管理器

手工管理软件相关文件太麻烦(主要是卸载不方便),于是就产生了专门管理软件相关文件的软件---软件管理器,如dpt,rpm

主要功能:

1.把bin文件、lib文件、etc文件和man文件打包成一个文件; (rpm-build)

2.维护一个数据库(/var/lib/rpm/*)

    追踪所安装的每一个文件,方便卸载的时候完全清除;

    软件本身的签名,方便软件校验;(rpm)

    文件-->包的查询和包-->文件的查询;

3.安装、查询、卸载、升级、数据库重建,验证数据包

处理依赖关系的前端工具:RPM-->yum,dpt-->apt-get

############################################################################

yum仓库中的元数据文件

1.primary.xml.gz

    仓库rpm包列表

    依赖关系

    每个rpm安装生成的文件列表

2.filelists.xml.gz

    当前仓库里所有RPM包的安装生成的文件列表

3.other.xml.gz

    RPM包的修改日志

4.repomd.xml

    记录上面三个文件的时间戳和校验和

5.comps*.xml

    RPM分组信息

############################################################################

三、rpm安装包

1.命名规则:

    name-version-release-arch.rmp



    bind-9.7.1-1.el5.i586.rpm        (主功能包)

    bind-libs-9.7.1-1.el5.i586.rmp   (补充包)

2.类型:

二进制格式 && 源码格式

3.安装

rpm -ivh /path/to/xx.rpm

    --nodeps, 忽略依赖安装

    --replacepkgs,重新安装

    --oldpackage,回退版本安装

    --force,不管是不是重新,还是回退,强行安装(do what I said!)

4.查询

rpm -qa, 查询所有已安装软件包;

rpm -q name, 查询软件name是否已经安装;

rpm -qi name, 查询已安装软件包相关介绍信息;

rpm -ql name, 查询软件包安装了哪些文件;        (包-->文件)

rpm -qf /path/to/file, 查询文件属于哪个软件包; (文件-->包)

rpm -qc name, 查询软件包安装的配置文件configure;

rpm -qd name, 查询软件包安装的帮助文件document;

rpm -q --scripts name, 查看软件包中包含的安装脚本;

rpm -qip /path/to/package, 将要安装的软件包的信息;

rpm -qlp /path/to/package, 将要安装的软件包会产生的文件列表;

5.升级

rpm -Uvh /path/to/package, 如果对应的软件已安装则升级,否则安装对应的软件包;

rpm -Fvh /path/to/package, 如果对应的软件已安装则升级,否则退出;

    --oldpacage, 升级到老版本;

6.卸载

rpm -e name --nodeps, 卸载已安装软件,无视依赖;

7.校验

rpm -V name, 校验已安装软件包

8.来源合法性和完整性校验

来源合法性-->私钥加密数据包的摘要 (dsa,gpg)

完整性-->HASH                     (sha1,md5)

rpm --import /path/to/gpgfile, 导入密钥文件

rpm -K /path/to/package, 检验软件包

9.重建数据库

rpm --rebuilddb, 重建数据库;

四、yum

作为rpm的前端,为了自动解决rpm依赖而生的

1.定义repo

新建一个.repo文件,放到/etc/yum/repo.d/目录下,并且内容如下:

[repo-id]      ;仓库唯一标识

name=Description    ;仓库描述信息

baseurl={ftp://|http://|file:///}    ;仓库位置信息

enabled={1|0}

gpgcheck=1

gpgkey=/path/to/gpgkey_file

2.yum命令

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

options:

    * -y,直接回答yes

    * --nogpgcheck

command:

    *list  (支持glob通配)

       all,默认列出所有

       available,列出仓库里有但未安装

       updates,可用的升级

    *clean

       清理缓存

    *repolist

       all,显示所有repo列表及其简要信息

       enable,默认只显示启用的repo

       disable,显示未启用的repo

    *install num,安装软件包

    *localinstall /path/to/package, 本地安装rpm,并自动解决依赖关系

    *update, update_to,升级

    *remove, erase,卸载

    *groupinstall, grouplist, groupinfo, groupremove, groupupdate

    

五、源码安装

1.必要性:

    rpm包可能没有提供需要的选项,

    rpm版本落后

    源码安装可以深度定制

2.步骤:

./configure

make

make install

3.收尾工作
导出二进制文件所在位置到PATH变量中,在/etc/profile.d/xx.sh中输入export PATH=$PATH:/path/to/xxx;

导出所提供的lib所在位置到/etc/ld.so.conf.d/xx.conf文件中,并执行ldconfig -v使其立即能被其它程序使用;

导出lib对应的头文件到/usr/include中,ln -s /path/to/package_include /usr/include/package;

导出man文件路径至MANPATH中(定义在/etc/man.config),或直接使用man -M /path/to/man_dir 指定man文件目录;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux rpm yum