CentOS7 instala git sin conexión a través del paquete rpm

prefacio

Si puede conectarse a la red externa, ¿quién está dispuesto a desconectarse? La razón para reinstalar git es que la versión de git (1.8.3.1) en el servidor es demasiado baja y la versión de git (2.40.0) después de Mac el cliente está actualizado Verifique la clave para realizar la operación de extracción, por lo que necesita actualizar el git en el servidor, y la versión 1.8.3.1 de git parece ser la versión predeterminada de CentOS 7. Vi este número de versión en muchos artículos. Pensé que estaría hecho en minutos. , El resultado estaba tirando hasta la medianoche.

La instalación inicial falló

Al principio, sentí que era muy sencillo. Si puede actualizar, puede actualizar directamente. Si no puede actualizar, simplemente puede eliminarlo e instalarlo. Luego sudo yum remove giteliminé

Se dice que la forma más rápida de instalar una nueva versión de git en CentOS 7 es a través del repositorio de End Point, así que seguí el tutorial que encontré e ingresé el siguiente comando en un intento de agregar "Repositorio de paquetes de End Point", pero un se informó el error:

yum install https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm
yum install git

El sitio web oficial packages.endpointdev.com/ tiene una publicación dedicada a explicar la instalación de git 2.x. Parece fácil, pero es posible que no pueda hacerlo por este camino.

Aparece el mensaje "curl: (6) Podría resolver host: packages.endpointdev.com; Error desconocido", Dios mío, ¿esta máquina no puede acceder a la red externa?

Intenta modificar la fuente del software.

Luego traté de hacer ping a varios nombres de dominio comunes pero fallé, ¿así que solo puedo instalar sin conexión? Más tarde, descubrí que no es que no pueda acceder a la red externa, sino que no puede acceder al nombre de dominio, así que hábilmente cambié /etc/yum.repos.d/CentOS-Base.repotodos los nombres de dominio en la fuente del software a IP:

#mirrors.cloud.aliyuncs.com被我改成了100.100.2.148

enabled=1
failovermethod=priority
baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7

[updates]
name=CentOS-$releasever
enabled=1
failovermethod=priority
baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7

[extras]
name=CentOS-$releasever
enabled=1
failovermethod=priority
baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7

Luego descubrí que esto no se puede usar, la IP de este nombre de dominio sigue cambiando, y luego encontré la fuente de software dentro de la empresa para reemplazar directamente la IP, y descubrí que el acceso se agotó, parece resolver el problema de no ser pudo resolver el nombre de dominio, y luego descubrió La modificación /etc/resolv.conf, así que agregue el siguiente contenido al archivo:

nameserver 114.114.114.114
nameserver 8.8.8.8

Después de guardar, el nombre de dominio se puede resolver, pero el tiempo de espera de acceso aún ocurre después de cambiar la fuente del software a un nombre de dominio, y esta ruta está completamente muerta.

Instalar git sin conexión

La instalación sin conexión es similar a la instalación de un archivo en Windows .msi, pero git no parece tener un paquete de instalación particularmente conveniente. Mirando estos métodos de instalación en Linux, básicamente necesitan descargarse en línea. Entre ellos, CentOS sigue siendo el más problemático y necesita ser compilado e instalado.

Debian/Ubuntu
For the latest stable version for your release of Debian/Ubuntu

# apt-get install git
For Ubuntu, this PPA provides the latest stable upstream Git version

# add-apt-repository ppa:git-core/ppa # apt update; apt install git
Fedora
# yum install git (up to Fedora 21)
# dnf install git (Fedora 22 and later)
Gentoo
# emerge --ask --verbose dev-vcs/git
Arch Linux
# pacman -S git
openSUSE
# zypper install git
Mageia
# urpmi git
Nix/NixOS
# nix-env -i git
FreeBSD
# pkg install git
Solaris 9/10/11 (OpenCSW)
# pkgutil -i git
Solaris 11 Express
# pkg install developer/versioning/git
OpenBSD
# pkg_add git
Alpine
$ apk add git
Red Hat Enterprise Linux, Oracle Linux, CentOS, Scientific Linux, et al.
RHEL and derivatives typically ship older versions of git. You can download a tarball and build from source, or use a 3rd-party repository such as the IUS Community Project to obtain a more recent version of git.

Slitaz
$ tazpkg get-install git

Pero compilar git requiere dependencias. Afortunadamente, no depende de muchas. Muchos tutoriales presentan un montón de ellas, sin importar si son útiles o no:

yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel gcc perl-ExtUtils-MakeMaker package

Pero yumlos comandos están obsoletos y no puedo instalar cosas nuevas en línea, así que tengo que encontrar los paquetes de instalación para la instalación fuera de línea de estas dependencias, lo que requiere el uso de paquetes rpm.

que es rpm

rpm(redhat package manager) fue originalmente un programa especialmente utilizado por la distribución Red Hat Linux para administrar varios paquetes de Linux. Debido a que sigue las reglas GPL y tiene funciones poderosas y convenientes, es muy popular y adoptado gradualmente por otras distribuciones. La aparición del método de administración de paquetes RPM facilita la instalación y actualización de software en Linux.Para decirlo sin rodeos, puede usarlo para instalar paquetes de software.

