it-swarm-es.tech

¿Dónde debo poner el software que compilo yo mismo?

Necesito compilar algún software en mi máquina Fedora. ¿Dónde está el mejor lugar para ponerlo para no interferir con el software empaquetado?

130
theotherreceive

Regla de oro, al menos en los sistemas con sabor a Debian:

  • /usr/local para cosas que están "en todo el sistema", es decir. /usr/local tiende a estar en la distribución predeterminada $PATH, y sigue una jerarquía de directorios UNIX estándar con /usr/local/bin, /usr/local/lib, etc.

  • /opt para cosas en las que no confías para hacer todo el sistema, con prefijos por aplicación, es decir. /opt/firefox-3.6.8, /opt/mono-2.6.7, y así. Las cosas aquí requieren una administración más cuidadosa, pero también es menos probable que rompa su sistema, y ​​es más fácil de eliminar ya que simplemente elimina la carpeta y ya no está.

92
directhex

Si realmente no quieres que interfiera en absoluto, no lo pongas en ningún lugar de tu $PATH.

Si lo quieres en $PATH, al menos asegúrese de no instalar en /usr/local. Descubrí que una gran cantidad de software se ve allí incluso si está instalado por la distribución en /usr.

Mi forma favorita de instalar software compilado personalizado es en mi $HOME directorio. De esa manera no tiene que usar Sudo para nada, y está muy bien separado del resto de su sistema. Por ejemplo:

mkdir ~/stage
./configure --prefix=/home/username/stage && make && make install

Y si lo desea, puede agregar /home/username/stage/bin para usted $PATH.

50
Sandy

FHS dice ponerlo en/usr/local donde las distribuciones no deberían tocarlo. /usr/local/bin para los binarios /usr/local/src para la fuente y /usr/local/lib para bibliotecas. Vea el especificación FHS para más información

21
xenoterracide

La mayoría de las veces, me gusta colocar mis propias cosas compiladas en /opt. Es una especie de lugar pseudo-estándar. También puedes considerar /usr/local, pero prefiero mantener mis cosas 100% aisladas.

10
Scott Anderson

Ponlos a /usr/local/src.

Lo que hago es extraer la fuente en este directorio. Creará un camino como

/usr/local/src/postgresql-8.3.7

Luego creo un enlace simbólico:

/usr/local/src # ln -s  postgresql-8.3.7 postgresql

Haz todo tu edificio en /usr/local/src/postgresql.

Hacer las cosas de esta manera ayuda cuando necesita desplazarse entre versiones y documentos de la versión que está utilizando.

9
Stephen Jazdzewski

Esto me recuerda que necesito usar checkinstall más seguido. De esa manera solo hago lo usual

 ./configure
 make

seguido por

 Sudo checkinstall

para crear un archivo . deb ...

6
Kevin Cantu

Por el FHS , /usr/local/ se usa para aplicaciones compiladas desde la fuente, mientras que /opt/ se utiliza para aplicaciones de terceros que no son compatibles con el proveedor de su sistema operativo.

5
Aaron Toponce

Si existe la posibilidad, sugeriría compilar su software y luego crear el paquete FC (creo que está usando yum para instalar paquetes de software). Luego puede instalar ese paquete de su propio software compilado y eliminarlo sin alterar todo el sistema.

5
Eimantas

Si desea instalar y eliminar fácilmente varias aplicaciones que ha creado usted mismo, puede usar Stow como un simple administrador de paquetes.

5
Daniel James

Dos cosas que recomendaría:

Todo el sistema: use stow e instálelo en/usr/local/stow/package-version. Entonces puedes cambiar fácilmente entre versiones.

En mi casa, o si no tengo permisos de escritura/usr/local, personalmente instalo programas en ~/.local, que se insinúa por estándar XDG .

También puedes usar stow localmente, aunque nunca lo hice :)

4
elmarco

En realidad, no es tan difícil crear deb o rpm a partir de un tarball fuente. De esa manera, puede utilizar las instalaciones del administrador de paquetes de su distribución para mantener limpio su sistema. Esto es lo que hago, la mayoría de las veces: solo crea un poco de rpm.

3
wzzrd

Tengo una configuración un poco diferente a la mayoría de las personas porque desarrollo mucho. Tengo un directorio/home/jackson/bin/en el que instalo cosas y he editado mi .bashrc agregando esto:

export PATH=/home/jackson/bin/bin::$PATH
export LD_LIBRARY_PATH=/home/jackson/bin/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/home/jackson/bin/lib/pkgconfig:$PKG_CONFIG_PATH

No haría esto por todo, pero es agradable durante el desarrollo.

3
jacksonh

si está compilando una aplicación, puede agregar su ruta ejecutable en su variable PATH env. Esto no afectará a otros usuarios.

2
Hemant

Siempre existe la opción de "ponerlo donde corresponde", pero primero escriba un rpm simple.

2
Nils

Si desea que su aplicación esté disponible para todos los usuarios del sistema y tiene los permisos necesarios, use/opt. Si desea que la aplicación esté disponible solo para usted (y root), use/home/username

1
Silviu Bogan

Escribir un RPM, no es difícil, tiene pautas sobre dónde colocar las cosas y facilita la desinstalación.

Si hace esto, instale los archivos en /usr y no debajo de /usr/local, como todos los demás archivos que vienen a través del sistema de empaque.

0
user55149

La forma más fácil de hacer esto es tomar el paquete fuente (.src.rpm para RPMites), descomprímalo, piratee la nueva fuente/configuración/lo que sea, cambie la versión adecuadamente y compile. Instalar esto hace que su administrador de paquetes conozca el nuevo paquete, le permite considerarlo para las dependencias y desinstalarlo/actualizarlo.

Esta es una tarea la primera vez, pero si sale una nueva versión (o algún parche crítico), entonces es más fácil de actualizar. Otro beneficio es que puede crear su propio repositorio con software local, para compartir, p. por las máquinas en un laboratorio.

0
vonbrand