Strona 1 z 3

Przy kompilacji PHP z MSSQL - ...zwrócił status błędu 2

: 29 grudnia 2008, 16:59
autor: Shezzy
Witam,
Mam problem po kierowaniu się według opisu:
http://www.howtoforge.com/enabling-mssq ... bian-lenny
Doszedłem do kroku 9 tj. dpkg-buildpackage.
Niestety kompilacja PHP 5-5.2.6 nie przebiega poprawnie. Po jakichś 40 minutach kończy się i wyświetla informację na ekranie:

Kod: Zaznacz cały

make[1]: *** [ext/imap/php_imap.lo] Błąd 1
make[1]: Opuszczenie katalogu `/usr/src/php5-5.2.6/apache2-build'
make: *** [build-apache2-stamp] Błąd 2
dpkg-buildpackage: niepowodzenie: debian/rules build zwrócił status błędu 2
W debian/rules dodawałem po MySQL linijkę:

Kod: Zaznacz cały

--with-mssql=shared,/usr/local/freetds

tak, że wygląda to mniej więcej tak:

Kod: Zaznacz cały

--with-mysql=shared,/usr \
                --with-mssql=shared,/usr/local/freetds \
                --with-mysqli=shared,/usr/bin/mysql_config \
Oczywiście zgodnie z opisem. Nie wiem czego dotyczy błąd i co z nim zrobić?

: 29 grudnia 2008, 17:44
autor: fnmirk
Moim zdaniem to źle się zabierasz jeżeli chodzi ogólnie o instalację jak i sam system, z którego zamierzasz korzystać.

Zanim przystąpisz do kompilacji i instalacji jakiegoś programu (programów) ze źródeł - powinieneś w pierwszej kolejności przygotować sobie jakąś podstawę.
Czyli:
  • Instalujesz wymagany system bazowy Debiana,
  • Konfigurujesz połączenie z internetem,
  • Sprawdzasz i uzupełniasz zawartość pliku /etc/apt/sources.list właściwymi i wymaganymi wpisami,
  • Wykonujesz aktualizację bazy dostępnych pakietów np.:

    Kod: Zaznacz cały

    apt-get update
  • Wykonujesz aktualizację kluczy gpg,
  • Wykonujesz teraz:

    Kod: Zaznacz cały

    apt-get upgrade
  • Instalujesz wymagane programy do dalszej pracy, w przypadku kompilacji przynajmniej:

    Kod: Zaznacz cały

    apt-get install build-essential
  • Instalujesz wymagane pakiety dev na podstawie informacji zawartej w pliku README pobranych źródeł programu,
  • System przygotowany - przystępuję do kompilacji.
Takie mam uwagi odnośnie tego problemu jak i problemu, który opisałeś odnośnie apta.

: 29 grudnia 2008, 19:01
autor: Shezzy
Nie wiem na jakiej podstawie osądzasz, że źle się zabieram jeżeli w swoim działaniu opisałem tylko czynności na danym kroku, a nie przed.
W każdym razie nie wiem czy chociaż zerknąłeś do opisu podanego w linku, tam jest też opis przygotowań, czyli dodanie wpisów do /etc/apt/source.list oraz między innymi:

Kod: Zaznacz cały

apt-get update
apt-get dist-upgrade
apt-get build-dep php5
Wykonałem jeszcze raz polecenia zawarte w Twoim poście i żadne poza:

Kod: Zaznacz cały

apt-get update
nie wprowadziło zmian. Widocznie co chwile wychodzą jakieś aktualizacje.
Mimo to dzięki za wypowiedź.

Generalnie wg tego poradnika wszystko powinno działać, sama kompilacja prawie w całości przebiega bezproblemowo, jedynie ten debian/rules coś przeszkadza. Spróbuje może skompilować na oryginalnym debian/rules, może ta modyfikacja tutka przeszkadza? Aczkolwiek wtedy skompiluje się bez MSSQL jako Extension.

: 29 grudnia 2008, 19:19
autor: fnmirk
Shezzy, zacznij od początku.

Wklej zawartość pliku:

Kod: Zaznacz cały

cat /etc/apt/sources.list

: 29 grudnia 2008, 19:41
autor: Shezzy
Przepraszam za moje "niewiem". Dziwne przyzwyczajenia, które trzeba tępić ;) .

Mój sources.list wygląda tak:

Kod: Zaznacz cały

#deb cdrom:[Debian GNU/Linux 4.0 r3 _Etch_ - Official i386 CD Binary-1 20080217-11:50]/ etch contrib main

deb [url]http://debian.ludost.net/debian/[/url] testing main contrib non-free
deb-src [url]http://debian.ludost.net/debian/[/url] testing main contrib non-free
deb [url]http://security.debian.org/[/url] testing/updates main contrib
deb-src [url]http://security.debian.org/[/url] testing/updates main contrib

#deb [url]http://ftp.vectranet.pl/debian/[/url] etch main
#deb-src [url]http://ftp.vectranet.pl/debian/[/url] etch main
#deb [url]http://security.debian.org/[/url] etch/updates main contrib
#deb-src [url]http://security.debian.org/[/url] etch/updates main contrib
Generalnie wkleiłem te źródła co gość w poradniku kazał, ta skomentowane to moje normalne, z tym że CD-ROM z reguły jest cały czas wyłączony, bo mnie denerwuje.

Edycja:
Dodam, że jeśli nie dodam w debian/rules rozszerzenie MSSQL to kompilacja tak czy siak kończy się tym samym błędem.

: 29 grudnia 2008, 20:26
autor: fnmirk
Opis dotyczy kompilacji pod wersją Debiana Lenny. Twój bazowy (wyjściowy) to Etch. Problem jest zapewne w tym, że system nie jest w pełni zaktualizowany do Lenny.

Zanim przystąpisz do tego co zamierzasz to jest kompilacji - wcześniej wykonasz pełną aktualizację systemu do wersji Lenny/Testimg.
Twoje aktywne wpisy odnoszące się do Debiana Lenny powinny wyglądać tak:

Kod: Zaznacz cały

deb [url]http://debian.ludost.net/debian/[/url] testing main contrib non-free
deb-src [url]http://debian.ludost.net/debian/[/url] testing main contrib non-free 
deb [url]http://ftp.pl.debian.org/debian/[/url] lenny main non-free contrib
deb-src [url]http://ftp.pl.debian.org/debian/[/url] lenny main non-free contrib
deb [url]http://security.debian.org/[/url] lenny/updates main contrib non-free
deb-src [url]http://security.debian.org/[/url] lenny/updates main contrib non-free
Zrezygnowałeś z czekania na rozwiązanie w tym temacie - rozwiązanie tamtego problemu dostajesz dzisiaj od ręki przy okazji.

Po zmianie w /etc/apt/sorces.list wykonujesz aktualizację systemu i jeżeli pojawią się błędy wklejasz na forum.

: 29 grudnia 2008, 20:37
autor: Shezzy
OK jestem w trakcie aktualizacji, ale nie zrozumiałem gdzie jest to okazyjne rozwiązanie tamtego problemu?
W sumie nadal jestem ciekaw jak to można było naprawić, stawiam na 10 sec roboty ;) .

: 29 grudnia 2008, 20:53
autor: fnmirk
Jeżeli miałeś nie do końca zaktualizowany system to występowały problemy z niespełnionymi zależnościami ze strony starszych pakietów Etcha. Dlatego występowały konflikty. Poszukaj podobnych błędów w tematach na forum.
Można mieszać wersje Debiana jednak należy to robić z rozwagą i świadomością następstw ewentualnych kłopotów zabezpieczając się wcześniej przed nimi.
Zajrzyj do Debian reference.

Edycja:

To co aktualnie wykonujesz mogło rozwiązać poprzedni problem.

: 29 grudnia 2008, 21:07
autor: Shezzy
Zgodzę się, że mogłoby zapobiec, choć jak dla mnie to nie była tego wina, ale ja znawcą w temacie akurat nie jestem.
W każdym razie nie mógłbym tego naprawić w ten sposób bo apt-get nie działał. Jedynie chyba przy znajomości dpkg można by było coś wgrać.
Ja próbowałem szukać źródeł apta ale coś słabo szukałem.

Obecnie trwa kompilacja, po zmienionych wpisach w /etc/apt/source.list jedynie polecenie update coś tam ściągało chwilkę.
Jednak błąd widzę po mojej stronie, co nie oznacza, że rozwiąże to problem.

W pliku debian/rules dla mojej wersji PHP (nowszej niż w poradniku) już domyślnie dodano rozszerzenie MSSQL z domyślną ścieżką, którą trzeba zmienić na ścieżkę do FreeTDS-a.
Ja tego nie zdążyłem wcześniej zauważyć przez co miałem dwa wpisy dla MSSQL z różnymi ścieżkami. Zobaczymy jak będzie teraz.

Edycja:
Mimo poprawienia wpisów w /etc/apt/source.list i tego błędu z podwójnym dodaniem MSSQL-a - nadal ten sam błąd.

: 30 grudnia 2008, 22:16
autor: fnmirk
Wpis w /etc/apt/sources.list:

Kod: Zaznacz cały

deb [url]http://debian.ludost.net/debian/[/url] testing main contrib non-free
deb-src [url]http://debian.ludost.net/debian/[/url] testing main contrib non-free
deb [url]http://ftp.pl.debian.org/debian/[/url] lenny main non-free contrib
deb-src [url]http://ftp.pl.debian.org/debian/[/url] lenny main non-free contrib
deb [url]http://security.debian.org/[/url] lenny/updates main contrib non-free
deb-src [url]http://security.debian.org/[/url] lenny/updates main contrib non-free

deb [url]http://www.debian-multimedia.org[/url] testing main
deb-src [url]http://www.debian-multimedia.org[/url] testing main
deb [url]http://deb.opera.com/opera/[/url] testing non-free
(trzy ostatnie linijki są opcjonalne).

Kod: Zaznacz cały

apt-get update
Dodanie kluczy gpg jeśli wymagane
http://debian.linux.pl/viewtopic.php?p=282#282
Po ostatnim poprawnie dodadanym kluczu jeszcze raz:

Kod: Zaznacz cały

apt-get update
Następnie:

Kod: Zaznacz cały

apt-get -u upgrade
Pobieramy źródła:

Kod: Zaznacz cały

apt-get source php5
Sprawdzamy i instalujemy wymagane pakiety:

Kod: Zaznacz cały

apt-get build-dep php5
Instalujemy pakiety:

Kod: Zaznacz cały

apt-get install tdsodbc freetds-common freetds-dev
Jako root wchodzimy do katalogu:

Kod: Zaznacz cały

cd /usr/src/php5-5.2.6
Wydajemy będąc już w katalogu /usr/src/php5-5.2.6 polecenie:

Kod: Zaznacz cały

nano debian/modulelist
zamieniamy wpis:

Kod: Zaznacz cały

mysql MYSQL
na:

Kod: Zaznacz cały

mssql MSSQL
zapisujemy zmiany.
Następnie:

Kod: Zaznacz cały

nano debian/rules
zmieniamy wpis:

Kod: Zaznacz cały

--with-mysql=shared,/usr
na:

Kod: Zaznacz cały

--with-mssql=shared,/usr/local/freetds \
zapisujemy zmiany.

Następnie:

Kod: Zaznacz cały

nano debian/control
na końcu pliku dodajemy:

Kod: Zaznacz cały

Package: php5-mssql
Architecture: any
Depends: ${shlibs :D epends}, ${misc :D epends}, ${php :D epends}, php5-common (= ${Source-Version})
Description: MSSQL module for php5
 This package provides a module for MSSQL using FreeTDS.
 .
 PHP5 is an HTML-embedded scripting language. Much of its syntax is borrowed
 from C, Java and Perl with a couple of unique PHP-specific features thrown
 in. The goal of the language is to allow web developers to write
 dynamically generated pages quickly.
Zapisujemy zmiany.

Pamiętamy o dodatkowej pustej linijce na końcu zmienianych plików.

Będąc dalej w katalogu /usr/src/php5-5.2.6 wydajemy polecenie:

Kod: Zaznacz cały

dpkg-buildpackage
Po pewnym czasie powstanie w katalogu /usr/src 29 pakietów *.deb. Reszty opisu nie sprawdzałem.

Wynik końcowy budowy:

Kod: Zaznacz cały

dh_md5sums -s
dh_builddeb -s
dpkg-deb: budowanie pakietu "php5-common" w "../php5-common_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "libapache2-mod-php5" w "../libapache2-mod-php5_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "libapache2-mod-php5filter" w "../libapache2-mod-php5filter_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "php5-cgi" w "../php5-cgi_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "php5-cli" w "../php5-cli_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "php5-dev" w "../php5-dev_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "php5-dbg" w "../php5-dbg_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "php5-curl" w "../php5-curl_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "php5-gd" w "../php5-gd_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "php5-gmp" w "../php5-gmp_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "php5-imap" w "../php5-imap_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "php5-interbase" w "../php5-interbase_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "php5-ldap" w "../php5-ldap_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "php5-mcrypt" w "../php5-mcrypt_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "php5-mhash" w "../php5-mhash_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "php5-mysql" w "../php5-mysql_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "php5-odbc" w "../php5-odbc_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "php5-pgsql" w "../php5-pgsql_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "php5-pspell" w "../php5-pspell_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "php5-recode" w "../php5-recode_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "php5-snmp" w "../php5-snmp_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "php5-sqlite" w "../php5-sqlite_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "php5-sybase" w "../php5-sybase_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "php5-tidy" w "../php5-tidy_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "php5-xmlrpc" w "../php5-xmlrpc_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "php5-xsl" w "../php5-xsl_5.2.6-5_i386.deb".
dpkg-deb: budowanie pakietu "php5-mssql" w "../php5-mssql_5.2.6-5_i386.deb".
# Need this version of debhelper for DH_OPTIONS to work.
dh_testdir
dh_testroot
cat debian/copyright.header LICENSE Zend/LICENSE > debian/copyright
dh_installdocs
for package in php5 php-pear; do \
		rm -rf debian/$package/usr/share/doc/$package; \
		ln -s php5-common debian/$package/usr/share/doc/$package; \
	done
dh_link
dh_compress -Xphp.ini
dh_fixperms
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dpkg-deb: budowanie pakietu "php5" w "../php5_5.2.6-5_all.deb".
dpkg-deb: budowanie pakietu "php-pear" w "../php-pear_5.2.6-5_all.deb".
 signfile php5_5.2.6-5.dsc
gpg: pominięty ,,Thijs Kinkhorst <thijs@debian.org>'': brak klucza prywatnego
gpg: [stdin]: clearsign failed: brak klucza prywatnego

 dpkg-genchanges  >../php5_5.2.6-5_i386.changes
dpkg-genchanges: niedołączanie oryginalnych kodów źródłowych do wydania
dpkg-buildpackage: wydanie binarne i pliku różnic (oryginalne źródła NIE dołączone)
dpkg-buildpackage: ostrzeżenie: Błąd podpisywania plików .dsc i .changes
Błąd podpisu - należy zajrzeć do dokumentacji - można go pominąć.