Я вдруг решил, что хотел бы взглянуть на исходный код «эхо»
$ which echo
/usr/bin/echo
так
$ ls -al /usr/bin/echo
-rwxr-xr-x. 1 root root 32536 Oct 31 2016 /usr/bin/echo
так
$strings /usr/bin/echo
заставляет меня поверить, что это скомпилированная C-программа
Теперь я застрял.
Как я:
Узнайте, в какой упаковке он находится
Получить источник
Восстановите это
Проверь это
Установите новую версию для всей системы
(Я знаю, что 5 не очень хорошая идея, мне просто любопытно ...)
В настоящее время я нахожусь на Fedora, но меня также интересовали бы ответы для Debian
Ссылка на соответствующий учебник будет хорошим ответом.
Редактировать:
$ type -a echo
echo is a shell builtin
echo is /usr/bin/echo
Так что я думаю, что это тот, который /usr/bin/echo
я хотел бы увидеть, а не пытаться читать целиком bash
.
debian
fedora
source-code
Джон Лоуренс Аспден
источник
источник
type -a echo
первым./usr/bin/echo --version
дальше.Ответы:
RHEL / Fedora
Бегать
rpm -qf /path
Загрузите исходный пакет (используйте
yum
для RHEL):Извлеките источники, исправления из пакета SRPM, загруженного в текущий каталог, перейдите в каталог, в который извлекаются файлы, и найдите свой файл:
Вы можете пересобрать пакет с помощью
rpmbuild --rebuild coreutils-8.25-17.fc25.src.rpm
, который произведет RPM, которые вы можете установить непосредственно в вашей системе.Если вам нужно внести некоторые изменения в пакеты fedora, гораздо проще пойти по пути сопровождающего: установить
fedpkg
, клонировать репозиторий, внести изменения (с помощью исправлений) и пересобрать пакет с изменениями:источник
Debian (и производные)
Запустите,
dpkg -S /path
чтобы увидеть, какой пакет/path
принадлежит:Получить источник (я на Ubuntu):
Найдите файл:
Остальное зависит от тебя.
источник
dpkg -s coreutils
(или любой интересующий вас пакет) и поищитеHomepage:
. На главной странице вы можете найти доступ для чтения к их исходному коду и полной истории версий.