源码包
源码包需要先编译成二进制包,再进行安装,因此安装较慢。
源码包中还有一种比较特殊的包叫脚本安装包,这种包不需要手动安装,但这种包不多。
二进制包(RPM包、系统默认包)
二进制包是通过源码包编译后产生的,安装起来较快,但不能看到源代码。
优点
缺点
优点
缺点
httpd-2.2.15-15.el6.centos.l.i686.rpm
httpd 软件包名
2.2.15 软件包版本
15 软件发布次数
el6.centos 适合的Linux平台
i686 适合的硬件平台
rpm rpm包扩展名
树形依赖:a→b→c
通俗来说就是装软件包a,要先装软件包b,装软件包b又要先装软件包c。
环形依赖:a→b→c→a
解决环形依赖的方法就是a、b、c同时安装。
模块依赖:模块依赖查询网站
rpm -ivh 包全名
选项:
-i(install) 安装
-v(verbose) 显示详细信息
-h(hash) 显示进度
--nodeps 不检测依赖性
下面装一个Apache软件包来演示一下
首先创建挂载点,挂载进去后再进入光盘目录下:
[root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]# mount /dev/sr0 /mnt/cdrom
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# cd /mnt/cdrom
[root@localhost cdrom]# ls
CentOS_BuildTag images repodata
EFI isolinux RPM-GPG-KEY-CentOS-7
EULA LiveOS RPM-GPG-KEY-CentOS-Testing-7
GPL Packages TRANS.TBL
然后进入到Packages目录下:
[root@localhost ~]# mkdir /mnt/cdrom/Packages
由于操作的是未安装包,因此我们使用包全名,还要注意,如果没有进Packages目录,安装时需要写明路径。
我们先输入包名httpd-然后按Tab键就可以列出目录中所有以**httpd-**的安装包。
[root@localhost Packages]# rpm -ivh httpd-
httpd-2.4.6-95.el7.centos.x86_64.rpm
httpd-devel-2.4.6-95.el7.centos.x86_64.rpm
httpd-manual-2.4.6-95.el7.centos.noarch.rpm
httpd-tools-2.4.6-95.el7.centos.x86_64.rpm
这四个都是Apache的必须包,一般情况下先装主包,再装附加包。
那么我们先装主包。
[root@localhost Packages]# rpm -ivh httpd-2.4.6-95.el7.centos.x86_64.rpm
这时会报依赖性错误,并提示缺少哪几个包。
那么我们就先来安装这提示缺少的几个包先来安装第一个。
先把提示性信息写下来再按Tab键自动补全。
[root@localhost Packages]# rpm -ivh httpd-tools-2.4.6-95.el7.centos.x86_64.rpm
然后又报了依赖性错误。
并且这里依赖的是模块,不知道要装什么包。
那么就需要我们上面提到的模块依赖查询网站进行查询。
我的是CentOS7.9,回到终端装上装对应的包。
[root@localhost Packages]# rpm -ivh apr-1.4.8-7.el7.x86_64.rpm
同样,第二个模块依赖也用同样的方法解决。
完成后,再安装httpd-tools-2.4.6-95.el7.centos.x86_64.rpm就不会报错了。
[root@localhost Packages]# rpm -ivh httpd-tools-2.4.6-95.el7.centos.x86_64.rpm
好了,依赖的包都安装好了,接下来我们就能成功安装主包了。
[root@localhost Packages]# rpm -ivh httpd-2.4.6-95.el7.centos.x86_64.rpm
很不幸的是,经过这一通操作,我们只是装了主包,还有三个附加包还未安装。
经过同样的操作,我们再把三个附加包也安装好。
rpm -Uvh 包全名
注意:U是大写。
rpm -e 包名
选项:
-e 卸载
--nodeps 不检查依赖性
注意:不一定在Packages目录下执行,而且只用包名即可,不需要包全名。
例如我卸载刚刚的Apache:
[root@localhost cdrom]# rpm -e httpd
但报了依赖性错误,如下图:
这时我们把先两个依赖的包卸载,再回头卸载httpd即可。
rpm -q 包名
rpm -qa (查询所有安装的rpm包)
rpm -qi 包名
选项:
-i 查询软件信息
-p 查询未安装包信息
rpm -ql 包名
选项:
-l 列表(list)
-p 查询未安装包信息
rpm -qf 系统文件名
选项:
-f 查询系统文件属于哪个软件包
rpm -qR 包名
rpm -qRp 包全名(查询未安装包的依赖性)
rpm -V 包名
验证内容中的8个信息的含义:
S 文件大小是否改变
M 文件的类型或文件的权限(rwx)是否被改变
5 文件MD5校验和是否改变(可以看成文件内容是否改变)
D 设备的中,从代码是否改变
L 文件路径是否改变
U 文件的所有者是否改变
G 文件的所属组是否改变
T 文件的修改时间是否改变
rpm2cpio 路径+包全名 | cpio -idv .绝对路径
rpm2cpio
#将rpm包转换为cpio格式的命令
cpio
#是一个标准工具、它用于创建软件档案文件和从档案文件中提取文件
先用命令ifconfig查看网关,我的是ens33,然后执行下列命令,注意最后一个改为你自己的网关:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
然后将文件里的OMBOOT=“no"改成OMBOOT=“yes",保存退出。
再用以下命令重启网络服务:
service network restart
现在就可以ping通百度了。
如果无法ping通的可以参考下面这篇文章:
VMware下centos7配置静态ip并解决ping不通百度的问题
网络yum源本身已经配好了,不需要我们再配置,我们下面来看看它的配置文件的含义就好了。
首先打开配置文件:
vi /etc/yum.repos.d/CentOS-Base.repo
下面来解释一下红框中的东西是什么含义:
[base] 容器说明,要放在[]中
name 容器说明,可以随便写
mirrorlist 镜像站点,可以注释掉
baseurl yum源服务器的地址。默认是CentOS官方的yum源服务器, 可以改成其他yum源地址
enable 不写或写成
查询
yum list #查询所有可用软件包列表
yum search 关键字 #搜索服务器上所有和关键字相关的包
安装
yum -y install 包名
升级
yum -y update 包名
卸载
yum -y remove 包名
yum grouplist #列出所有可用的软件组列表
yum groupinstall 软件名 #安装指定软件组,注明可以由grouplist查询出来
yum groupremove 软件组组名 #卸载指定软件组
首先挂载光盘:
mount /dev/cdrom /mnt/cdrom
进入目录:
cd /etc/yum.repos.d/
然后让网络yum源文件失效,只有网络yum源文件失效光盘yum源文件才起作用。
注意只有下图红框圈出的为光盘yum源,也就是其他7个都是网络yum源文件。
这时我们将网络yum源的名字改一下就可以让其失效。
mv CentOS-Base.repo CentOS-Base.repo.bak
mv CentOS-Vault.repo CentOS-Vault.repo.bak
mv CentOS-fasttrack.repo CentOS-fasttrack.repo.bak
mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
mv CentOS-CR.repo CentOS-CR.repo.bak
mv CentOS-Sources.repo CentOS-Sources.repo.bak
mv CentOS-x86_64-kernel.repo CentOS-x86_64-kernel.repo.bak
下面再来修改光盘yum源文件:
vim CentOS-Media.repo
这样就搭建好光盘yum源了,用光盘yum源的好处是可以离线下载,且下载更快。
但版本不会自动更新,即下载的可能不是最新版本。
安装在默认位置
安装在指定位置,一般是**/usr/local/软件名/**
#直接通过绝对路径开启服务
/etc/rc.d/init.d/httd start
#利用systemctl服务管理命令开启服务,使用systemctl会自动到绝对路径下去找httpd
systemctl start httpd
rpm -q gcc
tar -zxvf httpd-2.4.52.tar.gz
cd httpd-2.4.52/
在目录下有一个叫ISTALL的文件,我们打开它,里面有安装步骤,我们照做就行。
- 定义需要的功能选项。
- 检测系统环境是否符合安装要求。
- 把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用 于后续编辑。
./configure --prefix=/usr/local/apache2
make 编译
make install 编译安装
安装完毕,启动
/usr/local/apache2/bin/apachectl start
这时会有一个报错,但不影响使用。
然后在浏览器中输入我们虚拟机的ip地址,就能显示It works!
不需要卸载命令,直接删除安装目录即可,不会遗留任何垃圾文件。
rm -rf /usr/local/apache2/
要根据这个软件包的用途进行选择,如果是对外提供访问的,访问量大,则用源码包,源码包经过编译,计算效率更高。
如果不对外提供访问,则可以用RPM包进行安装。
下面已安装软件包Webmin为例进行演示:
tar -zxvf webmin-1.984.tar.gz
cd webmin-1.984
执行安装脚本。
目录下的setup.sh就是安装脚本
./setup.sh
全部回车默认即可,我这里的默认端口号是10000,安装完毕后,在浏览器输入ip地址加端口号即可访问。
参考资料:
[1]https://blog.csdn.net/qq_33355821/article/details/100667144
[2]https://www.bilibili.com/video/BV1mW411i7Qf