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.
(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.