Apt függőség­feloldás ellenőrzése
A Zabbix monitorozó rendszert szerettem volna feltelepíteni az Ubuntu tárolóból. Az apt-get install parancsnál feltűnt, hogy az apache2 webszervert is hozná magával, amit semmiképpen sem szerettem volna, mert az nginx van használatban. A helyzet megoldásához látnom kellett, hogy az apt milyen okból döntötte el, hogy az apache2 telepítése lesz a helyzet megoldása.
Az apt.conf kézikönyvben fel vannak sorolva a különböző Debug beállítások. Ebben a listában hamar megtaláljuk az automatikus telepítéshez vezető döntés kiíratását:
Debug::pkgDepCache::AutoInstall Generate debug messages describing which packages are being automatically installed to resolve dependencies. This corresponds to the initial auto-install pass performed in, e.g., apt-get install, and not to the full apt dependency resolver; see Debug::pkgProblemResolver for that.
Az apt beállításokat nem muszáj beleírnunk az /etc/apt/apt.conf
fájlba, megadhatjuk az apt-get parancs után a -o
kapcsolóval:
sudo apt-get -o Debug::pkgDepCache::AutoInstall=true install zabbix-frontend-php
Ezután pedig látni fogjuk a kimenetben, hogy melyik telepítésre jelölt csomagot miért választotta ki az apt:
Reading package lists... Building dependency tree... Reading state information... Installing php5 as Depends of zabbix-frontend-php Installing libapache2-mod-php5 as Depends of php5 Installing apache2-bin as Depends of libapache2-mod-php5 Installing libaprutil1-dbd-sqlite3 as Depends of apache2-bin Installing libaprutil1-ldap as Depends of apache2-bin Installing apache2 as Depends of libapache2-mod-php5 Installing apache2-data as Depends of apache2 Installing php5-common as Depends of libapache2-mod-php5 Installing ttf-dejavu-core as Depends of zabbix-frontend-php Installing php5-ldap as Recommends of zabbix-frontend-php The following extra packages will be installed: apache2 apache2-bin apache2-data libapache2-mod-php5 libaprutil1-dbd-sqlite3 libaprutil1-ldap php5 php5-cli php5-common php5-curl php5-fpm php5-gd php5-ldap php5-mysql php5-readline ttf-dejavu-core
A fentiekből ki tudjuk olvasni, hogy az apache2 csomaghoz a libapache2-mod-php5 és a php5 csomag vezetett. A php5 egy meta-csomag, amit én nem telepítettem a php5-fpm mellé, enélkül viszont a php5re hivatkozó csomagok nem tudják, hogy igenis van működő php5 a rendszeren. Ezt a hibát gyorsan orvosoltam, majd újra lefuttattam a fenti parancsot, és rögtön rövidebb lett a telepítésre kijelölt csomagok listája:
Reading package lists... Building dependency tree... Reading state information... Installing ttf-dejavu-core as Depends of zabbix-frontend-php Installing php5-ldap as Recommends of zabbix-frontend-php The following extra packages will be installed: php5-ldap ttf-dejavu-core
Az apt debug beállításai nagyon jól jönnek az ilyen helyzetekben. Hamar sikerült megoldani, hogy a lehető legkevesebb csomaggal telepítsem fel a Zabbixot.