Arch Linux: определение зависимостей сборки, чтобы их можно было превратить в зависимости AUR

set -x предназначен для сценариев оболочки bash, он не работает для бинарных файлов.

Если вам нравится отслеживать выполнение бинарных файлов, вам следует использовать отладчик (например, gdb)

2
11.08.2016, 22:16
1 ответ

Большинство пакетов хотят быть полезными при их установке, поэтому они будут иметь некоторую информацию о зависимостях в файле README или INSTALL . В противном случае - да, проверяя сценарий configure , это единственная реальная опция (Примечание: autoconf создает configure.log , который перечисляет зависимости, а несколько других сценариев configure выводят зависимость резюме в конце, чтобы упростить упаковщикам).

Для рассматриваемой проблемы наиболее полезен README, он говорит:

Linux
- pcsclite 1.8.3 or above
- libusb 1.0.9 or above
- flex
- perl
- pkg-config

Теперь давайте посмотрим на это. Пакет AUR может предполагать, что установлены группы пакетов base и base-devel , что упрощает рассуждение. Перечисляя зависимости, мы видим:

  • pkg-config : находится в base-devel , нам не нужно об этом заботиться.

  • perl : является частью base , хорошо.

  • flex : снова base-devel .

  • libusb 1.0.9 или выше и pcsclite 1.8.3 или выше

     pacman -Ss libusb 
    core / libusb 1.0.20-1 
    Библиотека, предоставляющая общий доступ к USB-устройствам 
     
    pacman -Ss pcsclite 
    community / pcsclite 1.8.16-1 
    библиотека промежуточного программного обеспечения для смарт-карт архитектуры PC / SC 
     

Прелесть распространения с повторением транзакций заключается в том, что вы можете предположить, что у пользователя есть последние пакеты (если он вменяемый пользователь, он сделает pacman -Syu перед установкой вашего пакета AUR).Поэтому мы можем просто сделать (внутри PKGBUILD ):

depends=(libusb pcsclite)

Дополнительное примечание: иногда не так просто найти пакет, о котором говорится в README или INSTALL . В этом случае нужен google-fu . Тем не менее, у Arch также есть pkgfile , который представляет собой базу данных, в которой какие файлы и какие пакеты находятся.

Для поиска зависимостей, которые нужно добавить в пакеты AUR, я настоятельно рекомендую установить pkgfile , то есть

pacman -S pkgfile

, а затем вы можете запросить подозрительные пакеты для библиотек, например

pkgfile -l <package> | grep lib
1
27.01.2020, 22:19

Теги

Похожие вопросы