DirectAdmin vs. APT

DirectAdmin vs. APT

Panel administracyjny DirectAdmin jest sporym ułatwieniem dla użytkowników końcowych, jednak dla administratorów stanowi czasami ograniczenie i nie pozwala wykonać niektórych czynności w sposób, w jaki byśmy sobie tego życzyli.

Flagowym przykładem tego typu zachowania jest sposób w jaki DirectAdmin instaluje oprogramowanie.

Dla wyjaśnienia: DirectAdmin wymaga całkowicie czystego systemu do instalacji, nie może to być serwer, na którym jest zainstalowany serwer www, czy baz danych. Musi to być system od razu po instalacji. Sam proces instalacji panelu, nie jest czynnością skomplikowaną, wystarczy edytować plik konfiguracyjny, gdzie wybieramy oprogramowanie, którego sobie życzymy. M.in. wersje PHP, bazy MySQL czy serwera Apache. Następnie wybrane oprogramowanie zostaje skompilowane ze źródeł i zainstalowane w systemie.

Niestety, w przypadku dystrybucji pakietowych, takich jak Debian, sposób instalacji oprogramowania przez DirectAdmin'a jest dość uciążliwy.

Przykład z życia:

Przy instalacji DirectAdmin'a, została wybrana baza danych MySQL w wersji 5.1, jednak w repozytoriach Debiana, znajduje się MySQL w wersji 5.0 (5.1 jest w repozytorium backports). Konflikt ten ujawnia się dopiero, gdy potrzebujemy pakietu z repozytorium, który w zależnościach ma wpisanego klienta mysql w wersji 5.0.

Pozornie moglibyśmy zainstalować  dwie wersje biblioteki do obsługi baz danych, jednak wywoła to spory konflikt w systemie. Skompilowana wersja 5.1, a binarna 5.0, spowoduje to niepoprawne działanie niektórych aplikacji, a czasem nawet brak dostępu do całej bazy danych.

Jeśli zainstalujemy pakiet bez dbania o zależności, nie będzie on działał, ponieważ wymaga biblioteki libmysqlclient15.so, a w systemie mamy libmysqlclient16.so.

Nasuwa się pytanie: Jak więc mam zainstalować pakiet (w tym przykładzie python-mysqldb), tak żeby działał?

Z pomocą przychodzi program equivs, który pozwala tworzyć tzw. dummy packages. Pakiet stworzony za pomocą equivsa 'udaje' prawdziwy pakiet i pozwala zainstalować bibliotekę, która ma niespełnione zależności.

Użycie:

istalacja: {code} apt-get install equivs {/code}

Teraz należy stworzyć plik, który będzie opisem dla przyszłego pakietu:

{code} nano mysqlclient.ctl {/code}

A w nim:

{code} Section: db Package: libmysqlclient16 Provides: libmysqlclient16 Version: 5.0.27-1 Description: MySQL client dummy package. {/code}

Potem wystarczy wykonać polecenie equivs-build mysql.ctl aby w bieżącym katalogu pojawił się pakiet .deb gotowy do instalacji.

Tagi:

Liczba wyświetleń: 734

Komentarze

« powrót