De repente decidí que me gustaría mirar el código fuente de 'echo'
$ which echo
/usr/bin/echo
entonces
$ ls -al /usr/bin/echo
-rwxr-xr-x. 1 root root 32536 Oct 31 2016 /usr/bin/echo
entonces
$strings /usr/bin/echo
me lleva a creer que es un programa C compilado
Ahora estoy atascado.
Cómo puedo:
Descubre en qué paquete está
Obtén la fuente
Reconstruirlo
Pruébalo
Instale la nueva versión en todo el sistema
(Sé que 5 no es una buena idea, solo tengo curiosidad ...)
Actualmente estoy en Fedora, pero también me interesarían las respuestas para Debian
Un enlace a un tutorial relevante sería una buena respuesta.
Editar:
$ type -a echo
echo is a shell builtin
echo is /usr/bin/echo
Así que supongo que es el /usr/bin/echo
que me gustaría ver en lugar de tratar de leer todo bash
.
debian
fedora
source-code
John Lawrence Aspden
fuente
fuente
type -a echo
primero./usr/bin/echo --version
continuación.Respuestas:
RHEL / Fedora
correr
rpm -qf /path
Descargue el paquete fuente (uso
yum
para RHEL):Extraiga las fuentes, los parches del paquete SRPM descargado en el directorio actual, cambie al directorio donde se extraen los archivos y encuentre su archivo:
Puede reconstruir el paquete usando
rpmbuild --rebuild coreutils-8.25-17.fc25.src.rpm
, lo que producirá los RPM que puede instalar directamente en su sistema.Si necesita hacer alguna modificación en los paquetes de fedora, es mucho más fácil seguir el camino del mantenedor: instalar
fedpkg
, clonar el repositorio, hacer las modificaciones (usando parches) y reconstruir el paquete con modificaciones:fuente
Debian (y derivados)
Ejecute
dpkg -S /path
para ver a qué paquete/path
pertenece:Obtenga la fuente (estoy en Ubuntu):
Encuentra el archivo:
El resto depende de usted.
fuente
dpkg -s coreutils
(o cualquier paquete que le interese) y busque elHomepage:
. Desde la página de inicio, generalmente puede encontrar acceso de lectura a su código fuente y al historial de versiones completo.