Назад | Перейти на главную страницу

libcurl сообщает о разных версиях команд

У меня раньше был cURL 7.22.0 на сервере Ubuntu 12.04 .. но теперь мне нужно перейти на cURL 7.30.0.

Для компиляции этой версии для Ubuntu я сделал следующее:

wget http://curl.haxx.se/download/curl-7.30.0.tar.gz

tar -xvzf curl-7.30.0.tar.gz

cd curl-7.30.0/

./configure --prefix=/usr

make clean

make

make install

После всего этого я побежал curl --version ожидая увидеть установленную новую версию. cURL обновился до 7.30.0, как и ожидалось, но libcurl не обновился:

curl 7.30.0 (i686-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 libssh2/1.2.8 librtmp/2.3 Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtmp rtsp scp sftp smtp smtps telnet tftp Features: GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP

Однако, если я убегу curl-config --version я получил libcurl 7.30.0 что правильно.

Кто-нибудь может объяснить, почему есть разница в номерах версий? И как заставить их всех показывать правильный 7.30.0?

Есть ли у кого-нибудь какие-либо учебники / советы / помощь вообще по правильный способ обновления всего, что связано с cURL, до более поздней версии. Эта тема, кажется, невероятно отсутствует в сети, не знаю почему: /

Спасибо

Редактировать - После одного из комментариев вот дополнительная информация:

which curl-config дает /usr/bin/curl-config

which curl дает /usr/bin/curl

whereis curl дает curl: /usr/bin/curl /usr/include/curl /usr/share/man/man1/curl.1.gz /usr/share/man/man1/curl.1

whereis libcurl дает libcurl: /usr/lib/libcurl.a /usr/lib/libcurl.so /usr/lib/libcurl.la /usr/share/man/man3/libcurl.3

echo $PATH дает /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Я воспроизвожу небольшой учебник, который написал для zabbix вики в надежде, что это будет полезно.

Пересборка пакета из исходного кода в Debian и производных (Mepis, Mint, Ubuntu)

Это руководство будет сосредоточено в первую очередь на Debian, хотя сборка из исходных кодов в других производных должна быть в основном таким же процессом. Восходящий документация по управлению пакетами, в конечном счете, является наиболее авторитетным источником мудрости.

Почему вы должны предпочесть упаковку, а не "make install"?

Пакеты облегчают вашу жизнь во многих аспектах:

  1. Вы можете легко развертывать пакеты во многих системах, используя репозиторий
  2. Вы можете установить и удалить их чистым способом
  3. Для вас отслеживаются зависимости от других пакетов
  4. Есть политика обновления файлов конфигурации

Где исходные пакеты? /

Проверьте, какие версии можно найти в официальных репозиториях Debian и Ubuntu

В этом руководстве рассматриваются следующие сценарии

  1. Вы используете стабильную версию Debian и хотите выполнить пересборку из исходного кода, чтобы изменить некоторые параметры по умолчанию.
  2. Вы используете стабильную версию Debian и хотите использовать версию в тестовой или нестабильной
  3. Вы хотите собрать пакет deb из исходных кодов
  4. Альтернативы официальной системе упаковки Debian

Остальная часть руководства предполагает, что команды выполняются пользователем без полномочий root с доступом sudo.

$ sudo -l

1. Вы используете стабильную версию Debian и хотите пересобрать исходные коды.

Это будет тот случай, когда вы хотите активировать / деактивировать некоторую функцию, которая встроена по умолчанию в предварительно скомпилированных двоичных файлах, применить дополнительный патч, выполнить резервное копирование функции, использовать оптимизацию времени компиляции (таргетинг на конкретную платформу, закалка параметры). Шаги будут такими:

Создайте временный каталог для работы

$ mkdir ~/temp && cd ~/temp

Получите исходный пакет

$ apt-get source curl 

или альтернативно (если у вас нет deb-src линия в вашем sources.list указывая на стабильную версию), вы можете получить файл .dsc из Интернета, для текущей стабильной версии это будет

$ dget http://security.debian.org/debian-security/pool/updates/main/c/curl/curl_7.21.0-2.1+squeeze3.dsc 

Любой из двух альтернативных методов будет

  1. получить исходники из репозиториев
  2. проверить криптографическую подпись пакета
  3. применить все патчи для конкретных дистрибутивов

Проверьте make-файл debian / rules

$ cd curl*
$ vi debian/rules

Это основной make-файл для процесса упаковки, здесь вы можете просмотреть дополнительные параметры настройки, а также включить / отключить функции, касающиеся всех пакетов, которые будут созданы (сервер, агент, прокси).

Просмотрите патчи с помощью лоскутное одеяло

Предположим, вас интересует один или несколько патчей дистрибутива. не применяется. Чтобы проверить, какие патчи доступны в источниках, используйте

$ quilt series

Проверить наличие уже примененных патчей (на этом этапе список должен быть идентичным)

$ quilt applied

Отменить все исправления

$ quilt pop -a

При желании удалите ненужные

$ quilt delete -r $patch_name

Примените остальные патчи

$ quilt push -a

Установите зависимости пакета, который вы собираетесь перекомпилировать

$ apt-get build-dep curl

При желании пометьте пакет

$ dch -l +local 'Rebuilt from sources'

Проверьте страницу руководства dch, если вам нужно добавить более подробную запись в журнал изменений.

Наконец, перекомпилируйте пакет

$ debuild -us -uc

После процесса за пределами каталога zabbix- * вы найдете только что скомпилированные пакеты deb, готовые к установке.

$ sudo dpkg -i $deb_package

2. Вы используете стабильную версию Debian и хотите использовать версию для тестирования или нестабильную версию.

Этот процесс известен как резервное копирование

Применяются следующие меры предосторожности

  • Пакет может вообще не собираться для вас
  • Для сборки могут потребоваться обновленные зависимости
  • Для сборки могут потребоваться дополнительные пакеты
  • Компоновка упаковки могла измениться

Процесс такой же, как восстановление для стабильного выпуска, за исключением пакета с исходным кодом, который можно получить либо из репозиториев apt, используя такую ​​строку в вашем sources.list (обратите внимание, только одна из двух альтернатив)

deb-src http://ftp.de.debian.org/debian/ testing main non-free contrib
deb-src http://ftp.de.debian.org/debian/ unstable main non-free contrib

или снова через Интернет

$ dget http://ftp.de.debian.org/debian/pool/main/c/curl/curl_7.30.0-1.dsc

Дополнительной мерой предосторожности будет маркировка пакетов для облегчения идентификации в случае необходимости удаления.

$ dch -l ~local 'Sid backport'

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

3. Вы хотите собрать пакет deb из исходных кодов.

Если вам нужна более свежая версия, чем та, которую можно найти в Sid, вы все равно можете проверить экспериментальный репозиторий, а мерзавец репозиторий mantainer (ов), чтобы увидеть, есть ли что-то в работе. Помимо этого, вам необходимо использовать репозиторий восходящего проекта, но все же можно извлечь выгоду из структуры пакетов Debian. С этой целью можно сделать снимок последней стабильной или альфа-версии. скачано. Итак, после загрузки пакета с исходным кодом из репозитория дистрибутива (Debian или Ubuntu, в зависимости от ситуации), как описано выше, следующие шаги будут следующими (могут применяться различия в используемых версиях):

 $ wget https://github.com/bagder/curl/archive/curl-7_30_0.zip
 $ mv master.zip curl-7.30.0.zip
 $ cd curl-${stable}
 $ uupdate ../curl-7.30.0.zip -v 7.30.0
 $ cd ../curl-7.30.0

После этого все исправления в debian / patches должны быть проверены, чтобы определить, полезны ли они по-прежнему или от них нужно отказаться. Используйте квилт, как описано выше. Завершите процесс перекомпиляции тегами

$ dch -l ~local 'Upstream packaging'

восстановление

$ debuild -us -uc

и установка

$ sudo dpkg -i $deb_package

пакет (ы).

4. Альтернативы официальной системе упаковки Debian

Некоторые люди считают систему упаковки Debian чрезмерно сложной, но все же хотят воспользоваться преимуществами использования упакованного программного обеспечения. Существуют некоторые проекты, которые пытаются решить эту ситуацию. Список приведен здесь, но детали использования этих инструментов оставлены в качестве упражнения для читателя.