GNU/Linux >> Linux Esercitazione >  >> Linux

Lo scopo del comando "installa"?

Ho visto l'install comando utilizzato in molti Makefile, e la sua esistenza e il suo utilizzo sono un po' confusi. Dalle pagine di manuale, sembra una copia di cp con meno funzioni, ma suppongo che non verrebbe utilizzato a meno che non avesse qualche vantaggio su cp . Qual è il problema?

Risposta accettata:

install non solo copia i file, ma ne cambia anche la proprietà e le autorizzazioni e facoltativamente rimuove i simboli di debug dagli eseguibili. Combina cp con chown , chmod e strip . È un comodo strumento di livello superiore per eseguire una sequenza comune di attività elementari.

Un vantaggio di install su cp per l'installazione di eseguibili è che se la destinazione esiste già, rimuove il file di destinazione e ne crea uno nuovo. Questo elimina tutte le proprietà attuali come gli elenchi di controllo di accesso e le funzionalità, che possono essere viste sia come un vantaggio che come un aspetto negativo. Quando si aggiornano gli eseguibili, se ci sono istanze in esecuzione di questo eseguibile, continuano a funzionare inalterati. Al contrario, cp aggiorna il file in atto se ce n'è uno. Sulla maggior parte delle varianti Unix, questo non riesce con l'errore EBUSY¹ se la destinazione è un eseguibile in esecuzione; su alcuni può causare l'arresto anomalo del target perché carica le sezioni di codice in modo dinamico e la modifica del file provoca il caricamento di codice senza senso.

install è un comando BSD (aggiunto in 4.2BSD, cioè all'inizio degli anni '80). Non è stato adottato da POSIX.

¹ “File di testo occupato”. In questo contesto, "file di testo" significa "file eseguibile binario", per oscuri motivi storici.


Linux
  1. Come installare il software dalla riga di comando di Linux

  2. Un'introduzione al comando diff

  3. Il comando locate in Linux

  4. Il comando, pip install --upgrade pip, installa tutte le versioni di pip

  5. Lo strumento da riga di comando pdftotext è per mac?

Il comando timer in Linux

Googler:esegui ricerche su Google dalla riga di comando

Howto:Facebook Messenger sulla riga di comando

Come installare e utilizzare il comando dello schermo Ubuntu 20.04

Come installare e utilizzare il comando Ack in Linux

Come installare Google Chrome su Ubuntu 18.04 utilizzando la riga di comando?