Да,dkms
поддерживает этот сценарий . Вам необходимо установить соответствующее ядро и заголовки в системе CI; затем установите модуль dkms
, который вы хотите отправить, и запустите
dkms mktarball
с соответствующим модулем и версией. Скопируйте полученный архив в целевые системы и загрузите его с помощью
dkms ldtarball /path/to/dkmstarball
Это установит бинарные модули и сделает их доступными.
Специально для Debian вы также можете создать пакет Debian, содержащий предварительно -встроенные модули, используя
dkms mkdeb
с соответствующим модулем и версией. См. , справочную страницу dkms
и HOWTO для получения подробной информации.
Симлинки ведут себя очень запутанно, не только с cp
, но также с chmod
, chown
и встроеннымtest
(или его [.. ]
псевдонимом ), например.
Сначала удалить символическую ссылку (rm -f sd/common.py
), затем cp
.
Конечно, разные cp
в разных системах имеют разные варианты для этого, но очень легко ошибиться -ногой.
Еще одна вещь, которую вы можете сделать, это избежать cp
и стремиться к результату символической ссылки.ln -sf SOURCE DESTINATION
(с обоими аргументами являются абсолютными путями )работает во всех системах POSIX и не создает дополнительных путаниц. -f
удаляет любой существующий DESTINATION
файл/симлинк (, но не каталог, увы ). Вы можете комбинировать это с realpath
, чтобы избежать проблемы относительного/абсолютного пути :
ln -sf "$(realpath "$SOURCE")" "$(realpath "$DESTINATION")"