J'ai soudainement décidé que j'aimerais regarder le code source de 'echo'
$ which echo
/usr/bin/echo
donc
$ ls -al /usr/bin/echo
-rwxr-xr-x. 1 root root 32536 Oct 31 2016 /usr/bin/echo
donc
$strings /usr/bin/echo
me fait croire que c'est un programme C compilé
Maintenant je suis coincé.
Comment puis-je:
Découvrez dans quel package il se trouve
Obtenez la source
Reconstruisez-le
Essaye-le
Installer la nouvelle version à l'échelle du système
(Je sais que 5 n'est pas une bonne idée, je suis juste curieux ...)
Je suis actuellement sur Fedora, mais je serais également intéressé par les réponses pour Debian
Un lien vers un tutoriel pertinent serait une bonne réponse.
Éditer:
$ type -a echo
echo is a shell builtin
echo is /usr/bin/echo
Je suppose donc que c'est celui /usr/bin/echo
que j'aimerais voir plutôt que d'essayer de lire l'ensemble bash
.
debian
fedora
source-code
John Lawrence Aspden
la source
la source
type -a echo
abord./usr/bin/echo --version
ensuite.Réponses:
RHEL / Fedora
Courir
rpm -qf /path
Téléchargez le package source (à utiliser
yum
pour RHEL):Extrayez les sources, les correctifs du package SRPM téléchargé dans le répertoire actuel, accédez au répertoire dans lequel les fichiers sont extraits et recherchez votre fichier:
Vous pouvez reconstruire le package à l'aide de
rpmbuild --rebuild coreutils-8.25-17.fc25.src.rpm
, ce qui produira les RPM que vous pouvez installer directement sur votre système.Si vous devez apporter des modifications aux packages fedora, il est beaucoup plus facile de suivre la voie du responsable: installez
fedpkg
, clonez le référentiel, effectuez les modifications (à l'aide de correctifs) et reconstruisez le package avec des modifications:la source
Debian (et dérivés)
Exécutez
dpkg -S /path
pour voir à quel package/path
appartient:Obtenez la source (je suis sur Ubuntu):
Trouvez le fichier:
Le reste dépend de toi.
la source
dpkg -s coreutils
(ou tout autre package qui vous intéresse) et recherchez leHomepage:
. À partir de la page d'accueil, vous pouvez généralement trouver un accès en lecture à leur code source et à l'historique complet des versions.