Обновление программного обеспечения в Linux

Обновление программного обеспечения в Linux

У меня есть программа zlib, которую мне нужно обновить. Поскольку я никогда ее раньше не скачивал, я подозреваю, что она идет с Ubuntu.

Обычно я бы просто скачал и скомпилировал его, но другой инструмент (vcftools) собирается его использовать, поэтому я не могу просто установить его локально. Я подозреваю, что мне нужно либо

  1. Установите новую версию zlib где-нибудь и скажите системе искать zlib в папке, куда я его установил. Если zlib обратно совместим, то это должно быть нормально, я надеюсь.

  2. Обновите текущую версию (но sudo apt-get install говорит мне, что у меня самая последняя версия)

Как это сделать? Спасибо.

решение1

Мне кажется, вы немного путаете. zlibэто просто еще один локально установленный пакет на вашем Ubuntu box. Я бы сначала посмотрел, есть ли более новая версия zlibв одном из репозиториев Ubuntu/Debian, содержащих все программное обеспечение, которое вы можете установить (предварительно собранное) для Ubuntu/Debian и других ОС, которые происходят от любого из этих 2 дистрибутивов.

$ apt-get install zlib

Но прежде чем выполнить эту команду, давайте еще раз проверим, что пакет действительно называется zlib:

$ dpkg -l |grep zlib
ii  zlib1g:amd64                              1:1.2.7.dfsg-13                           amd64        compression library - runtime

Таким образом, похоже, что пакет на самом деле называется zlib1g. Чтобы обновить его:

$ apt-get install zlib1g
Reading package lists... Done
Building dependency tree       
Reading state information... Done
zlib1g is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 15 not upgraded.

Так что я застрял на этой конкретной версии, или более новой версии просто нет.

Другой подход

Вы могли бы довольно легко загрузить последнюю версию zlib, 1.2.8, и скомпилировать ее, а затем LD_LIBRARY_PATHвременно настроить ваш , чтобы он указывал на ваши скомпилированные версии этих библиотек. Это позволило бы вам попробовать его, не устанавливая его на вашей системе прямо сейчас.

После того, как вы установили LD_LIBRARY_PATH, вы можете вызвать VCFtoolsих, чтобы опробовать.

Следующие шаги

Ваш следующий вариант — найти сторонний репозиторий с новой версией zlib1g или загрузить исходный пакет и собрать свой собственный файл .deb с его помощью. Существует множество руководств по настройке собственной среды сборки пакетов и сборке своего первого файла .deb. Звучит сложнее, чем есть на самом деле.

решение2

Определенный релиз дистрибутива поставляется с определенной версией каждой программы. Вот что такое релиз. (Существуют дистрибутивы «плавающего релиза», в которых вы тратите все свое время на обновление до следующей версии каждой части программного обеспечения. Если у вас есть более важные дела, придерживайтесь выпущенного дистрибутива.)

Theверсия пакета zlib1gв Ubuntu 12.04 (precise) — 1.2.3.4, а версия в Ubuntu 12.10 (quantal) — 1.2.7. Вы можете загрузить исходный пакет (все три файла: .dsc, .diff.gzи .orig.tar.gzили .debian.tar.gz) с веб-сайта Ubuntu, а затем скомпилировать эту версию как пакет.

sudo apt-get install build-essential fakeroot
sudo apt-get build-dep zlib
dpkg-source zlib_1.2.7.dfsg-13.dsc
cd zlib-1.2.7.dfsg
dpkg-buildpackage -rfakeroot -us -uc -b -nc
sudo apt-get install ../zlib1g-1.2.7.*.deb

Обратите внимание, что установка новых версий библиотеки может потенциально вызвать несовместимость. Я сомневаюсь, что у вас возникнут проблемы с zlib, но это не то, к чему стоит относиться легкомысленно.

В качестве альтернативы установите более новую версию библиотеки где-нибудь в вашем домашнем каталоге и используйте ее только для конкретной программы, которой она нужна. Если вы компилируете и устанавливаете zlib в ~/lib/zlib1.2.8/lib, вот подходящий скрипт-обертка:

#!/bin/sh
export LD_LIBRARY_PATH=~/lib/zlib1.2.8/lib
exec vcftools "$@"

Связанный контент