GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo detectan los programas Unix idiomáticos bajo qué prefijo están instalados?

Si instalo un binario con un prefijo no estándar, p. /opt/bin/foo , que necesita algunos archivos estáticos de /opt/share/foo , ¿cómo los encuentra? Usando referencias anteriores relativas al ejecutable (../share/foo )? ¿Codificado en tiempo de compilación?

¿Cuál es el idiomático manera para que una aplicación maneje el prefijo de instalación variable? ¿Todos los directorios deben tener un prefijo? (¿Qué pasa con /var ?)

Respuesta aceptada:

Es común codificar dichas referencias en el momento de la compilación, y tal vez proporcionar una opción de línea de comandos o una variable de entorno para anular el valor predeterminado en el momento de la compilación. A menudo, el programa solo recuerda la ubicación de un archivo de configuración (normalmente en /etc ) donde se pueden anular los valores predeterminados en tiempo de compilación. Este enfoque tiene más sentido para el software de código abierto compilado por las mismas personas que crean el sistema operativo, como parte de una distribución de Linux o puertos BSD.

Para las aplicaciones distribuidas en forma binaria, el enfoque habitual es ubicar el binario de la aplicación desde su argumento cero. Por convención, el argumento cero de execve (es decir, argv[0] ) es la ruta al binario (depende de la persona que llama, a menudo un shell, respetar la convención). Si argv[0] no contiene ningún / , la aplicación debería ejecutar $PATH búscalo.


Linux
  1. ¿Qué son los procesos zombis y cómo encontrar y eliminar procesos zombis?

  2. Cómo encontrar quién está conectado a su sistema y qué está haciendo

  3. ¿Qué son los modos Vim? ¿Cómo cambiarlos?

  4. Qué son los Enlaces Simbólicos (Soft Links) y cómo crearlos bajo Linux

  5. ¿Qué son los scripts de Shell? ¿Cómo crear scripts de Shell?

Cómo encontrar qué dispositivos están conectados a la red en Linux

Cómo encontrar si un paquete está instalado o no en Linux y Unix

Cómo encontrar qué direcciones IP están conectadas a Linux

Cómo editar archivos binarios en sistemas Unix

¿Cuáles son los significados del prefijo de interfaz en ifconfig?

Nombres de host:¿de qué se tratan?