El paquete RPM contiene programas binarios ejecutables, así como los archivos necesarios para la ejecución del programa. En ocasiones, además de los archivos adicionales que lleva para garantizar su normal funcionamiento, se requieren otros archivos de versiones específicas. Esta es la dependencia del software. paquete, que es similar a Windows La estructura del paquete es similar.

Preparación de la instalación

Afortunadamente, tengo gcc en mi máquina y, a través de la práctica, descubrí que siempre que zlib-devel se instale correctamente, la compilación de git se puede completar. Si no se instala, se informará un error de compilación:

cache.h:21:18: fatal error: zlib.h: No such file or directory
 #include <zlib.h>
                  ^
compilation terminated.
make: *** [fuzz-commit-graph.o] Error 1

En el caso de una red, use CentOS yum install zlib-develpara resolver , instalación de Ubuntu apt-get install zlib1g-devpara resolver

Instalar zlib-devel

Si la versión se instala correctamente a través de rpm, sigue siendo muy rápida, pero descargué otra versión zlib-devel-1.2.7-18.el7.x86_64.rpm al principio, y durante la instalación se me indicó:

[root@demo software]# rpm -i zlib-devel-1.2.7-18.el7.x86_64.rpm 
error: Failed dependencies:
        zlib = 1.2.7-18.el7 is needed by zlib-devel-1.2.7-18.el7.x86_64

Descargué zlib-1.2.7-18.el7.x86_64.rpm nuevamente, pero hubo un conflicto durante la instalación:

[root@demo software]# rpm -i zlib-1.2.7-18.el7.x86_64.rpm       
        file /usr/lib64/libz.so.1.2.7 from install of zlib-1.2.7-18.el7.x86_64 conflicts with file from package zlib-1.2.7-15.el7.x86_64

Finalmente encontré una versión compatible rpm -i zlib-devel-1.2.7-15.el7.x86_64.rpmpara solucionar este problema.

compilar git

  • Descomprimir el código fuente de gittar -zxf git-2.28.0.tar.gz
  • Ingrese al directorio descomprimido y realice una verificación previa a la instalaciónmake configure
  • Especificar el directorio de instalación./configure --prefix=/usr/local
  • Ejecutar compilación e instalación.make install
  • Verifique la versión de gitgit --version

Finalmente está terminado, hoo~

Resumir

  • Cuando la diferencia de versión de git entre el servidor y el cliente es demasiado grande, puede causar el problema de que la clave no se puede verificar
  • En CentOS, git se puede instalar usando yum o "Repositorio de paquetes de punto final" para instalar
  • Si desea compilar e instalar git, necesita gcc y debe poder instalar las dependencias de zlib-devel
  • Documento de referencia: https://zhuanlan.zhihu.com/p/352955774

Reponer

ñam falló

Finalmente encontré la razón por la que se agotó el tiempo de espera de mi fuente de actualización de yum, porque intenté instalar git a través Wandisco GIT存储库del método , los pasos son los siguientes:

  • Primero escriba el nuevo archivo de configuración del repositorio yum para habilitar el repositorio Wandisco GIT, ingrese en la terminalvim /etc/yum.repos.d/wandisco-git.repo
  • Agregue el siguiente contenido al archivo, guarde y salga
     [wandisco-git]
     name=Wandisco GIT Repository
     baseurl=http://opensource.wandisco.com/centos/7/git/$basearch/
     enabled=1
     gpgcheck=1
     gpgkey=http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco
    
  • Importar la clave GPG del repositoriosudo rpm --import http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco
  • Instalar Gityum install git

Como resultado, no se puede acceder normalmente a opensource.wandisco.com, lo que genera yum updateun error , simplemente elimine el archivo wandisco-git.repo

La relación entre rpm y yum

Como se mencionó anteriormente, rpm es un método de administración de paquetes de software desarrollado por Red Hat que se puede usar para instalar, consultar, desinstalar y actualizar software fácilmente. Pero lidiar con las dependencias entre los paquetes rpm suele ser engorroso, especialmente cuando el software consta de varios paquetes rpm, como los problemas que encontramos al instalar git sin conexión.

Yum (Yellow dog Updater, Modified) es un software de administración de paquetes front-end basado en la administración de paquetes RPM en sistemas como Fedora y RedHat. Puede descargar e instalar automáticamente paquetes RPM desde un servidor específico y procesar automáticamente las dependencias de los paquetes. Instalar todos los paquetes dependientes.

En resumen, el comando rpm solo puede instalar el paquete rpm que se ha descargado en la máquina local y resolver el problema de dependencia por sí mismo. Yum puede descargar e instalar el paquete rpm en línea, actualizar el kernel y manejar automáticamente el problema de dependencia entre paquetes

==>> Enlace anti-escalada, no haga clic, explotará en el lugar y no seremos responsables de ello. <<==

Cuando mueres, sabes que todo está vacío, pero no ves a Kyushu triste~

Supongo que te gusta

Origin blog.csdn.net/shihengzhen101/article/details/129698728
Recomendado
Clasificación