软件包管理(rpm yum)
1.rpm包管理
rpm包命名方式:
源代码:name-VERSION.tar.gz|bz2|xz
VERSION:major.minor.release
name-VERSION-release.arch.rpm
例:bash-4.2.46-19.el7.x86_64.rpm
VERSION:major.minor.release
release:release.OS
常见的arch:
x86:i386,i486,i586,i686
x86_64:x64,x86_64,amd64
noarch(与平台无关)
包:分类和拆包
Application-VERSION-ARCH.rpm:主包
Application-devel-VERSION-ARCH.rpm:开发子包
Application-utils-VERSION-ARCH.rpm:其他子包
Application-libs-VERSION-ARCH.rpm:其他子包
包之间:可能存在依赖关系,甚至循坏依赖
解决依赖包管理工具
yum:rpm包管理器的前端工具
查看二进制程序所依赖的库文件
ldd /PATH/TO/BINARY_FILE
管理和查看本机装载的库文件
ldconfig -p 显示本机已经缓存的所有可用库文件名及文件路径映射关系
配置文件:/etc/ld.so.conf,/etc/ld.so.conf.d/*.conf
缓存文件:/etc/ld.so.cache
程序包管理器:
功能:将编译好的应用程序软件的各组成文件打包成一个或几个程序包文件,从而方便快捷地实现程序包的安装、卸载、查询、升级和校验等管理操作
包组成文件(每个包独有)
rpm包内的文件
rpm的元数据,如名称,版本,依赖性,描述等
安装或卸载时运行的脚本
数据库(公共):/var/lib/rpm 记录所有元数据相关,对查询包有影响
程序包名及版本
依赖关系
功能说明
包安装后生成的各文件路径及校验码信息
管理程序包的方式:
使用包管理器:rpm
使用前端工具:yum,dnf
rpm包管理
Centos系统上使用rpm命令管理程序包
安装、卸载、升级、查询、校验、数据库维护
安装:
rpm {-i|--install} [install -options] PACKAGE_FILE...
-v:verbose
-h:以#显示程序包管理执行进度
[install -options]
--test:测试安装,但不真正执行安装
--nodeps:忽略依赖关系
--replacepkgs|replacefiles:在包已经被安装的情况下可以重新安装
--nosignature:不检查来源合法性
--nodigest:不检查包完整性
--noscripts:不执行程序包脚本
升级:(升级内核的时候建议不要用升级操作,Linux支持多内核共存)
rpm -Uvh PACKAGE_FILE...
rpm -Fvh PACKAGE_FILE...
--force 强制升级
查询:
rpm {-q|--query} [select-options] [query-options]
常用用法:
rpm -q vsftpd 查看包是否装好
rpm -qa 查看所有已安装的包,可以配合grep查询想查的包是否安装
rpm -qf /PATH/FILE 查看磁盘上的某个文件是由哪个包安装生成的
rpm -ql vsftpd 查询vsftpd包安装后产生的文件
rpm -qc vsftpd 查询vsftpd包安装后产生的配置文件
rpm -qi vsftpd 查询vsftpd包的相关信息
rpm -qpl 查询尚未安装的程序包文件安装后产生的文件
-p:针对尚未安装的程序包
rpm -q --whatprovides bash 查询bash这个程序是从哪个程序包提供的
rpm -q --scripts 查询程序包所执行的脚本
卸载:卸载的时候也会有包依赖性等问题
rpm -e PACKAGE
rpm -e --allmatches PACKAGE 如果包有多个版本的话,卸载会报错。
校验:
rpm -V PACKAGE
返回的结果查看问题
如果rpm程序本身被卸载了的话,可以进入救援模式,把包重新安装到根目录下
2.yum管理
yum原理
配置文件:/etc/yum.conf 为所有仓库提供公共配置
容易出错的两个点
1:配置文件错误
2:yum cache出现问题,可以尝试清空缓存
配置仓库配置文件filename.repo
[base] repoid
name=base 描述的语句
baseurl=file:///mnt 如果是本地光盘,路径要指向repodata(存放元数据信息)的父目录 支持http/https/ftp/file等
pgpcheck=0 pggcheck检查包的完整性和标签
gpgkey=file:///PATH/file 这个参数是用来导入密匙,检查包的完整性和标签
yum repolist可以查看有几个仓库
yum cache
/etc/yum.conf记录了yum cache路径 cachedir=/var/cache/yum/$basearch/$releasever
清空缓存 yum clean all 也可以直接删除/var/cache/yum/下的所有文件
yum llist 查看仓库中所有的包
禁用yum源,在配置文件中加入enabled=0
yum日志位置:/var/og/yum.log
yum的repo配置文件中可用的变量
$releasever
$arch
$basearch
实例:
http://server/centos/$releasever/$basearch
神奇的文件夹/misc/cd 通过安装autofs这个包来实现
创建yum仓库
createrepo [OPTION] <directory>
createrepo /PATH/file(rpm包所在路径)
3.编译安装httpd
互联网上的源码包编译成程序
C语言源代码编译安装三步骤;
1 ./configure
(1)通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及makefile.in文件生成makefile
(2)检查依赖到的外部环境,如依赖的软件包
2.make 根据makefile文件,构建应用程序
3.make install 复制文件到相应路径
准备:
1.关闭防火墙
centos6:service iptables stop;chkconfig iptables off 临时;永久
centos7:systemctl stop firewalld;systemctl disable firewalld
2.关闭selinux
sentenforce 0 临时关闭
vim /etc/selinux/config 永久关闭
SELINUX=disabled
1yum groupinstall "development tools"
yum install openssl-devel
2.download src
tar xvf httpd-X.tar.gz
3.cd httpd-2.2.34
cat README
cat INSTALL
4../configure --help
./config --prefix=/app --sysconfdir=/etc/httpd2 --enable-ssl
5.make -j -4 && make install
6.vim /etc/profile.d/env.sh 修改环境变量
7.apachectl start