CentOS挂载光盘镜像安装rpm包

运维同事给的Linux服务器装软件时缺少很多命令,系统安装镜像中有大部分命令的安装包,如centos7在Packages文件夹,centos8在BaseOS/Packages中,默认不安装。可通过挂载安装rpm文件,若不知需装哪些包,可全部安装,因安装包有相互依赖关系。

前言

之前运维的同事给了一台Linux服务器,上去装软件,发现缺少很多命令,比如编译用的make命令。其实系统安装镜像中大部分的命令都会有安装包,centos7在Packages文件夹中,centos8在BaseOS/Packages中,不过默认是不安装的,现在记录下,利用挂载安装这些rpm文件。

具体步骤

[root@localhost ~]# mkdir /root/cdrm/

[root@localhost ~]# mount -o loop /dev/cdrom /root/cdrm/ #挂载光盘镜像

[root@localhost ~]# cd /root/cdrm/Packages/ #进入安装包目录

[root@localhost Packages]# ls -al|wc -l #查看当前目录下安装包的个数

4188

[root@localhost Packages]# ls -al |grep dnsmasq #查找需要的安装包

-r--r--r-- 2 root root   152780 Jun 16  2014 dnsmasq-2.48-14.el6.x86_64.rpm

[root@localhost Packages]# rpm -qa dnsmasq #查看是否安装

[root@localhost Packages]# rpm -ivh  dnsmasq-2.48-14.el6.x86_64.rpm #开始安装

Preparing...                ########################################### [100%]

   1:dnsmasq                ########################################### [100%]

[root@localhost Packages]# rpm -qa dnsmasq #查看

dnsmasq-2.48-14.el6.x86_64

[root@localhost Packages]# rpm -ql dnsmasq #安装包生成的文件

/etc/dbus-1/system.d/dnsmasq.conf

/etc/dnsmasq.conf

/etc/dnsmasq.d

/etc/rc.d/init.d/dnsmasq

/usr/sbin/dnsmasq

/usr/share/doc/dnsmasq-2.48

/usr/share/doc/dnsmasq-2.48/CHANGELOG

/usr/share/doc/dnsmasq-2.48/COPYING

/usr/share/doc/dnsmasq-2.48/DBus-interface

/usr/share/doc/dnsmasq-2.48/FAQ

/usr/share/doc/dnsmasq-2.48/doc.html

/usr/share/doc/dnsmasq-2.48/setup.html

/usr/share/man/man8/dnsmasq.8.gz

/var/lib/dnsmasq

[root@localhost Packages]# rpm -qc dnsmasq #查看包的配置文件

/etc/dbus-1/system.d/dnsmasq.conf

/etc/dnsmasq.conf

[root@localhost Packages]# rpm -ql dnsmasq|grep bin  #查看包生成的二进制文件

/usr/sbin/dnsmasq

[root@localhost Packages]# rpm -e dnsmasq #卸载 

[root@localhost Packages]# cd

[root@localhost ~]# umount /root/cdrm/ #取消挂载

当然如果你也不知道需要安装那些包,那就全部安装,命令如下:

rpm -Uvh --force --nodeps *rpm

后记

因为安装包之间往往相互的依赖,如果不清楚还是全部安装的好。

