GNU/Linux >> Tutoriales Linux >  >> Linux

¿Editar y recompilar el programa individual?

whereis pwd
pwd: /bin/pwd /usr/include/pwd.h /usr/share/man/man1/pwd.1.gz

El pwd en la carpeta binaria no es el mismo que

type pwd
pwd is a shell builtin

Entonces, ¿no sería inofensivo hacer un poco de experimentación con la persona con discapacidad externa? Como agregar un "¡Hola shell!" cout solo para demostrar el principio?

¿Dónde está la fuente de pwd? ¿Suele obtenerlo con la distribución (estoy en Debian) o lo instala o lo descarga de alguna manera? ¿Está en C? ¿Lo compilo como cualquier otro archivo con gcc y pongo el resultado (con chmod apropiado) en una carpeta abarcada por la ruta? ¿Qué pasa con las actualizaciones? Como comprenderá, me estoy perdiendo el panorama general aquí.

(Por cierto, el archivo de encabezado parece no estar relacionado:pwd como contraseña, no imprimir/presentar directorio de trabajo).

Respuesta aceptada:

¿No sería inofensivo hacer un poco de experimentación con la pwd externa?

Es una mala apuesta que nada use /bin/pwd . Es una buena práctica en los scripts de shell, en particular los que normalmente ejecuta root, proporcionar rutas completas a programas externos, por razones de seguridad.

Aún así, puede crear con seguridad un pwd personalizado y colóquelo en su directorio de inicio en algún lugar. Si el paquete usa Autoconf, esto suele ser suficiente para configurar un paquete que se instalará en su directorio de inicio:

$ ./configure --prefix=$HOME

Podría decir algo como --prefix=$HOME/pwd-test en cambio, para evitar cualquier posibilidad de conflicto.

Siempre que el sistema de compilación del paquete esté configurado correctamente, cuando lo haya configurado así, puede decir con seguridad make install sin ser root, porque todos los archivos que escribe deben ir bajo el prefijo que le diste.

¿Dónde está la fuente de pwd?

pwd es parte de coreutils . Estas cosas se encuentran con el motor de búsqueda de paquetes de Debian.

¿Suele obtenerlo con la distribución (estoy en Debian)

Probablemente aún no haya descargado las fuentes de distribución, pero sí, se considera parte de la distribución de Debian. Están separados en un conjunto de DVD fuente de seis discos (!), que comprende aproximadamente 25 GB, razón por la cual la mayoría de la gente nunca los descarga.

Sin embargo, a menos que esté tratando de hacer algo como reconstruir toda la distribución de Debian o crear una distribución derivada, probablemente no debería descargarlos ni siquiera ahora. A la carta las descargas son probablemente una mejor idea en esta etapa.

¿Lo instalas o lo descargas de alguna manera?

Sí, también puedes usar apt-get para instalar el código fuente de los paquetes. Hay un capítulo completo en APT HOWTO sobre esto.

Relacionado:¿forma de ejecutar un programa en eventos de energía?

(Ese documento está marcado como Obsoleto, pero no veo un documento de reemplazo).

¿Está en C?

Con toda probabilidad, sí.

¿Lo compilo como cualquier otro archivo con gcc y coloco el resultado (con el ajuste de chmod) en una carpeta incluida en la ruta?

Probablemente no ejecute gcc directamente, probablemente haga el configure ; make ; make install baile. Si descarga el tarball fuente desde la página de búsqueda de paquetes de Debian, probablemente encontrará un INSTALL o README archivo en el tarball, que contendrá instrucciones de compilación.

¿Qué pasa con las actualizaciones?

¿Que hay de ellos? El motor de búsqueda de paquetes lo ayudará a encontrar cualquier versión del software que desee, y apt-get lo ayudará a realizar un seguimiento de los cambios en las fuentes tal como lo hará con los archivos binarios.

Me estoy perdiendo el panorama general aquí.

Es posible que desee echar un vistazo a la documentación de Debian, entonces.

el archivo de encabezado parece no estar relacionado:pwd como en contraseña, no imprimir/presentar directorio de trabajo).

Sí. Es un encabezado de utilidad para programadores de C, para obtener acceso a la base de datos de usuarios. Di man 3 getpwent para tener una idea de lo que está disponible a través de esa interfaz.


Linux
  1. Instale SoftHSM y acceda a él a través del programa Java

  2. ¿Extraña diferencia entre Pwd y /bin/pwd?

  3. Cómo instalar y usar Telnet en Debian 11

  4. Cómo instalar Node.js y NPM en Debian 11

  5. Cómo escribir y ejecutar su primer programa Qt en Debian 10

Cómo instalar Grafana en Ubuntu 18.04 y Debian 8

Cambia tu puerto SSH en Ubuntu y Debian

Cómo instalar y usar fail2ban en Ubuntu y Debian

Cómo instalar y configurar Sendmail en Debian 10

Cómo escribir y ejecutar un programa C en Linux

Journalctl:Cómo leer y editar registros de Systemd