GNU/Linux >> Linux Esercitazione >  >> Linux

In che modo i programmi Unix Idiomatic rilevano con quale prefisso sono installati?

Se installo un binario con prefisso non standard, ad es. /opt/bin/foo , che necessita di alcuni file statici da /opt/share/foo , come li trova? Utilizzo dei riferimenti indietro relativi all'eseguibile (../share/foo )? Hardcoded in fase di compilazione?

Qual è l'idiomatica modo per un'applicazione di gestire il prefisso di installazione variabile? Tutte le directory devono avere un prefisso? (che dire di /var ?)

Risposta accettata:

È comune codificare tali riferimenti in fase di compilazione e forse fornire un'opzione della riga di comando o una variabile di ambiente per sovrascrivere l'impostazione predefinita in fase di compilazione. Spesso il programma ricorda solo la posizione di un file di configurazione (in genere sotto /etc ) in cui è possibile sovrascrivere qualsiasi impostazione predefinita in fase di compilazione. Questo approccio ha più senso per il software open source compilato dalle stesse persone che realizzano il sistema operativo, come parte di una distribuzione Linux o di porte BSD.

Per le applicazioni distribuite in forma binaria, l'approccio usuale consiste nell'individuare il binario dell'applicazione dal suo argomento zero. Per convenzione, l'argomento zero per execve (cioè argv[0] ) è il percorso del binario (spetta al chiamante, spesso una shell, rispettare la convenzione). Se argv[0] non contiene alcun / , l'applicazione dovrebbe eseguire $PATH cercalo.


Linux
  1. Come scoprire chi è connesso al tuo sistema e cosa stanno facendo

  2. Quali sono i tuoi momenti Unix preferiti *dolori*?

  3. Cosa sono le modalità Vim? Come cambiarli?

  4. UNIX/Linux:cos'è una shell? Cosa sono le diverse conchiglie?

  5. Come rilevare l'avvio di programmi su Linux?

Registri Docker:cosa sono e come usarli (con esempi)

Come trovare quali dispositivi sono collegati alla rete in Linux

Come scoprire se un pacchetto è installato o meno in Linux e Unix

Come trovare quali indirizzi IP sono collegati a Linux

Come modificare file binari su sistemi Unix

Nomi host:di cosa si tratta?