<think>好的,我现在需要帮助用户在CentOS Linux系统中挂载ISO文件后安装Nginx。用户已经提供了一些相关的引用内容,我需要结合这些信息来整理出一个详细的步骤。 首先,回顾用户提供的引用内容,特别是引用[3]和引用[4]提到挂载ISO镜像并配置本地yum源的步骤。引用[1]和引用[2]则涉及离线安装Nginx的过程,括解压和编译安装,需要依赖pcre和zlib等库。另外,引用[5]提到可以通过HTTP方式共享yum源,但用户的问题可能更关注本地挂载后的安装,所以暂时可以忽略HTTP部分。 用户的问题主要分为两个部分:挂载ISO文件,然后安装Nginx。需要注意的是,在离线环境中,无法通过互联网下载依赖包,所以必须通过挂载ISO镜像来获取这些软件,并配置本地yum源。这样,后续安装Nginx所需的依赖就可以从本地源中获取,而不需要联网。 首先,挂载ISO的步骤。根据引用[3]和引用[4],需要创建挂载目录,使用mount命令挂载ISO文件,并设置开机自动挂载。例如,创建/mnt/iso目录存放ISO文件,挂载到/opt/centos目录。然后配置yum源,将本地路径指定为baseurl。这样,后续使用yum命令时,就会从本地源安装软件。 接下来,安装Nginx。但根据引用[1]和引用[2],离线安装可能需要手动编译,因为默认的CentOS仓库中的Nginx版本可能较旧,或者用户需要特定版本。不过,如果ISO镜像中含了Nginx的rpm,也可以直接通过yum安装。但通常ISO镜像可能不含Nginx,所以可能需要编译安装。 因此,可能的步骤是:挂载ISO,配置本地yum源,安装编译所需的依赖(如gcc、pcre-devel、zlib-devel等),然后下载Nginx源码进行编译安装。用户提供的引用[1]和[2]中的步骤需要解压源码,配置编译选项,指定pcre和zlib的路径,然后make和make install。 现在需要将这些步骤整合成一个连贯的教程。需要注意,挂载ISO后,配置yum源,然后用yum安装编译工具和依赖库。例如,安装gcc、make、pcre-devel、zlib-devel等。这些应该存在于ISO镜像中,所以正确配置本地yum源后,可以通过yum命令安装。如果ISO中没有这些,可能需要另外处理,但假设用户提供的ISO是完整的CentOS镜像,应该含这些基础。 总结步骤: 1. 挂载ISO镜像,配置本地yum源。 2. 使用yum安装编译工具和依赖。 3. 下载Nginx源码(用户可能需要提前下载并传输到离线系统中)。 4. 解压源码,配置编译选项,指定依赖库路径。 5. 编译并安装Nginx。 6. 验证安装,配置服务和开机启动。 需要检查各个步骤是否正确。例如,在编译时,pcre和zlib可能需要开发库,即pcre-devel和zlib-devel,这些需要通过yum安装。而引用[2]中的配置命令使用了--with-pcre=../pcre-8.32,这可能是指pcre的源码路径,但如果是通过yum安装的,可能不需要指定源码路径,而是使用系统路径。或者,用户可能需要在离线环境中手动编译pcre和zlib,但这会增加复杂性。根据引用[1]和[2],用户可能已经将pcre和zlib的源码放在特定目录,所以在编译Nginx时需要指定这些路径。 这种情况下,可能需要用户提前下载所有依赖的源码,例如pcre、zlib、openssl等,并将它们放在指定目录。然后,在编译Nginx时通过--with-pcre=../pcre-xx等参数指定路径。但这个过程较为繁琐,特别是在离线环境中,容易出错。 或者,如果通过本地yum源安装了pcre-devel和zlib-devel,那么Nginx的configure脚本可能能够自动找到这些库的位置,无需手动指定路径。因此,这可能更简单。因此,正确的步骤应该是: - 挂载ISO,配置yum源,安装gcc、make、pcre-devel、zlib-devel等。 - 下载Nginx源码,解压,进入目录。 - 执行./configure --prefix=/usr/local/nginx(可能不需要指定pcre和zlib路径,如果已通过yum安装开发)。 - make && make install 这样更简单,但需要确认通过本地yum源是否有这些开发。如果ISO镜像中的软件仓库含这些,那么没问题。否则,用户可能需要手动处理依赖,这可能涉及到更多步骤。 另外,用户可能需要处理防火墙和SELinux的问题,如引用[3]中提到的关闭SELinux和防火墙,以避免安装过程中的权限问题。 综合上述分析,整理步骤: 1. 挂载ISO镜像并配置本地yum源: - 创建挂载点目录。 - 挂载ISO文件。 - 配置repo文件,指向挂载目录。 2. 安装必要的编译工具和依赖: - 使用yum安装gcc、make、pcre-devel、zlib-devel等。 3. 下载并编译安装Nginx: - 获取Nginx源码,解压。 - 运行configure,可能需要指定安装路径和其他选项。 - 编译并安装。 4. 验证安装并配置服务。 需要确保每一步都正确,例如在挂载ISO后,yum list可以查看可安装,确认pcre-devel等是否存在。如果存在,直接安装;如果不存在,可能需要手动处理。 另外,用户可能需要提前下载Nginx的源码,因为离线环境下无法从网上下载。所以用户需要将nginx-xxx.tar.gz传输到系统中,例如通过USB或SFTP等方式。 现在根据引用内容,引用[2]中提到的编译选项括--with-pcre=../pcre-8.32,这可能意味着用户需要将pcre源码放在nginx源码的同级目录。这种情况下,用户需要同时下载pcre、zlib等的源码,并解压到指定位置,然后在编译Nginx时指定这些路径。这可能适用于当系统未安装开发的情况,但若通过本地yum源安装了开发,可能不需要这样做。 因此,需要分两种情况: 情况一:使用yum安装开发: - 配置本地yum源后,安装pcre-devel、zlib-devel,这样Nginx的configure会自动找到这些库,无需指定路径。 情况二:手动编译依赖: - 下载pcre、zlib等源码,解压,并在编译Nginx时通过--with-pcre和--with-zlib指定源码路径。 根据用户提供的引用[1]和[2],看起来用户的情况是手动编译依赖的情况,例如在引用[1]中,解压了zlib,并在编译nginx时指定了pcre和zlib的路径。所以可能用户的环境中没有通过yum安装这些开发,或者需要特定版本。 因此,可能需要综合两种方法:先挂载ISO配置yum源,安装基础工具(gcc、make等),然后手动编译pcre、zlib等,再编译Nginx。 但这样步骤较为复杂,用户可能需要更简洁的步骤。或者,如果本地yum源中有这些开发,则更简单。 现在需要明确步骤: 假设用户使用CentOS的ISO镜像作为本地yum源,其中含了pcre-devel和zlib-devel,那么步骤如下: 1. 挂载ISO,配置本地yum源。 2. 安装gcc, make, pcre-devel, zlib-devel等。 3. 下载Nginx源码,解压,编译安装。 如果本地yum源中没有这些,用户需要手动下载源码编译依赖。 根据引用[3],用户挂载的是CentOS的ISO镜像,其中应该含Base仓库,所以应该含这些开发。因此,正确的步骤应优先使用yum安装开发。 因此,详细步骤: 一、挂载ISO并配置本地yum源: 1. 创建挂载目录: ```bash mkdir -p /mnt/iso mkdir -p /opt/centos ``` 2. 上传ISO文件到服务器,例如到/mnt/iso/CentOS-7-x86_64-DVD-1810.iso。 3. 挂载ISO到目录: ```bash mount -t iso9660 -o loop /mnt/iso/CentOS-7-x86_64-DVD-1810.iso /opt/centos ``` 4. 配置自动挂载: 编辑/etc/fstab,添加: ``` /mnt/iso/CentOS-7-x86_64-DVD-1810.iso /opt/centos iso9660 loop 0 0 ``` 5. 备份原有yum源配置文件: ```bash mkdir /etc/yum.repos.d/backup mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ ``` 6. 创建新的repo文件,例如local.repo: ```bash vi /etc/yum.repos.d/local.repo ``` 内容为: ``` [local-base] name=Local CentOS Base baseurl=file:///opt/centos enabled=1 gpgcheck=0 ``` 7. 清除yum缓存并更新: ```bash yum clean all yum makecache ``` 二、安装编译依赖: 1. 安装必要工具和依赖: ```bash yum install -y gcc make pcre-devel zlib-devel openssl-devel ``` 三、下载并安装Nginx: 1. 下载Nginx源码(需提前下载并上传到服务器): 例如nginx-1.20.1.tar.gz,放在/opt/src目录。 2. 解压并进入目录: ```bash tar -zxvf /opt/src/nginx-1.20.1.tar.gz -C /usr/local/src/ cd /usr/local/src/nginx-1.20.1 ``` 3. 配置编译选项: ```bash ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module ``` 如果configure过程中提示缺少依赖,可能需要检查是否安装了所有必需的开发,如openssl-devel等。 4. 编译并安装: ```bash make && make install ``` 四、验证安装: 1. 检查Nginx版本: ```bash /usr/local/nginx/sbin/nginx -v ``` 五、启动Nginx并设置开机启动: 1. 启动Nginx: ```bash /usr/local/nginx/sbin/nginx ``` 2. 设置systemd服务(可选): 创建服务文件: ```bash vi /usr/lib/systemd/system/nginx.service ``` 内容: ``` [Unit] Description=The nginx HTTP and reverse proxy server After=network.target [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s quit PrivateTmp=true [Install] WantedBy=multi-user.target ``` 3. 启用并启动服务: ```bash systemctl enable nginx systemctl start nginx ``` 此外,根据引用[3],可能需要关闭SELinux和防火墙: ```bash # 关闭SELinux setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config # 关闭防火墙 systemctl stop firewalld systemctl disable firewalld ``` 总结整个流程,用户需要按照步骤挂载ISO,配置本地yum源,安装开发工具和依赖,然后编译安装Nginx。过程中需要确保所有依赖包都能从本地源安装,否则可能需要手动处理。此外,用户需提前下载Nginx源码并传输到服务器,因为离线环境无法在线下载。</think>### CentOS Linux挂载ISO安装Nginx教程 #### 一、挂载ISO镜像并配置本地yum源 1. **创建挂载目录** ```bash mkdir -p /mnt/iso # 存储ISO文件 mkdir -p /opt/centos # 挂载目标目录 ``` 2. **上传ISO文件** 将CentOS镜像文件(如`CentOS-7-x86_64-DVD-1810.iso`)上传至`/mnt/iso`。 3. **挂载ISO文件** ```bash mount -t iso9660 -o loop /mnt/iso/CentOS-7-x86_64-DVD-1810.iso /opt/centos ``` 4. **配置开机自动挂载** 编辑`/etc/fstab`,添加以下行: ``` /mnt/iso/CentOS-7-x86_64-DVD-1810.iso /opt/centos iso9660 loop 0 0 ``` 5. **配置本地yum源** - 备份原有yum配置: ```bash mkdir /etc/yum.repos.d/backup mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ ``` - 创建新配置文件`local.repo`: ```bash vi /etc/yum.repos.d/local.repo ``` 添加以下内容: ``` [local-base] name=Local CentOS Base baseurl=file:///opt/centos enabled=1 gpgcheck=0 ``` - 更新yum缓存: ```bash yum clean all && yum makecache ``` #### 二、安装编译依赖 ```bash yum install -y gcc make pcre-devel zlib-devel openssl-devel ``` #### 三、下载并编译安装Nginx 1. **下载Nginx源码** 将`nginx-1.20.1.tar.gz`上传至服务器(如`/opt/src`)。 2. **解压并进入目录** ```bash tar -zxvf /opt/src/nginx-1.20.1.tar.gz -C /usr/local/src/ cd /usr/local/src/nginx-1.20.1 ``` 3. **配置编译选项** ```bash ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module ``` 4. **编译并安装** ```bash make && make install ``` #### 四、验证与启动 1. **验证安装** ```bash /usr/local/nginx/sbin/nginx -v ``` 2. **启动Nginx** ```bash /usr/local/nginx/sbin/nginx ``` 3. **设置开机启动(可选)** - 创建systemd服务文件`/usr/lib/systemd/system/nginx.service`: ``` [Unit] Description=The nginx HTTP and reverse proxy server After=network.target [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s quit PrivateTmp=true [Install] WantedBy=multi-user.target ``` - 启用服务: ```bash systemctl enable nginx systemctl start nginx ``` #### 五、关闭SELinux和防火墙(可选) ```bash # 关闭SELinux setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config # 关闭防火墙 systemctl stop firewalld systemctl disable firewalld ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值