Привет всем.
Вот есть к примеру в линуксе бинарник находящийся по пути /bin/login или любой другой (gedit например).
ОС: debian
Собственно вопросы:
- Где я мог бы найти исходный код данного бинарника? (полагаю это код на С или С++)
- Как мне его заново скомпилировать?
Суть в том, что мне нужно внести некоторые изменения в бинарные файлы, а если конкретно то изменить путь.
Я точно знаю что он там указан, т.к когда я открываю бинарник с помощью Notepad++ или в любом другом текстовом редакторе, то среди "крякозябров" я вижу там вполне читабельный текст, в частности путь.
Простое редактирование бинарника конечно же никак не поможет, вот и ищу способ как его заново скомпилировать.
А в какую директорию они будут скопированы?
Просто я полагал что я смогу их достать в виде каких либо архивов, затем перекомпилить (полагаю процесс описан в README) и затем просто заменить /bin/login на мой скомпилированный бинарник.
Разве все не так?
sergeimvc, не помню точно, то ли в /usr/sources, то ли в /usr/local/sources.
Погуглите, для вашего плана придумали автоматическую сборку из исходников в Debian.
команда не совсем верная, но направление мысли правильное:
apt-get source gedit
исходники будут скачаны в текущий каталог. https://wiki.debian.org/BuildingTutorial по ссылке описано и где взять исходники, и как их пропатчить, и как собрать пакет.
1. Идём в гугль.
2. Говорим заклинание имяпрограммы sources Например gedit sources. Первой-же ссылкой получаем линк на гитхаб.
3. Читаем README.MD и действуем так как там описано.
Vadim Priluzkiy с gedit все просто. А вот как быть если мне нужно к примеру поулчить исходники /bin/login, /bin/ls, /bin/cp, /bin/mv и других системных бинарников?
Vadim Priluzkiy, а если не перейдёт, то так и будет страдать, вкорячивая ПО из исходников в бинарный дистрибутив и пересобирать пол системы в попытках поставить последнюю версию софтины в oldstable.
Вы вообще сможете сходу назвать хоть один дистр , который настолько положил на GPL, что не предоставляет исходников, кроме импортозамещающей российско-китайской параши?
neol, Это к чему вообще? Спич был за недоступность исходников. О запакованности или там скорости загрузки исходников спича не было. И потом, плодить сущности в разных местах и в разном виде -- увеличивать энтропию вселенной. ;-)
Дря rpm пакетов есть такая штука как src rpm в которой есть исходники, spec file, и прочии мелочи ввиде конфигов, манов и юнит файла. Это повзовлит вам с минимумом усилий пересобрать нужный вам пакет.