Necesito instalar netcdf en una máquina SuSE Linux pero tengo algunos problemas para entender las carpetas usr/local/ y mis carpetas myusername/local/. Lo que creo que debo hacer es ir a la carpeta netcdf sin comprimir y hacer
./configure --prefix=/usr/local/netcdf-gfortran
Sin embargo necesito crear esta carpeta, ¿verdad? y ¿por qué en usr/local y no en mi nombre de usuario/local...?
Respuesta1
La combinación habitual es:
./configure --prefix=... [more options]
make
make install
Probablemente no quieras usarlo, /usr/local
ya que eso también debería requerir permisos de root, por lo que es --prefix=$HOME
o --prefix=$HOME/programs
(o cualquier otra cosa que funcione mejor para ti).
Podría valer la pena hablar con su administrador de sistemas sobre software adicional; debería hablar con él de todos modos, ya que openSUSE 11.3 ya pasó el final de su vida útil. Al menos debería actualizarse al11.4 Hoja perenne, que recibe al menos actualizaciones de seguridad.
En cuanto a la creación de paquetes, suele ser una buena idea echar un vistazo aarchivos .specpara tener una idea de cuáles podrían ser configure
opciones útiles, parches de código fuente y trucos de construcción; en su caso, probablemente desee consultarArchivo netcdf .spec para openSUSE:Factory(o cualquier distribución anterior).
Respuesta2
En términos generales, en Linux, /usr
es para programas proporcionados por la distribución y administrados por su administrador de paquetes (dpkg/apt, rpm/yum, emerge, etc.) y /usr/local
es para programas instalados y administrados manualmente por el administrador del sistema. Los programas bajo /usr
y /usr/local
están instalados para todos los usuarios.
Si desea instalar programas para su propio uso, colóquelos en algún lugar de su directorio de inicio.
recomiendo usarEstibaroXStowpara realizar un seguimiento de los programas que instala manualmente. (Utilice uno u otro: son implementaciones del mismo concepto). Cuando instala programas manualmente, puede elegir entre dos opciones inconvenientes:
- Coloque todos los programas en el mismo directorio. Entonces te resultará difícil clasificarlos, determinar qué archivos pertenecen a qué programas, desinstalar programas, etc. Por otro lado, todos los programas son fáciles de usar: sólo necesitas actualizar tu RUTA y otras configuraciones similares una vez.
- Coloque cada programa en su propio directorio. Entonces la desinstalación es tan fácil como
rm -r
. La desventaja es que tienes que agregar cada programa a PATH y así sucesivamente.
Stow te ofrece lo mejor de ambos mundos. Esta herramienta mantiene enlaces simbólicos desde un directorio común a un directorio por programa. Instala cada programa (desde el código fuente o desde un paquete binario) en su propio directorio en stow
y Stow crea enlaces simbólicos en bin
,,, ...lib
man
Así que cree un directorio programs/stow
en su directorio de inicio. Instalar netcdf con
./configure --prefix=~/programs/stow/netcdf-gfortran-4.3
make
make install
Luego ejecute stow netcdf-gfortran-4.3
desde el ~/programs/stow
directorio para crear enlaces simbólicos para todas las partes de ese paquete.
Edite su .profile
(o dondequiera que coloque la configuración de su entorno) para agregarla ~/programs/bin
a su ruta de búsqueda ejecutable, ~/programs/lib
a la ruta de búsqueda de su biblioteca, etc.
PATH="$HOME/programs/bin:$PATH"
if [ -n "$LD_LIBRARY_PATH" ]; then
export LD_LIBRARY_PATH="$HOME/programs/lib:$LD_LIBRARY_PATH"
else
export LD_LIBRARY_PATH="$HOME/programs/lib"
fi
if [ -z "$MANPATH" ]; then
MANPATH=$(manpath)
fi
export MANPATH="$HOME/programs/share/man:$HOME/programs/man:$MANPATH"
Al compilar programas, pase --with-cppflags="-I $HOME/programs/include"
a configure
para que pueda encontrar encabezados en el área de almacenamiento.
Para más información, verSeguimiento de los programasy¿Cuál es un método eficaz para instalar software actualizado en una máquina de producción obsoleta?