一、rpm
这是一个数据库管理工具,可以通过读取数据库,判断软件是否已经安装,如果已经安装可以读取出来所有文件的所在位置等,并可以实现删除这些文件。
查询已安装的rpm软件信息
rpm -q 软件名 #查询指定软件是否已安装
rpm -qi 软件名 #显示已安装的指定软件的详细信息
rpm -ql 软件名 #显示已安装的指定软件的文件列表
rpm -qc 软件名 #列出已安装的指定软件的配置文件
rpm -qd 软件名 #列出已安装的指定软件的软件包文档所在位置
rpm -qR 软件名 #列出已安装的指定软件的依赖的软件包及文件
rpm -qf 文件或目录 #查询已安装的指定软件属于哪个安装包
rpm -qa #显示当前系统中以 rpm方式安装的所有软件列表
rpm -qa | grep -i postfix #查询软件postfix是否已安装
查询未安装的 RPM 软件包文件中信息
rpm -qpi RPM包文件名 #查询指定软件包的详细信息
rpm -qpl RPM包文件名 #查询指定软件包的文件列表
rpm -qpc RPM包文件名 #查询指定软件包的配置文件
rpm -qpd RPM包文件名 #查询指定软件包的软件包文档的位置
安装、升级、卸载 RPM 软件包
格式:
rpm [选项] RPM包文件
常用选项:
-i:安装一个新的 RPM 软件包。
-U:升级某个软件包,若未安装过,则进行安装。
-F:升级某个软件包,若未安装过,则放弃安装。
-h:在安装或升级软件包的过程中,以“#”号显示安装进度。
-v:显示软件安装过程中的详细信息。
–force:强制安装某个软件包,比如要安装版本更旧的软件包
维护RPM数据库
1.重建 RPM 数据库
当 RPM 数据库发生损坏,可通过 重建RPM数据库 修复
rpm --rebuilddb 或者 rpm --initdb
2.导入验证公钥
在没有导入用于数字签名验证的公钥文件之前,安装光盘中的一部分RPM软件包时会报错。需要向RPM数据库中导入位于光盘根目录下的公钥文件
mount /dev/sr0 /mnt/
rpm --import /mnt/RPM-GPG-KEY-CentOS-7
二、源代码编译概述
tar 解包
./configure配置
make编译与make install安装
测试、应用、维护软件
注意:还要 cd /usr/local/apache/bin,在bin/里关掉防火墙,最后再 netstat -antp | grep 80
测试结果
tar -jxvf ttpd-2.4.29.tar.bz2
cd httpd-2.4.29/
yum -y install apr* gcc* pcre* #httpd的安装环境
./configure --prefix=/usr/local/apache #指定安装路径
make && make install #编译及安装
mount /dev/sr0 /mnt #挂载
netstat -antp | grep 80 #查找80端口是否使用
cd /usr/local/apache/bin
systemctl stop firewalld #在bin下 关掉防火墙
netstat -antp | grep 80
systemctl restart httpd
地址是虚拟机的ip地址,末尾还要加端口号80。如:192.168.1.10:80
三、yum
yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。解决了日常工作中的大量查找安装依赖包的时间。
为什么会有依赖关系的发生因为linux本身就是以系统简洁为自身优势,所以在安装操作系统的时候并没有将所有的库文件以及编译软件包进行安装,所以在linux操作系统上进行软件安装的时候会出现软件包依赖的情况。yum由仓库和客户端组成,也就是整个yum由两部分组成,所以yum可以存放在两台服务器上。也可以存放在一台服务器上。可以有官方来提供服务,也可以由第三方来提供,比如国内的阿里云,搜狐云,还有一些非盈利组织比如学校等。官方的源一般在国外,下载速度肯定有限,手动更改成国内的云可以大幅提升下载速度。
yum实现过程
先在yum服务器上创建yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装时包时,会自动下载repodata中的元数据,查询远数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir backup
[root@localhost yum.repos.d]# mv CentOS* backup/
[root@localhost yum.repos.d]# vim ky27.repo
[root@localhost yum.repos.d]# yum clean all
[root@localhost yum.repos.d]# yum makecache #重新加载源数据
[root@localhost yum.repos.d]# mount /dev/cdrom /mnt/ #挂载
[root@localhost yum.repos.d]# rpm -q httpd #查找httpd包
[root@localhost yum.repos.d]# yum -y install httpd #安装依赖关系的包
[root@localhost yum.repos.d]# yum list httpd ##查找信息
[root@localhost yum.repos.d]# yum info httpd #查看版本信息
[root@localhost yum.repos.d]# yum provides httpd #精确查找在线源
[root@localhost yum.repos.d]# yum whatprovides httpd #精确查找
[root@localhost opt]# mount /dev/cdrom /opt/test
[root@localhost yum.repos.d]# umount /dev/cdrom /mnt #解挂载
[root@localhost yum.repos.d]# yum -y install tree
[root@localhost yum.repos.d]#wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost yum.repos.d]# yum clean all && yum makecache
[root@localhost yum.repos.d]# cd /var/www/html
[root@localhost html]# vim index.html #编写Hello,world!
[root@localhost yum.repos.d]# systemctl restart httpd
[root@localhost yum.repos.d]# systemctl status httpd #查看服务日志
[root@localhost yum.repos.d]rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
[root@localhost yum.repos.d]yum -y install nginx
[root@localhost yum.repos.d]# systemctl restart nginx
[root@localhost yum.repos.d]cd /etc/httpd/conf/
[root@localhost conf]vim httpd.conf #更改端口号80为8080
[root@localhost conf]# systemctl restart httpd