Я действительно не понимаю ясно, какие части входа являются переменными и которые являются постоянными. Предположим, Type
является переменным и default
, super
константы, можно использовать следующее sed
сценарий
s:<\([^>]\+\)>default</\1>:<\1>super</\1>:
Каждый deb пакет имеет список зависимостей, которые должны быть встречены перед установкой. Можно перечислить зависимости deb использования файла dpkg --info path_to.deb
. Вот пример:
new debian package, version 2.0.
size 5800810 bytes: control archive=2527 bytes.
1301 bytes, 20 lines control
3074 bytes, 41 lines md5sums
721 bytes, 22 lines * postinst #!/bin/sh
637 bytes, 18 lines * postrm #!/bin/sh
Package: qgis
Version: 1.8.0~precise1
Architecture: i386
Maintainer: Quantum GIS developers <qgis-developer@lists.osgeo.org>
Installed-Size: 10374
Depends: libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), libgdal1-1.7.0, libgsl0ldbl (>= 1.9), libpq5, libproj0, libqgis1.8.0, libqt4-network (>= 4:4.5.3), libqt4-sql (>= 4:4.5.3), libqt4-svg (>= 4:4.5.3), libqt4-xml (>= 4:4.5.3), libqtcore4 (>= 4:4.8.0), libqtgui4 (>= 4:4.8.0), libqtwebkit4 (>= 2.2~2011week36), libqwt5-qt4, libspatialite3 (>= 3.0.0~beta20110817), libsqlite3-0 (>= 3.5.9), libstdc++6 (>= 4.6), qgis-providers (= 1.8.0~precise1), qgis-common (= 1.8.0~precise1)
Recommends: qgis-plugin-globe, qgis-plugin-grass, python-qgis
Suggests: gpsbabel
Conflicts: uim-qt3
Section: science
Priority: extra
Homepage: http://qgis.org/
Description: Geographic Information System (GIS)
A Geographic Information System (GIS) manages, analyzes, and displays
databases of geographic information. Quantum GIS (QGIS) supports shape file
viewing and editing, spatial data storage with PostgreSQL/PostGIS, projection
on-the-fly, map composition, and a number of other features via a plugin
interface. QGIS also supports display of various georeferenced raster and
Digital Elevation Model (DEM) formats including GeoTIFF, Arc/Info ASCII Grid,
and USGS ASCII DEM.
Самый важный для Вас раздел, "Зависит", содержит список пакетов и их версии, которая должна быть установлена для установки пакета. Поскольку каждый пакет может быть информацией о точной версии, минимальной версии или максимальной версии.
Поскольку Вы видите выше qgis
требует libgdal1-1.7.0
(это - имя не версия). Текущая версия этого пакета в Ubuntu repo 1.7.3-6ubuntu3
(заметьте, что минимальная версия пакета не обеспечивается!).
Когда Вы компилируете тот lib из источников (./configure && make && make install
или что-то как этот), Вы помещаете двоичные файлы того пакета в системных каталогах. Но когда Вы устанавливающий пакет через способный, синаптическое или способность они не заботятся о двоичных файлах. Они используют установленный индекс пакетов (где-нибудь в /var/
) и они не знают, что Вы установили ту библиотеку из источников, таким образом, они устанавливают все зависимости. Для создания это оснащает знающий, что существует gdal
в системе Вы могли подготовить deb пакет от скомпилированного исходного кода и установить его с помощью dpkg. Должно быть некоторое учебное руководство об этом на Wiki Debian. Но даже когда Вы готовитесь, такие инструменты управления пакета пакета все еще будут искать пакет с именем libgdal1-1.7.0
(конечно, Вы могли подготовить пакет с gdal
1.9.1 и имя это libgdal1-1.7.0
, но это не хорошая идея - могли быть некоторые изменения API в более новой версии, и это возможно это qgis
откажет или что-то вроде этого).
qgis
использует старый gdal
?Ubuntu имеет долгий цикл выпуска, поэтому когда пакет repo был заморожен, это могла быть лучшая идея по некоторым причинам использовать более старую версию этого пакета. Или возможно нет никого готового подготовить новую версию?;)
Да. Можно загрузить выбранный пакет и переупаковать его с измененным списком зависимости:
mkdir tmp
dpkg -x package.deb ./tmp
dpkg -e package.deb
nano ./tmp/DEBIAN/control and change dependency list
mkdir ./build
dpkg-deb -b ./tmp ./build
Можно сделать это, но существует шанс, что у Вас будут некоторые проблемы в будущем с установкой программного обеспечения из-за несоответствия в глобальном установленном списке пакетов.
Иногда компиляция более новой версии из источника является единственным возможным решением проблемы, но, как правило, лучше избегать его, если это не абсолютно необходимо. Обход системы пакета обычно означает получать краткосрочную фиксацию для большого количества долгосрочной боли. И если Вы компилируете и устанавливаете более новую версию gdal в, скажем,/usr/local затем, необходимо скомпилировать gqis также.
Лучший вопрос был бы: "Где я могу получить более новый gdal пакет библиотеки для Ubuntu?" следовал "и где я могу получить gqis пакет для Ubuntu, скомпилированной для использования его?"
Ответ на оба этих вопроса - то, что более новые версии обоих упаковываются в предстоящей 'quantal' версии Ubuntu, должной быть выпущенной приблизительно за месяц. В настоящее время quantal имеет следующие версии (но это, вероятно, изменится к тому времени, когда он выпущен),
http://packages.ubuntu.com/quantal/qgis (1.7.4+1.7.5~20120320-1.1)
(1.9.0-3ubuntu3) http://packages.ubuntu.com/quantal/libgdal1
Возможно настроить склонный так, чтобы это знало о пакетах и из Точной Ubuntu и из Ubuntu Quantal, но предпочесть пакеты от Точного по умолчанию. Это позволило бы Вам вынуждать quantal версии определенных пакетов быть установленными.
Ищите здесь или на родственных сайтах как https://askubuntu.com/для "Прикрепления APT" для получения дополнительной информации о том, как сделать это - https://askubuntu.com/questions/103320/install-packages-from-newer-release-without-building-apt-pinning, например.
Обратите внимание, что установка более новых пакетов от более новой версии Ubuntu как это может заставить другие пакеты быть обновленными, даже если бы Вы не указывали их - если пакет, который Вы хотите установленный, зависит от более новых версий других пакетов, затем единственный способ удовлетворить те зависимости состоит в том, чтобы установить их также.
Другая альтернатива должна бэкпортировать - т.е. загрузить debianised источники для libgdal1 и gqis от Quantal и перекомпилировать пакеты для Точного. Это может включить загрузку и перекомпиляцию исходных пакетов для любых других пакетов, от которых зависят те два (и в свою очередь, те дополнительные пакеты, возможно, также обновили зависимости, которым нужна перекомпиляция... и так далее). Это - обычно намного больше работы для бэкпортирования пакетов как это, чем это должно использовать способное прикрепление.