Cada pacote deb tem uma lista de dependências que devem ser atendidas antes da instalação. Você pode listar as dependências do arquivo deb usando dpkg --info path_to.deb
. Aqui está o exemplo:
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 <[email protected]>
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.
O mais importante para você é a seção "Depende" contém uma lista de pacotes e sua versão que deve ser instalada para instalar o pacote. Para cada pacote pode haver informações sobre a versão exata, versão mínima ou versão máxima.
Como você pode ver acima, qgis
requer libgdal1-1.7.0
(o nome não é a versão). A versão atual deste pacote no repositório do Ubuntu é 1.7.3-6ubuntu3
(observe que a versão mínima do pacote não é fornecida!).
Quando você compila essa lib de fontes ( ./configure && make && make install
ou algo parecido), você coloca binários desse pacote nos diretórios do sistema. Mas quando você instala o pacote via apt, synaptic ou aptitude eles não se importam com binários. Eles estão usando o índice de pacotes instalados (em algum lugar em /var/
) e não sabem que você instalou essa biblioteca a partir de fontes, então eles estão instalando todas as dependências. Para fazer com que as ferramentas percebam que existe gdal
no sistema, você pode preparar o pacote deb a partir do código-fonte compilado e instalá-lo usando o dpkg. Deve haver algum tutorial sobre isso no wiki do Debian. Mas mesmo quando você preparar essas ferramentas de gerenciamento de pacotes, você ainda estará procurando pelo pacote com o nome libgdal1-1.7.0
(é claro que você poderia preparar o pacote com gdal
1.9.1 e nomeá-lo libgdal1-1.7.0
, mas não é uma boa idéia Algumas mudanças de API na versão mais recente e é possível que qgis
caia ou algo assim).
Por que qgis
está usando o antigo gdal
?
O Ubuntu tem um longo ciclo de lançamento, por isso, quando o repositório de pacotes foi congelado, pode ser melhor, por alguns motivos, usar uma versão mais antiga deste pacote. Ou talvez não haja ninguém disposto a preparar nova versão? ;)
Existe uma maneira de alterar a lista de dependências?
Sim. Você pode baixar o pacote selecionado e empacotá-lo com a lista de dependências alterada:
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
Você pode fazer isso, mas há uma chance de que você tenha alguns problemas no futuro com a instalação do software devido à inconsistência na lista global de pacotes instalados.