软件包管理
软件包管理:
前端工具:yum,apt-get
后端工具:RPM,dpt
rpm命令:
rpm:
数据库:/var/lib/rpm
rebuild:
rpm命令:
包:组成部分
主包:
bind-9.7.1-1.i586.e15.rpm
子包:
bind-libs-9.7.1-1.e15.i586.rpm
bind-utils-9.7.1-1.e15.i586.rpm
包名格式:
name-version-release.arch.rpm
name-major.minor.release-release.arch.rpm
主版本号:重大改进
此版本号:某个子功能发生重大变化
发行号:修正了部分bug,调整了一点功能
bind-9.7.1.tar.gz
rpm包:
二进制格式
rpm包作者下载源程序,编译配置完成后,制作成RPM包
bind-9.7.1-1.i686.rpm
bind-9.7.1-1.x64.rpm
bind-9.7.1-1.noarch.rpm
查看系统版本:uname -r;或uname -a;
1.安装:
rpm -i /PATH/TO/PACKAGE_FILE
-h 以#显示进度,每个#表示2%
-v 显示详细信息
-vv 更详细的过程
--nodeps 忽略依赖关系(装上去无法正常使用)
--force 强行安装,可以实现重装或降级
--replacepkgs 重新安装,替换原有安装
--test 测试是否能安装成功
常用 -ivh
2.查询
rpm -q PACKAGE_NAME 查询指定的包是否已经安装
-qa:查询已经安装的所有包
rpm -qi PACKAGE_NAME 查询指定包的说明信息;
rpm -ql PACKAGE_NAME 查询指定包安装后生成的文件列表;
rpm -qc PACKAGE_NAME 查询指定包安装的配置文件;
rpm -qd PACKAGE_NAME 查询指定包安装的帮助文件;
rpm -q --scripts PACKAGE_NAME 查询指定保重包含的脚本
rpm -qf /PATH/TO/PACKAGE_FILE 查询指定的文件是由哪个rpm包安装生成的;
如果某rpm包尚未安装,我们需要查询其说明信息、安装以后会生成的文件:
rpm -qpi /PATH/TO/PACKAGE_FILE
rpm -qpl /PATH/TO/PACKAGE_FILE
3.升级
rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE 如果有老版本的,则升级;否则,则安装
rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE 如果有老版本的,则升级;否则,退出
--oldpackage 降级
4.卸载
rpm -e PACKAGE_NAME
--nodeps PACKAGE_NAME
5.校验
rpm -V PACKAGE_NAME 校验安装后的文件是否完整
6.重建数据库
rpm
--rebuilddb:重建数据库,一定会重新创建;
--initdb:初始化数据库,有就建立,没有就不建立;
7.检验来源合法性,及软件包完整性:
对称:加密解密使用同一个密钥
公钥:一对儿密钥,公钥,私钥:公钥隐含于私钥中,可以提取出来,并公开出去
单向:
ls /etc/pki/rpm-gpg/
RPM-GPG-KEY-REHAT-release
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-REHAT-release:导入密钥文件
rpm -K /PATH/TO/PACKAGE_FILE
dsa,gpg:验证来源合法性,也即验证签名:可以使用--nosignature,略过此项
sha1,md5:验证软件包完整性:可以使用--nodigest,略过此项
定制:手动编译安装
编译环境,开发环境
开发库,开发工具
Linux:c
GNU:c
c,c++,perl,java,python
gcc:GNU c Complier 编译c
g++:编译c++
make:项目管理工具
makefile:定义了make(gcc,g++)按何种次序去编译这些源程序文件中的源程序
automake,--->makefile.in---->makefile
autoconf,--->configure
make install
编译安装的三步骤:
前提:准备开发环境(编译环境)
安装"Development Tools"和"Development Libraries"
1.解压缩
2. ./configure
--help
--prefix=/path/to/somewhere
--sysconfdir=/PATH/TO/CONFFILE_PATH
功能:1.让用户选定
3.make
4. make install
具体步骤:
1.tar xf tengine-1.4.2.tar.gz
2../configure --prefix=/usr/local/tengine --conf-path=/etc/tengine/tengine.conf
3.make
4.make install
5./usr/local/tengine/sbin/nginx
1.修改PATH环境变量,以能够识别此程序的二进制文件路径;(修改/etc/profile文件)
或在/etc/profile.d/目录建立一个以.sh为名称后缀的文件,在里面定义export PATH=$PATH:/path/to/somewhere
2.默认情况下,系统搜索库文件的路径/lib,/usr/lib;要增添额外搜寻路径;
在/etc/ld.so.conf.d/中创建以.conf为后缀名的文件,而后把要增添的路径直接写至此文件中;
查看:
ldconfig通知系统重新搜寻库文件
-v:显示重新搜寻库的过程
3.头文件:输出给系统
默认:/usr/include
增添头文件搜寻路径,使用连接进行:
/usr/local/tengine/include/ /usr/include/
两种方式:
ln -s /usr/local/tengine/include/* /usr/include/或
ln -s /usr/local/tengine/include /usr/include/tengine
4.man文件路径:安装在--prefix指定的目录下的man目录:/usr/share/man
1.man -M /PATH/TO/MAN_DIR COMMAND(每次都要这么用)
如:man -M /usr/local/apache/man htpasswd
2.在/etc/man.config中添加一条MANPATH
可以配置环境变量:/etc/profile:
PATH=$PATH:/usr/local/tengine/sbin
export PATH USER LOGNME MAIL HOSTNAME HISTSIZE INPUTRC
让配置生效:
source /etc/profile或者重启
netstat命令:
-r:显示路由表
-n:以数字方式显示
-t:建立tcp连接
-u:显示udp连接
-l:显示监听状态的连接
-p:显示监听的套接字的进程的进程与及进程名
yum:
yum仓库中的元数据文件:
primary.xml.gz:
所有RPM包的列表;
依赖关系;
每个RPM安装生成的文件列表;
filelist.xml.gz:
当前仓库中所有RPM包的所有文件列表;
other.xml.gz:
额外信息,RPM包的修改日志;
repomd.xml:
记录的是上面三个文件的时间戳和校验和;
comps*.xml:
RPM包分组信息;
/etc/yum.conf:如何定义yum仓库配置文件
定义仓库:1.在/etc/yum.repos.d文件目录下创建以.repo文件
2.在文件中添加仓库,如/etc/yum.conf中定义的格式
repo文件:
[Repo_id]
name=Description
baseurl=
ftp://
http://
file:///
enable={0|1}(默认1)
gpgcheck={0|1}(默认1)
gpgkey=
yum createrepo 仓库路径(没有repomd.xml等文件,所以要用命令创建)
注意:此时没有comps*.xml文件,所以要将comps*.xml加入到仓库中,使用以下命令:
createrepo -g /root/comps-rhel5-vt.xml /yum/VT (这里/root/comps-rhel5-vt.xml是从DVD仓库中复制出来的,/yum/VT是要新建的yum仓库)
yum clean all
yum [options] [command] [package...]
yum list:列表
yum list
支持glob(类似正则表达式)
all:所有的
available:可用的,仓库中有但尚未安装的
installed:已经安装的
updates:可用的升级
clean:清理缓存
[packages | haeaders | metadata | dbcache | all]
install:安装
yum install PACKAGE_NAME
-y:自动回答yes
--nogpgcheck
update:升级
update_to:升级为指定版本
remove|erase:卸载
info:
provides | whatprovides:查看指定的文件或特性是由哪个包安装生成的;
localinstall 文件名(文件包名)安装本地文件,自动安装依赖仓库中的软件包
组:
yum
groupinfo
grouplist
groupinstall
groupremove
groupupdate
repolist:显示repo列表及其简要信息
all
enabled:默认
disabled
将dvd作为软件仓库:
加载光驱;
挂载光驱:mount /dev/cdrom /media/cdrom

浙公网安备 33010602011771号