linux软件管理学习笔记

一、软件主要组成
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文件目录;


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值