一、软件管理
静态库 动态库
静态库:在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库
动态库:在程序编译时并不会被连接到目标代码中,而是在程序运行时才被载入。
链接是程序调用库的过程。
静态链接库 动态链接库
静态链接库:把库文件中用到的函数代码直接链接到目标程序,程序运行的时候不再需要它的库文件。
动态链接库:把调用的函数所在的文件模块(DLL)和调用函数在文件中的位置等信息链接进目标程序,程序运行时再从DLL中寻找相应的函数代码, 此需要DLL文件的支持。
编程-->编译-->运行-->链接库
一般编译好的程序有哪些组成部分?
1.可执行文件(二进制文件)
存放地点:/bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin
find / -name *bin -type d /usr/share/locale/bin /usr/local/bin /usr/local/sbin /usr/lib/pm-utils/bin /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/bin /usr/bin /usr/sbin /bin /sbin
通过编译源代码安装的软件,通常都放入/usr/local/SOFTWORE_NAME/
/usr/local/SOFTWORE_NAME/
bin,sbin,lib,man,etc
完成以下任意操作,直接当命令执行
ln -s /usr/local/SOFTWORE_NAME/mysoft /bin/mysoft
PATH=$PATH:/usr/local/SOFTWORE_NAME/bin
2、头文件和库文件
头文件存放在 /usr/include
库文件 /lib /usr/lib /usr/local/lib /lib64
ldconfig -v 查询当前系统中已经加载的库
在 /etc/ld.so.conf.d/下创建一个以.conf为后缀的文件,然后在文件里添加路径
或者 做软链接到/lib
头文件链接到/usr/include
3.配置文件(提供变量)
/etc /usr/etc /usr/local/etc
4.帮助文件
/ussr/share/man
man的配置文件:/etc/man.config
二、rpm及yum
rpm实现的功能:
1.安装软件、查询、升级、校验、卸载
2.创建、维护、清除数据库及其中的记录
3.重建数据库
4.软件直接依赖关系的提示(依赖地狱)
yum:yellowdog update modifier 前台管理工具
帮助rpm解决依赖地狱
rpmfind.net 查找下载rpm安装包
tree -1.5.3-3.el6.i686.rpm tree:软件名称 1.5.3-3: 1:主版本号 5:次版本号 3:修订版本号 -3:修订次数 el6:依赖的操作系统的发行版本(RHEL6) i686:硬件平台 x86_64 sparc ppc:apple noarch:不区分平台,任何平台都可以用
rpm
- 1.安装模式
-i:启用安装模式
-v:显示安装的软件名
-h:显示安装进度
--replacpkgs:安装软件之前不再检查是否已安装
--nodeps:安装软件前不再检查依赖关系
--force:强制安装
①先查看软件包的头部信息,以确认签名是否有效
②准备阶段
1.检查软件包是否已经安装 2.检查软件包是否存在依赖关系 3.备份之前安装过的软件所包含的文件,*.rpmsave 4.如果有,则运行相应的安装脚本
③安装
④清理安装过程中产生的临时文件
⑤更新数据库
mkdir /mnt/cdrom
mount -r /dev/cdrom /mnt/cdrom
rpm -ivh /mnt/cdrom/Packages/tree-1.5.3-2.el6.i686.rpm
- 2.查询模式
-q:开启查询模式的开关
-a:查询所有安装过的软件包
-f:查看文件是哪个软件包安装的
-p:指定软件包
-l:列举包中的文件
-i|--info 软件名:查看软件信息
rpm -qi dhcp
- 3.升级模式
-U:升级软件之前,如果已安装则升级,否则全新安装
-F:只能完成升级安装
--oldpackage:降级
- 4.校验模式
-V:校验,检查软件包和已安装文件的状态是否有变化
rpm -V
-K 软件包:检查,来源是否可靠,签名是否可以认证
--import:导入官方的公钥文件
/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
- 5.卸载模式
-e 软件名:卸载模式的开关
--nodeps:卸载前不考虑依赖关系
- 6.重新构建数据库
--rebuilddb:重新构建
--initdb:初始化创建数据库
单向加密:用特定的方法对某个数据进行特征值(电子指纹)计算
先用单向加密对软件包抽象特征值,每个软件包都有唯一的特征值,再用私钥加密特征值,客户端用获得的公钥解密特征值,再用同样的
单向加密算法,重新计算软件的特征值
单向加密确定完整性
校验机制确定私密性
readlink 获取链接文件的路径.
yum
语法格式:
yum [options] [command] [package..] options:普通选项 -y:所有的yum问题都以“yes”作为回答的内容 --nogpgcheck:不检查数据签名 command: install update remove|erase list groupinstall
yum有元数据数据库 metadata--*.xml
软件仓库:repository
ls /mnt/cdrom/Server/repodata
createrepo:创建软件元数据库
配置yum源的软件仓库:/etc/yum.repos.d/*.repo
vim /etc/yum.repos.d/local.repo (同一个yum源可以写很多个仓库) [localrepo] #仓库名 name=local cdrom repo baseurl=file:///mnt/cdrom #file协议是本地文件查找协议 enabled=1 #开启软件仓库 gpgcheck=0 #是否检查数字签名 [ftp] name=ftp repository baseurl=ftp://172.16.0.1/Server #必须有repodate文件 enabled=1 gpgcheck=0
全局配置文件:/etc/yum.conf
ls /var/cache/yum/i386/6Server/localrepo/ 缓存目录
yum -y install createrepo