set -x
предназначен для сценариев оболочки bash, он не работает для бинарных файлов.
Если вам нравится отслеживать выполнение бинарных файлов, вам следует использовать отладчик (например, gdb
)
Большинство пакетов хотят быть полезными при их установке, поэтому они будут иметь некоторую информацию о зависимостях в файле 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