instalar en / usr / local / usando apt-get

0

¿Hay alguna manera de instalar específicamente en la ruta / usr / local usando apt-get? Estoy usando Linux Mint 16 y quiero instalar algunas bibliotecas en esta ruta. Todas mis bibliotecas instaladas están instaladas en / usr / y solo algunas de ellas están disponibles en / usr / local

Pude instalar la biblioteca de impulso mediante el archivo tar.gz, pero ¿hay alguna manera de hacerlo usando apt-get install?

usuario166289
fuente
Además de pertenecer a SU, este también es un duplicado de esta pregunta .
rubenvb
Es por eso que no estaba recibiendo su respuesta aquí. ¿Lo siento por la molestia?
user166289
Ningún problema. StackExchange funciona así. Además, no se preocupe si su pregunta se cierra como un duplicado (si está cerrada). Todo es para mejor y permite que las personas encuentren lo que necesitan más rápido.
rubenvb
@ user166289 ¿Cuál es el problema que está tratando de resolver? ¿Por qué crees que /usr/locales superior a /usr?
jpaugh

Respuestas:

3

No debería haber ninguna forma de hacerlo, mira esta respuesta

Esto se debe a que el Estándar de Jerarquía del Sistema de Archivos se reserva explícitamente /usr/local/para el programa y los datos utilizados en todo el sistema, pero instalados por el administrador del sistema localmente. Tómese el tiempo para leer ese FHS (que también proporciona una justificación).

BT, a menudo no puede mover un archivo binario y datos relacionados, porque la mayoría de los programas contienen rutas de archivos incorporadas. En la práctica, para instalarlos /usr/local/ generalmente necesitará reconfigurarlos y volver a compilarlos.

Por lo tanto, un .debarchivo de instalación de paquete bajo /usr/local/estaría en contra de las convenciones y estándares.

Basile Starynkevitch
fuente
No lo entiendo ¿No soy el administrador del sistema de mi propia máquina?
zneak
Luego, compile el software a partir del código fuente.
Basile Starynkevitch
1
No cuestiono el resultado final, pero a la luz de su respuesta, ¿debería eso significar que el Estándar de Jerarquía del Sistema de Archivos marca la diferencia entre "instalado por apt-get" e "instalado por make install"?
zneak
Sí. La mayoría del software GNU se instala de manera predeterminada con el /usr/local/ prefijo (si no le da ninguno configure). Pero la distribución se empaqueta con un /usr/prefijo (es decir, los está configurecombinando con --prefix=/usr/...)
Basile Starynkevitch
1
@zneak No se distingue quién instala el software, sino quién lo compila . Esta es una distinción más útil, en parte porque los mantenedores de paquetes tienen que saltar muchos obstáculos para asegurarse de que su software se instala y funciona correctamente en cada sistema. Si instala software no empaquetado en la misma ubicación, podría tener conflictos con los paquetes del sistema, que de otro modo deberían funcionar, y pierde la libertad de compilar el software como quiera (como lo ha hecho con /usr/local.
jpaugh
1

No, y no deberías necesitarlo.

El propósito de /usr/locales distinguir el software que fue compilado e instalado por el administrador local del software distribuido con el sistema (es decir, el software que se puede instalar a través de apt-get).

Al instalar un software no empaquetado /usr, corre el riesgo de causar conflictos, lo que incluso podría causar que los paquetes del sistema fallen sin razón aparente (por ejemplo, si sobrescribe una biblioteca con una versión más nueva o una compilación incompatible).

Los mantenedores de paquetes deben hacer mucho trabajo adicional al compilar un paquete, para asegurarse de que funcione sin problemas en cada instalación, e independientemente de qué otros paquetes estén instalados. Esto solo es posible cuando pueden mirar el repositorio de paquetes y conocer cualquier otro paquete que podría instalarse. (En la práctica, solo pueden preocuparse por un pequeño subconjunto de los paquetes; como la cadena de herramientas libc y las bibliotecas SDL, por ejemplo).

Compilar paquetes usted mismo es (en comparación) rápido y suelto: no le importa maximizar la portabilidad; solo quiere que se construya y funcione en su máquina. No le importa si hay incompatibilidades con las cosas debajo /usr, ya que no se sobrescribirá, y tiene la libertad de instalar un duplicado incompatible de cualquier biblioteca, siempre que permanezca debajo /usr/local. Incluso puede tener requisitos muy específicos (por ejemplo, aprovechar el conjunto de instrucciones específicas de su máquina para mejorar el rendimiento) que no se aplican a otros usuarios de su distribución de Linux. Y, si es incompatible con alguna otra pieza de software que aún no ha instalado, se ocupará de eso cuando intente instalar el nuevo software, no de antemano.

jpaugh
fuente
Nota al margen: cuando está instalando una pila completa de paquetes para un propósito específico, o instalando cualquier cosa de un proveedor externo, es una práctica común aislarlos del posible desastre /usr/local, al tiempo que protege la estabilidad de /usrcada uno de ellos. Un lugar único bajo /opt/<vendor-name>o /opt/<stack-name>.
jpaugh