GNU/Linux >> Tutoriales Linux >  >> Linux

¿El propósito del comando 'instalar'?

He visto la install comando utilizado en muchos Makefiles, y su existencia y uso son un poco confusos. De las páginas de manual, parece una imitación de cp con menos funciones, pero supongo que no se usaría a menos que tuviera alguna ventaja sobre cp . ¿Cuál es el problema?

Respuesta aceptada:

install no solo copia archivos, sino que también cambia su propiedad y permisos y, opcionalmente, elimina los símbolos de depuración de los ejecutables. Combina cp con chown , chmod y strip . Es una herramienta conveniente de alto nivel que realiza una secuencia común de tareas elementales.

Una ventaja de install sobre cp para instalar ejecutables es que si el destino ya existe, elimina el archivo de destino y crea uno nuevo. Esto elimina las propiedades actuales, como las listas de control de acceso y las capacidades, que pueden verse tanto como una ventaja como una desventaja. Al actualizar los ejecutables, si hay instancias en ejecución de este ejecutable, seguirán ejecutándose sin verse afectadas. Por el contrario, cp actualiza el archivo en su lugar si hay uno. En la mayoría de las variantes de Unix, esto falla con el error EBUSY¹ si el destino es un ejecutable en ejecución; en algunos, puede hacer que el objetivo se bloquee porque carga secciones de código dinámicamente y modificar el archivo hace que se cargue código sin sentido.

install es un comando BSD (agregado en 4.2BSD, es decir, a principios de la década de 1980). No ha sido adoptado por POSIX.

¹ “Archivo de texto ocupado”. En este contexto, "archivo de texto" significa "archivo ejecutable binario", por oscuras razones históricas.


Linux
  1. Domina el comando ls de Linux

  2. Cómo instalar software desde la línea de comandos de Linux

  3. ¿El propósito del comando hash?

  4. Cómo instalar y usar el comando ping en Linux

  5. ¿Es la herramienta de línea de comando pdftotext para mac?

El comando del temporizador en Linux

Googler:ejecuta búsquedas en Google desde la línea de comandos

Howto:Facebook Messenger en la línea de comando

Cómo instalar y usar el comando de pantalla Ubuntu 20.04

Cómo instalar y usar el comando Ack en Linux

¿Cómo instalar Google Chrome en Ubuntu 18.04 usando la línea de comandos?