Знание файлов, созданных / установленных после сборки из источника
У меня есть задача для завершения, которая включает в себя создание ряда библиотек из исходного кода с использованием configure; make; make install
, Сгенерированные библиотеки и файлы разного формата будут помещены во встроенную систему, совместимую со средой сборки.
У меня вопрос: как узнать, какие файлы установлены и где я могу их перехватить и перенести во встроенную среду?
Является ли журнал, созданный путем запуска make install
? Или я просто делаю вывод make install
в файл?
Предложения, советы и подсказки будут с благодарностью.
2 ответа
Ты можешь использовать make -n install
чтобы увидеть, что сделает make install. Обратите внимание, что иногда одна из команд, которые он запускает, является другой make
в дочернем каталоге; make -n
не рекурсивный
Если программное обеспечение использует стандартный скрипт конфигурации gnu autoconf, вы должны быть в состоянии
./configure --prefix=/my/directory/for/embedded/system [...]
и тогда все будет установлено под этим префиксом.
Вы можете попробовать скопировать его в "стандартные" места встроенной системы, но программное обеспечение может работать, а может и работать неправильно.
Если ничего другого, вы можете использовать это как способ сбора информации о том, что устанавливает программное обеспечение.
Другой трюк - попробуйте изменить Makefile, чтобы переопределить команду, которая устанавливает файлы (часто "install" или "install.sh"). Замените его своей версией, которая записывает свое действие в файл журнала.
Если вам нужно более легкое решение для управления этим (против RPM или dpkg), взгляните на GNU Stow.
Это причина № 1 использовать упаковочную систему, такую как RPM (Red Hat) или deb (Debian).
Для встраиваемых систем Linux обычной системой управления пакетами является opkg, преемник ipkg, который свободно основан на формате deb и обычно легко адаптируется из инструкций по сборке пакетов Debian.