Как найти зависимости при сборке программного обеспечения из исходного кода?

Вот что я сделал. Я скачал 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 в папку фокстрот. Затем выполните следующие три команды:
  • ./configure
  • make
  • sudo checkinstall (установить checkinstall если у вас его нет, или используйте sudo make install)

Ниже приведен скриншот скомпилированной программы foxtrotgps:

фокстрот

Другие вопросы по тегам