linux - como ver el codigo fuente de debian
¿Dónde descargas el código fuente de Linux? (8)
Es posible que desee comprobar SourceForge.net .
Supongamos que estoy interesado en la fuente de una utilidad Linux particular, como factor
. ¿Dónde puedo encontrar el código fuente para esa utilidad?
En Gentoo, simplemente busque en el ebuild con el que compiló el paquete: D.
Si no estás seguro?
# which factor /usr/bin/factor # grep ''/usr/bin/factor'' /var/db/pkg/*/*/CONTENTS /var/db/pkg/sys-apps/coreutils-6.12-r2/CONTENTS:obj /usr/bin/factor 5aaf903daa4345efb11618b3cb47e9a5 1224224574 /var/db/pkg/sys-apps/coreutils-6.12-r2/CONTENTS:obj /usr/lib64/debug/usr/bin/factor.debug 517d965636850633e9b15926dde8c222 1224224575 # cat /var/db/pkg/sys-apps/coreutils-6.12-r2/SRC_URI ftp://alpha.gnu.org/gnu/coreutils/coreutils-6.12.tar.lzma mirror://gnu/coreutils/coreutils-6.12.tar.lzma mirror://gentoo/coreutils-6.12.tar.lzma mirror://gentoo/coreutils-6.12-patches-1.0.tar.lzma http://dev.gentoo.org/~vapier/dist/coreutils-6.12-patches-1.0.tar.lzma # cat /var/db/pkg/sys-apps/coreutils-6.12-r2/HOMEPAGE http://www.gnu.org/software/coreutils/
Pero, por supuesto, el código fuente probablemente aún esté disponible en /usr/portage/distfiles
.
Lo que hice fue escribir
man factor
y fue al fondo y encontró ''GNU coreutils 6.10''. Así que busqué en Google ''coreutils'' y ... encontré el sitio al que acaba de vincular joschi.
Normalmente encuentro un enlace a la fuente, página de inicio y otra información útil haciendo una búsqueda de carne fresca .
Para encontrar el paquete del que proviene un binario, en un sistema basado en rpm, puede escribir:
$ rpm -qf /usr/bin/factor
que imprimirá el nombre del paquete. En cambio, con:
$ rpm -qif /usr/bin/factor
también obtendrá información sobre un paquete, incluida su página de inicio en muchos casos.
Las rpms de origen también existen, pero la forma de obtenerlas depende del administrador de paquetes de alto nivel que se utilice además de las RPM (yum, urpmi, apt-get4 para rpm, ...).
En la mayoría de los sistemas, también, / usr / share / doc / contiene cierta documentación sobre el programa, y el enlace del sitio web se encuentra muy a menudo en algún lugar, tal vez en el archivo README.
Por lo general, encontrará el código fuente en el sitio web del programa si es de código abierto. En este caso aquí ya que factor es parte de coreutils.
Otro enfoque muy bueno es usar Google Code Search . Por ejemplo, una búsqueda de factores coreutils (consulte la página de manual o factor --help
para ver si es de coreutils) vino con el paquete como el segundo resultado. A dos clics de distancia estaba navegando factor.c en línea.
Google Code Search busca la mayoría del código fuente público. Puede usar expresiones regulares y muchas opciones de búsqueda avanzada, incluida la restricción por idioma y licencia.
También puede averiguar qué paquete el binario proviene de una descarga que empaqueta el código fuente.
En Debian (y Ubuntu y cualquier otra cosa que esté basada en Debian) lo haces así:
$ dpkg -S /usr/bin/factor coreutils: /usr/bin/factor $ apt-get source coreutils
El primer comando verificará qué paquete contiene el archivo que está buscando (use " which factor
" para averiguar qué binario se ejecuta cuando simplemente escriba " factor
").
El segundo comando descargará y descomprimirá las fuentes (incluidos los parches aplicados para compilar el paquete) en el directorio actual, por lo que debe ejecutarse en un directorio dedicado o temporal.
Estoy bastante seguro de que las distribuciones basadas en rpm
tienen un mecanismo similar, pero no conozco sus comandos.