2011-10-21 24 views

Respuesta

5

Si se encuentra en un sistema Debian como Ubuntu se puede intentar algo en estas líneas: dpkg -S <utility>, esto le dirá cuál es el paquete instaló esta utilidad; entonces puedes obtener la fuente usando apt-get source <package-name>. Para obtener el código fuente asegúrese de que tiene deb-src entrada en /etc/apt/sources.list
Por ejemplo en el sistema Ubuntu que utilizo:

$ dpkg -S pidof 
sysvinit-utils: /bin/pidof 
sysvinit-utils: /usr/share/man/man8/pidof.8.gz 

lo tanto, el nombre del paquete es Sysvinit-utils

$ apt-get source sysvinit-utils 
Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
Picking 'sysvinit' as source package instead of 'sysvinit-utils' 
NOTICE: 'sysvinit' packaging is maintained in the 'Svn' version control system at: 
svn://svn.debian.org/pkg-sysvinit/sysvinit/trunk 
... 
dpkg-source: info: extracting sysvinit in sysvinit-2.87dsf 
dpkg-source: info: unpacking sysvinit_2.87dsf-4ubuntu17.4.tar.gz 

paquete Fuente recogido. También informa sobre svn donde se guarda la fuente.

$ ls sysvinit* 
sysvinit_2.87dsf-4ubuntu17.4.dsc sysvinit_2.87dsf-4ubuntu17.4.tar.gz 

sysvinit-2.87dsf: 
contrib/ COPYRIGHT debian/ doc/ man/ obsolete/ README src/ 

Estoy seguro de que debería ser equivalente a esto en sistemas que no sean Debian. Google podría ayudarte.
Espero que esto pueda ayudar un poco!

Editar: Un poco de información para yum:
1. Búsqueda de paquete: yum whatprovides <package_name> Así que para tal pidof:

yum whatprovides `which pidof` 

2. Obtener la fuente: yumdownloader --source <source_name>. Puede necesitar yum-utils para esto. Más información en this link
Aunque no lo he intentado, ¡pero supongo que puede intentarlo!

+0

Gracias. Estoy en RH Enterprise Linux. Hice rpm -qf/sbin/pidof que dio SysVinit-2.86-15.el5.x86_64. Luego descargué SysVinit-2.86-15.el5.src.rpm, lo instalé y lo hice tar -xvf sysvinit-2.86.tar.gz de/usr/src/redhat/SOURCES /. Veo la implementación de pidof en killall5.c – Manohar

+0

@Santhosh: Ah bien ... ¡Acabo de buscar en Google y agregué algo en la edición! ¡Lo que sea que funcione para ti es bueno! Tienes ese derecho, está en 'killall5.c' –

2

He encontrado el código fuente pidof aquí: Source Code

+0

Esa es la implementación de BusyBox, que se basa en una función de biblioteca 'find_pid_by_name()' para hacer la mayor parte del trabajo pesado. –

+0

Qué tal [esto] (http://code.google.com/p/secured/source/browse/src/pidof.c?spec=svnd53f28f2475e9a969735475ae95d1e217e40a66e&r=d53f28f2475e9a969735475ae95d1e217e40a66e). – tr4656

Cuestiones relacionadas