1. Antecedentes
Dado que la mayoría de los sistemas operativos de servidor de la empresa son más adecuados para su uso como la versión de instalación mínima de centos de un servidor, esta versión no tiene un entorno de compilación gcc-c ++ por defecto, y no puede usar make para compilar cuando necesita instalar el paquete fuente. software, que es muy inconveniente. Y los servidores son básicamente intranets, no pueden conectarse a la red externa y solo se pueden instalar sin conexión. Este artículo usa centos6.5 para instalar gcc-c ++ sin conexión. La instalación de otras versiones de centos también es la misma, pero la versión del paquete requerida es diferente.
La idea general es descargar el paquete rpm de la red externa e instalarlo fuera de línea desde la red interna.
2. Obtenga el paquete rpm
Hay muchas formas de obtener paquetes. Elegimos usar yum -y install --downloadonly --downloaddir = / tmp gcc-c ++ para descargar el paquete rpm requerido y las dependencias requeridas al directorio local / tmp para su almacenamiento.
La instalación mínima de Centos6.5 no tiene --downloadonly de forma predeterminada, primero debe instalar el complemento yum-plugin-downloadonly.
Primero, prepare un servidor que sea consistente con la versión del servidor de destino y pueda conectarse a la red externa con una instalación mínima.Puede ser una máquina virtual creada por VMware como nuestra estación de trabajo. Si se dedica a la operación y el mantenimiento del servidor durante mucho tiempo, se recomienda mantener una máquina virtual para descargar varios paquetes rpm, a fin de evitar la molestia de encontrar varios paquetes rpm y dependencias relacionadas en archivos de imagen o sitios web.
No hay ningún requisito para la configuración de la máquina virtual, el mío es el siguiente:
Complete la configuración básica de la máquina virtual (red, fuente yum, yum-plugin-downloadonly, etc.) y tome una instantánea para facilitar la restauración posterior de la máquina virtual a su estado inicial. Asegúrese de que la máquina virtual no haya instalado gcc-c ++; de lo contrario, downloadonly no podrá descargar el paquete rpm. Luego, puede usar directamente el comando para descargar el paquete rpm. como sigue:
[root@study ~]# gcc -v
-bash: gcc: command not found
[root@study ~]# yum -y install yum-downloadonly
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
base | 3.7 kB 00:00
extras | 3.7 kB 00:00
updates | 3.7 kB 00:00
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package yum-plugin-downloadonly.noarch 0:1.1.30-14.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================================================================
Package Arch Version Repository Size
================================================================================================================================
Installing:
yum-plugin-downloadonly noarch 1.1.30-14.el6 base 20 k
Transaction Summary
================================================================================================================================
Install 1 Package(s)
Total download size: 20 k
Installed size: 21 k
Downloading Packages:
yum-plugin-downloadonly-1.1.30-14.el6.noarch.rpm | 20 kB 00:00
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Retrieving key from http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6
Importing GPG key 0xC105B9DE:
Userid: "CentOS-6 Key (CentOS 6 Official Signing Key) <[email protected]>"
From : http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
Installing : yum-plugin-downloadonly-1.1.30-14.el6.noarch 1/1
Verifying : yum-plugin-downloadonly-1.1.30-14.el6.noarch 1/1
Installed:
yum-plugin-downloadonly.noarch 0:1.1.30-14.el6
Complete!
[root@study ~]# yum -y install --downloadonly --downloaddir=/tmp gcc-c++
Loaded plugins: downloadonly, fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package gcc-c++.x86_64 0:4.4.7-4.el6 will be installed
--> Processing Dependency: libstdc++-devel = 4.4.7-4.el6 for package: gcc-c++-4.4.7-4.el6.x86_64
--> Processing Dependency: gcc = 4.4.7-4.el6 for package: gcc-c++-4.4.7-4.el6.x86_64
--> Processing Dependency: libmpfr.so.1()(64bit) for package: gcc-c++-4.4.7-4.el6.x86_64
--> Running transaction check
---> Package gcc.x86_64 0:4.4.7-4.el6 will be installed
--> Processing Dependency: libgomp = 4.4.7-4.el6 for package: gcc-4.4.7-4.el6.x86_64
--> Processing Dependency: cpp = 4.4.7-4.el6 for package: gcc-4.4.7-4.el6.x86_64
--> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc-4.4.7-4.el6.x86_64
--> Processing Dependency: cloog-ppl >= 0.15 for package: gcc-4.4.7-4.el6.x86_64
--> Processing Dependency: libgomp.so.1()(64bit) for package: gcc-4.4.7-4.el6.x86_64
---> Package libstdc++-devel.x86_64 0:4.4.7-4.el6 will be installed
---> Package mpfr.x86_64 0:2.4.1-6.el6 will be installed
--> Running transaction check
---> Package cloog-ppl.x86_64 0:0.15.7-1.2.el6 will be installed
--> Processing Dependency: libppl_c.so.2()(64bit) for package: cloog-ppl-0.15.7-1.2.el6.x86_64
--> Processing Dependency: libppl.so.7()(64bit) for package: cloog-ppl-0.15.7-1.2.el6.x86_64
---> Package cpp.x86_64 0:4.4.7-4.el6 will be installed
---> Package glibc-devel.x86_64 0:2.12-1.132.el6 will be installed
--> Processing Dependency: glibc-headers = 2.12-1.132.el6 for package: glibc-devel-2.12-1.132.el6.x86_64
--> Processing Dependency: glibc-headers for package: glibc-devel-2.12-1.132.el6.x86_64
---> Package libgomp.x86_64 0:4.4.7-4.el6 will be installed
--> Running transaction check
---> Package glibc-headers.x86_64 0:2.12-1.132.el6 will be installed
--> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers-2.12-1.132.el6.x86_64
--> Processing Dependency: kernel-headers for package: glibc-headers-2.12-1.132.el6.x86_64
---> Package ppl.x86_64 0:0.10.2-11.el6 will be installed
--> Running transaction check
---> Package kernel-headers.x86_64 0:2.6.32-431.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================================================================
Package Arch Version Repository Size
================================================================================================================================
Installing:
gcc-c++ x86_64 4.4.7-4.el6 base 4.7 M
Installing for dependencies:
cloog-ppl x86_64 0.15.7-1.2.el6 base 93 k
cpp x86_64 4.4.7-4.el6 base 3.7 M
gcc x86_64 4.4.7-4.el6 base 10 M
glibc-devel x86_64 2.12-1.132.el6 base 978 k
glibc-headers x86_64 2.12-1.132.el6 base 608 k
kernel-headers x86_64 2.6.32-431.el6 base 2.8 M
libgomp x86_64 4.4.7-4.el6 base 118 k
libstdc++-devel x86_64 4.4.7-4.el6 base 1.6 M
mpfr x86_64 2.4.1-6.el6 base 157 k
ppl x86_64 0.10.2-11.el6 base 1.3 M
Transaction Summary
================================================================================================================================
Install 11 Package(s)
Total download size: 26 M
Installed size: 59 M
Downloading Packages:
(1/11): cloog-ppl-0.15.7-1.2.el6.x86_64.rpm | 93 kB 00:00
(2/11): cpp-4.4.7-4.el6.x86_64.rpm | 3.7 MB 00:02
(3/11): gcc-4.4.7-4.el6.x86_64.rpm | 10 MB 00:05
(4/11): gcc-c++-4.4.7-4.el6.x86_64.rpm | 4.7 MB 00:02
(5/11): glibc-devel-2.12-1.132.el6.x86_64.rpm | 978 kB 00:00
(6/11): glibc-headers-2.12-1.132.el6.x86_64.rpm | 608 kB 00:00
(7/11): kernel-headers-2.6.32-431.el6.x86_64.rpm | 2.8 MB 00:01
(8/11): libgomp-4.4.7-4.el6.x86_64.rpm | 118 kB 00:00
(9/11): libstdc++-devel-4.4.7-4.el6.x86_64.rpm | 1.6 MB 00:00
(10/11): mpfr-2.4.1-6.el6.x86_64.rpm | 157 kB 00:00
(11/11): ppl-0.10.2-11.el6.x86_64.rpm | 1.3 MB 00:00
--------------------------------------------------------------------------------------------------------------------------------
Total 1.5 MB/s | 26 MB 00:17
exiting because --downloadonly specified
[root@study ~]# ll /tmp/
总用量 26772
-rw-r--r--. 1 root root 95248 7月 3 2011 cloog-ppl-0.15.7-1.2.el6.x86_64.rpm
-rw-r--r--. 1 root root 3906116 11月 25 2013 cpp-4.4.7-4.el6.x86_64.rpm
-rw-r--r--. 1 root root 10567364 11月 25 2013 gcc-4.4.7-4.el6.x86_64.rpm
-rw-r--r--. 1 root root 4946968 11月 25 2013 gcc-c++-4.4.7-4.el6.x86_64.rpm
-rw-r--r--. 1 root root 1001012 11月 25 2013 glibc-devel-2.12-1.132.el6.x86_64.rpm
-rw-r--r--. 1 root root 622736 11月 25 2013 glibc-headers-2.12-1.132.el6.x86_64.rpm
-rw-r--r--. 1 root root 2970072 11月 25 2013 kernel-headers-2.6.32-431.el6.x86_64.rpm
-rw-r--r--. 1 root root 121064 11月 25 2013 libgomp-4.4.7-4.el6.x86_64.rpm
-rw-r--r--. 1 root root 1674172 11月 25 2013 libstdc++-devel-4.4.7-4.el6.x86_64.rpm
-rw-r--r--. 1 root root 160772 7月 3 2011 mpfr-2.4.1-6.el6.x86_64.rpm
-rw-r--r--. 1 root root 1322280 7月 3 2011 ppl-0.10.2-11.el6.x86_64.rpm
-rw-------. 1 root root 0 12月 16 23:32 yum.log
-rw-------. 1 root root 2689 12月 17 11:28 yum_save_tx-2020-12-17-11-28pFvIGs.yumtx
[root@study ~]#
3. Transfiera todos los paquetes rpm al directorio / tmp del servidor de destino de la intranet que necesita instalar gcc-c ++, y use el comando yum localinstall gcc-c ++ / tmp / * para instalar sin conexión
yum localinstall gcc-c++ /tmp/*