Как найти зависимости при сборке программного обеспечения из исходного кода?
Вот что я сделал. Я скачал foxtrotgps.1.1.1.tar.gz, так как он является последним в /home/crash/usr/local.src. Я распаковал его в мой / home / crash / usr / local / src как каталог /foxtrotgps.1.1.1
Затем я проверил все необходимые пакеты для правильного уровня, и они были или, если не хватает, я добавил их.
Затем я иду в каталог FTGPS и делаю./configure, и он попадает туда, где он говорит;
No package 'gtk+-2.0' found
No package 'gdk-2.0' found
No package 'gthread-2.0' found
Но gtk+-2.0 есть, но я не нахожу gdk или gthread. И это останавливается и никуда не идет. Что я делаю неправильно - какие зависимости пакетов мне не хватает?
2 ответа
условие
Я предполагаю, что вы используете последнюю версию Ubuntu, такую как 12.04. Версии в репозитории считаются стабильными, поэтому, возможно, вы захотите использовать эту версию.
Однако, если вам нравится жить на переднем крае - компиляция или установка из PPA - это путь. Просто помните, что этот маршрут может оставить вашу систему в потенциально нестабильном состоянии.
как скомпилировать
Вы должны установить следующие зависимости:
sudo apt-get install autotools-dev intltool libbluetooth-dev libcurl4-gnutls-dev libexif-dev libgconf2-dev libglade2-dev libgps-dev libgtk2.0-dev libsoup2.4-dev libsqlite3-dev libxml2-dev
Не забудьте также установить пакет build-essential т.е.
sudo apt-get install build-essential
так как я узнал, что
... ну я как-то обманул.
Поиск на http://packages.ubuntu.com/ для вашего пакета - я искал foxtrotgps в квантовом хранилище.

Посмотрите на ресурсы и найдите файл debian.tar.xz. Нажмите на него - он откроется в диспетчере архивов. Перейдите к control файл в папке debian.

В разделе, посвященном сборке, находятся пакеты, необходимые Launchpad для сборки исходного кода. Это те же пакеты, которые вам нужно установить.
Иногда вы можете скомпилировать новую версию, не используя PPA для исходных зависимостей, и использовать build-dep особенность в Ubuntu. Убедитесь, что у вас выбраны исходные пакеты и есть эта строка в вашем файле sources.list:
deb-src http://archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse
Вы можете проверить, введя в терминале cat /etc/apt/sources.list,
Я успешно скомпилировал Stellarium 0.11.3, Scummvm 1.5.0и другие, получая зависимости с build-dep; например:
sudo apt-get build-dep scummvm
Для пакетов, уже находящихся в репозиториях, вы можете проверить зависимости с помощью:
apt-cache show foxtrotgps
и сравните это с зависимостями, необходимыми для более новой версии, которая будет указана на веб-сайте программы или в файле readme с загрузкой исходного кода.
Обычно при получении зависимостей через build-dep Затем вы должны загрузить стабильный исходный код с сайта программы, а не версию для разработчиков или git. Не всегда будет возможно скомпилировать новую версию таким образом, но это стоит попробовать. (Например, для Gimp 2.8 требуется более поздняя версия Gtk, которую невозможно найти, используя исходные файлы для Precise.)
Тем не менее, я использовал build-dep метод успешно для Foxtrotgps; просто следуйте этим шагам (при условии, что вы установили build-essential):
Загрузите самый последний стабильный исходный код (на данный момент версию 1.1.1) с сайта Foxtrot
Откройте терминал и введите
sudo apt-get build-dep foxtrotgps- Распакуйте загруженный исходный код с помощью
tar xzvf <file>а такжеcdв папку фокстрот. Затем выполните следующие три команды: ./configuremakesudo checkinstall(установитьcheckinstallесли у вас его нет, или используйтеsudo make install)
Ниже приведен скриншот скомпилированной программы foxtrotgps:
