Apache kompelieren

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Benutzeravatar
TBT
Beiträge: 923
Registriert: 18.06.2003 08:39:36
Kontaktdaten:

Apache kompelieren

Beitrag von TBT » 13.10.2003 09:28:54

Hallo,

ich will jetzt mal anfangen, das System bis ins letzte zu optimieren
und habe mir gedacht, ich fange erstmal mit dem Indianer an.

also ein

apt-get source --compile apache

sollte den Apachen doch auf meine Architektur/Prozessor anpassen,
oder irre ich mich da?

Er zieht auch artig die Sourcen, und fängt an zu kompelieren.
Bricht da aber auch recht schenll wieder ab mit dieser Meldung

Code: Alles auswählen

gcc -shared -o mod_auth_anon.so mod_auth_anon.lo -lm -lcrypt -ldb -lexpat
gcc -c  -I../../os/unix -I../../include   -DLINUX=22 -DTARGET=\"apache\" -DNO_DBM_REWRITEMAP -DDEV_RANDOM=/dev/random -DUSE_HSREGEX -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O1 `../../apaci` -fPIC -DSHARED_MODULE mod_auth_dbm.c && mv mod_auth_dbm.o mod_auth_dbm.lo
mod_auth_dbm.c:84: ndbm.h: No such file or directory
make[5]: *** [mod_auth_dbm.so] Fehler 1
make[4]: *** [all] Fehler 1
make[3]: *** [subdirs] Fehler 1
make[3]: Leaving directory `/root/install/apache/apache-1.3.26/build-tree/apache_1.3.26/src'
make[2]: *** [build-std] Fehler 2
make[2]: Leaving directory `/root/install/apache/apache-1.3.26/build-tree/apache_1.3.26'
make[1]: *** [build] Fehler 2
make[1]: Leaving directory `/root/install/apache/apache-1.3.26/build-tree/apache_1.3.26'
make: *** [build-stamp] Fehler 2
Build command 'cd apache-1.3.26 && dpkg-buildpackage -b -uc' failed.
E: Child process failed
wieso fehlen ihm da Dateien?
Ich dachte das wäre ein "Komplettpaket" :roll:

Benutzeravatar
feltel
Webmaster
Beiträge: 10476
Registriert: 20.12.2001 13:08:23
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Leipzig, Germany
Kontaktdaten:

Beitrag von feltel » 13.10.2003 09:35:50

Das ist schon ein fertiges Paket, nur fehlen ihm ein paar abhängige Pakete. Mach einfach mal ein "apt-get build-dep apache".

Benutzeravatar
TBT
Beiträge: 923
Registriert: 18.06.2003 08:39:36
Kontaktdaten:

Beitrag von TBT » 13.10.2003 09:52:01

da gibs ein

Code: Alles auswählen

voyager:~/install/apache# apt-get build-dep apache
Reading Package Lists... Done
Building Dependency Tree... Done
0 packages upgraded, 0 newly installed, 0 to remove and 0  not upgraded.

Benutzeravatar
TBT
Beiträge: 923
Registriert: 18.06.2003 08:39:36
Kontaktdaten:

Beitrag von TBT » 13.10.2003 09:55:31

oder muß ich das Ganze im Verzeichniss /usr/src machen ?

Benutzeravatar
feltel
Webmaster
Beiträge: 10476
Registriert: 20.12.2001 13:08:23
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Leipzig, Germany
Kontaktdaten:

Beitrag von feltel » 13.10.2003 10:12:02

Nein, das ganze muss nicht zwangsläufig in /usr/src stattfinden. Was dir fehlt ist das Paket "libc6-dev". Warum die Abhängigkeit jedoch nicht aufgelöst wurde weiß ich nicht.

Benutzeravatar
TBT
Beiträge: 923
Registriert: 18.06.2003 08:39:36
Kontaktdaten:

Beitrag von TBT » 13.10.2003 10:32:38


Code: Alles auswählen

voyager:/usr/src# apt-get install libc6-dev
Reading Package Lists... Done
Building Dependency Tree... Done
Sorry, libc6-dev is already the newest version.
0 packages upgraded, 0 newly installed, 0 to remove and 0  not upgraded.

Benutzeravatar
zyta2k
Beiträge: 2446
Registriert: 14.03.2003 09:18:00
Kontaktdaten:

Beitrag von zyta2k » 13.10.2003 11:24:13

Sieht nach einem Bug im Sourcepaket aus.

Was steht in Zeile 84 von mod_auth_dbm.c ??

Müsste ein
#include <db1/ndbm.h>
sein,

denke aber, dass es ein
#include <ndbm.h>
ist

ndbm.h in
/usr/include/db1 ist.
Und das wohl kaum der StandardIncludePfad ist ;)

Alternativ:
in debian/rules die configure Zeile wie folgt erweitern
--with-extra-includes=/usr/include/db1

Heisst:
apt-get source apache
debian/rules anpassen
und dpkg-buildpackage -b -uc laufen lassen

Benutzeravatar
TBT
Beiträge: 923
Registriert: 18.06.2003 08:39:36
Kontaktdaten:

Beitrag von TBT » 13.10.2003 11:48:00

bei mir gibs /usr/include/db1 garnicht ???
Die Datei ndbm.h wird von locate auch nicht gefunden.

in Zeile 84 steht natürlich
#include <ndbm.h>

Benutzeravatar
zyta2k
Beiträge: 2446
Registriert: 14.03.2003 09:18:00
Kontaktdaten:

Beitrag von zyta2k » 13.10.2003 12:14:45

Was zum Kuckuck hast du für ein System ????
/usr/include/db1/ndbm.h in devel/libc6-dev (Debian WOODY !)

Mir schwant da was...

DU hast Backports installiert und deine libc6 inklusive libc6-dev auf unstable gehoben !

Heisst:
Musst auch die deb-src nach unstable biegen, da die libc6 in unstable anders aufgebaut ist und kein ndbm.h mehr enthält !!

Benutzeravatar
TBT
Beiträge: 923
Registriert: 18.06.2003 08:39:36
Kontaktdaten:

Beitrag von TBT » 13.10.2003 13:07:18

jetzt wo du es sagts ...

ich hatte mal versehentlich den ximian Backport drin,
und meine libc6 meldet 2.3.1-16 ebenso wie die libc6-dev.

laut packages.debian.org ist die 2.2.5-11.5 in Woody,
aber in testing ist die 2.3.2-7

wie komme ich jetzt zurück auf 2.2.5-11.5 ?
Oder muß ich nun komplett auf testing wechseln ?

Benutzeravatar
zyta2k
Beiträge: 2446
Registriert: 14.03.2003 09:18:00
Kontaktdaten:

Beitrag von zyta2k » 13.10.2003 13:28:39

kannst es mit downgraden probieren und schauen was passiert...

Ist aber gefährlich die libc6 downzugraden !!

apt-get install libc6-dev=2.2.5-11.5

poste mal den Vorschlag, was apt dann tun will ;)

Benutzeravatar
TBT
Beiträge: 923
Registriert: 18.06.2003 08:39:36
Kontaktdaten:

Beitrag von TBT » 13.10.2003 13:32:57

apt wird da ziemlich gierig.
Ich hab da besser erstmal NEIN gesagt :(

Code: Alles auswählen

voyager:/usr/src# apt-get install libc6=2.2.5-11.5
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
  aalib1 apache apache-dev ark bash bc bonobo bonobo-conf bsdmainutils cervisia console-tools courier-webadmin defoma diald
  dialog dpkg evolution foomatic-bin foomatic-db ftp g++ g++-2.95 gcc-3.0 gconf gdb gdk-imlib1 gftp gftp-gtk gimp1.2
  gimp1.2-nonfree gimp1.2-print gnome-bin gnome-libs-data gs gs-common gsfonts gsfonts-x11 gtkhtml gv iamerican ibritish
  imlib-base imlib1 info ipppd isdnutils isdnutils-base isdnutils-xtools isdnvboxclient isdnvboxserver ispell kappfinder
  karm kate kcalc kcharselect kcoloredit kcontrol kcron kdebase kdebase-bin kdebase-kio-plugins kdelibs-bin kdelibs4
  kdelibs4-dev kdepasswd kdeprint kdesktop kdessh kdeutils kdf kdict kdm kedit kfind kfloppy kghostview khelpcenter khexedit
  kicker kiconedit kit kjots klaptopdaemon klipper kmail kmailcvt kmenuedit kmix knewsticker knode knotes konqueror
  konqueror-nsplugins konsole kopete korn kpackage kpager kpaint kpersonalizer kruler kscreensaver ksim ksirc ksmserver
  ksnapshot ksplash ksysguard ksysv ktimer ktip kuser kview kwin less lftp libapache-mod-ssl libarts1-dev libartsc0-dev
  libaudiofile-dev libc6-dev libcamel0 libcapi20 libcapplet0 libcupsys2-dev libdb1-compat libexpat1-dev libfreetype6-dev
  libgal19 libgcc1 libgconf11 libgdk-pixbuf-gnome2 libgdk-pixbuf2 libgimp1.2 libglade-gnome0 libglade0 libglib2.0-dev
  libgnome-vfs-common libgnome-vfs0 libgnome32 libgnomeprint-bin libgnomeprint-data libgnomeprint15 libgnomesupport0
  libgnomeui32 libgnorba27 libgpmg1 libgtk1.2 libgtkhtml-data libgtkhtml20 libgtkmm1.2 libgtkxmhtml1 libjpeg62-dev
  libkdenetwork2 libkonq4 libkregexpeditor libmng-dev libncurses5 libogg-dev libpcre3-dev libpng-dev libqt3-mt-dev
  libreadline4 libstdc++2.10-dev libstdc++3 libstdc++5 libvncauth0 libvorbis-dev libwxgtk2.4 locales lynx man-db modconf
  modutils mozilla mozilla-browser mozilla-mailnews mozilla-psm mplayer-686 mplayer-fonts mplayer-mozilla msttcorefonts
  mtr-tiny mysql-client mysql-server nano ncurses-bin netpbm nvi openoffice.org1.1 openoffice.org1.1-bin
  openoffice.org1.1-debian-files openoffice.org1.1-help-en openoffice.org1.1-l10n-de openoffice.org1.1-l10n-en ppp pppconfig
  pppoe pppoeconf procps psmisc python python-newt python2.1 quanta reportbug scalable-cyrfonts secpolicy sharefont sysvinit
  tcsh telnet util-linux util-linux-locales vnc-common wvdial xawtv xbase-clients xcdroast xfonts-100dpi-transcoded
  xfonts-75dpi-transcoded xfonts-base xfonts-base-transcoded xfonts-intl-european xfonts-scalable xfonts-scalable-nonfree
  xine-ui xlibmesa-dev xlibmesa3-glu xlibs-dev xlibs-pic xmms xmms-cdread xmms-crossfade xmms-fmradio xmms-modplug
  xmms-volnorm xmule xsane xutils xvncviewer zlib1g-dev
The following packages will be DOWNGRADED
  libc6
WARNING: The following essential packages will be removed
This should NOT be done unless you know exactly what you are doing!
  bash libncurses5 (due to bash) dpkg ncurses-bin sysvinit util-linux (due to sysvinit)
0 packages upgraded, 0 newly installed, 1 downgraded, 243 to remove and 0  not upgraded.
Need to get 3383kB of archives. After unpacking 623MB will be freed.
You are about to do something potentially harmful
To continue type in the phrase 'Yes, do as I say!'
 ?] n
Abort.
kann man das nicht austauschen, ohne die ganzen Teile runter zu schmeißen ?

Benutzeravatar
zyta2k
Beiträge: 2446
Registriert: 14.03.2003 09:18:00
Kontaktdaten:

Beitrag von zyta2k » 13.10.2003 13:40:59

Du hast alles, aber sicherlich KEIN woody :)

Möglichkeiten:
Von hand downgraden (schwierig)
Nach testing upgrade (leicht, aber eben ;))

Tja.
Da ist guter Rat teuer :/

Ich würd neu aufsetzen...
...oder auf testing (oder gar sid?) upgraden.

So hast du ein, Kauderwaudersystem (ein Wunder, dass alles funktioniert !!!)

Benutzeravatar
zyta2k
Beiträge: 2446
Registriert: 14.03.2003 09:18:00
Kontaktdaten:

Beitrag von zyta2k » 13.10.2003 13:45:22

Probiers mal so:

Code: Alles auswählen

apt-get install libc6-dev=2.2.5-11.5 bash=2.05a-11 dpkg=1.9.21 
ncurses-bin=5.2.20020112a-7 sysvinit=2.84-2woody1
vielleicht will er dir dann weniger deinstallieren :/

Benutzeravatar
TBT
Beiträge: 923
Registriert: 18.06.2003 08:39:36
Kontaktdaten:

Beitrag von TBT » 13.10.2003 13:47:01

ich weiß auch nicht, wo das Teil herkommt.

bei apt-cache show libc6 steht keinerlei Info über Server und Dateiname

Benutzeravatar
TBT
Beiträge: 923
Registriert: 18.06.2003 08:39:36
Kontaktdaten:

Beitrag von TBT » 13.10.2003 13:52:06

ich glaube wir kommen der sache näher

Code: Alles auswählen

voyager:/usr/src# apt-get install libc6=2.2.5-11.5 bash=2.05a-11 dpkg=1.9.21 ncurses-bin=5.2.20020112a-7 sysvinit=2.84-2woody1 libncurses5=5.2.20020112a-7
Reading Package Lists... Done
Building Dependency Tree... Done
Sorry, dpkg is already the newest version.
Sorry, ncurses-bin is already the newest version.
Sorry, sysvinit is already the newest version.
The following packages will be REMOVED:
  apache-dev g++ g++-2.95 gcc-3.0 kdelibs4-dev libarts1-dev libartsc0-dev
  libaudiofile-dev libc6-dev libcupsys2-dev libdb1-compat libexpat1-dev
  libfreetype6-dev libgcc1 libglib2.0-dev libjpeg62-dev libmng-dev libogg-dev
  libpcre3-dev libpng-dev libqt3-mt-dev libstdc++2.10-dev libstdc++3
  libstdc++5 libvorbis-dev libwxgtk2.4 locales openoffice.org1.1
  openoffice.org1.1-bin openoffice.org1.1-debian-files
  openoffice.org1.1-help-en openoffice.org1.1-l10n-de
  openoffice.org1.1-l10n-en xlibmesa-dev xlibmesa3-glu xlibs-dev xlibs-pic
  xmule zlib1g-dev
The following packages will be DOWNGRADED
  bash libc6 libncurses5
0 packages upgraded, 0 newly installed, 3 downgraded, 39 to remove and 0  not upgraded.
Need to get 4101kB of archives. After unpacking 265MB will be freed.
Do you want to continue? [Y/n] n
Abort.

Benutzeravatar
feltel
Webmaster
Beiträge: 10476
Registriert: 20.12.2001 13:08:23
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Leipzig, Germany
Kontaktdaten:

Beitrag von feltel » 13.10.2003 13:56:16

zyta2k hat geschrieben:Probiers mal so:

Code: Alles auswählen

apt-get install libc6-dev=2.2.5-11.5 bash=2.05a-11 dpkg=1.9.21 
ncurses-bin=5.2.20020112a-7 sysvinit=2.84-2woody1
vielleicht will er dir dann weniger deinstallieren :/
Wird nix bringen, da die libc6-dev-Version immer von der selben libc6-Version abhängig ist.
Heisst also libc6-dev 2.2.5-11.5 braucht auch die libc6 2.2.5-11.5.

Ein Update auf Sarge wird wohl der problemloseste (und hoffentlich problemfreieste) Weg sein, das zu lösen.

Benutzeravatar
TBT
Beiträge: 923
Registriert: 18.06.2003 08:39:36
Kontaktdaten:

Beitrag von TBT » 13.10.2003 14:08:59

ich tausche mit meinem Befehl doch die libc6 aus, und nicht die libc6-dev

Benutzeravatar
TBT
Beiträge: 923
Registriert: 18.06.2003 08:39:36
Kontaktdaten:

Beitrag von TBT » 13.10.2003 14:15:42

ich glaube ich habe den Übeltäter gefunden

XMULE

scheint alles durcheinander gebracht zu haben :(

Code: Alles auswählen

apt-get install  \
        libc6=2.2.5-11.5 \
        libc6-dev=2.2.5-11.5 \
        bash=2.05a-11 \
        dpkg=1.9.21 \
        ncurses-bin=5.2.20020112a-7 \
        sysvinit=2.84-2woody1 \
        libncurses5=5.2.20020112a-7 \
        libgcc1=1:3.0.4-7 \
        locales=2.2.5-11.5
bringt nurnoch ein

Code: Alles auswählen

voyager:~# sh downgrade
Reading Package Lists... Done
Building Dependency Tree... Done
Sorry, dpkg is already the newest version.
Sorry, ncurses-bin is already the newest version.
Sorry, sysvinit is already the newest version.
The following packages will be REMOVED:
  libdb1-compat libstdc++5 libwxgtk2.4 xlibmesa3-glu xmule
The following packages will be DOWNGRADED
  bash libc6 libc6-dev libgcc1 libncurses5 locales
0 packages upgraded, 0 newly installed, 6 downgraded, 5 to remove and 0  not upgraded.
Need to get 9931kB of archives. After unpacking 11.4MB will be freed.
Do you want to continue? [Y/n] n
Abort.
und diese Pakete "libdb1-compat libstdc++5 libwxgtk2.4 xlibmesa3-glu xmule" sind nicht
in stable laut packages.debian.org

Kann ich diesen Befehl dann ohne Angst abschicken, oder
zerhaut es mir dann das System ?

Benutzeravatar
zyta2k
Beiträge: 2446
Registriert: 14.03.2003 09:18:00
Kontaktdaten:

Beitrag von zyta2k » 13.10.2003 14:43:46

TBT hat geschrieben: Kann ich diesen Befehl dann ohne Angst abschicken, oder
zerhaut es mir dann das System ?
Eigentlich, das heisst, im Prinzip, sollte das klappen 8)

100%ige Garantie gibts nie...
aber es sollte meiner Meinung nach gehen :/

Hoffe aber du wurgelst mich nicht, falls es in die Hosen geht *gg*

Aber wenn apt das auf die Reihe kriegt (wie er's auch anzeigt) und das tut dann sollte es gehen...
Feltel hat geschrieben: Wird nix bringen, da die libc6-dev-Version immer von der selben libc6-Version abhängig ist.
Eben drum :)
apt downgraded libc6 automatisch (siehe output von apt-get).

Arbeit sparen ist immer was tolles ;)

Benutzeravatar
TBT
Beiträge: 923
Registriert: 18.06.2003 08:39:36
Kontaktdaten:

Beitrag von TBT » 13.10.2003 14:54:46

es ist nicht in die Hose gegange, mein Rechner lebt noch ;)

wie ist das jetzt mit

apt-get source --build apache

er meldet mir dann ein

Code: Alles auswählen

dpkg-deb: baue Paket »apache« in »../apache_1.3.26-0woody3_i386.deb«.
dpkg-deb: baue Paket »apache-dev« in »../apache-dev_1.3.26-0woody3_i386.deb«.
dpkg-deb: baue Paket »apache-common« in »../apache-common_1.3.26-0woody3_i386.deb«.
sieht ja fein aus, aber meine Frage dazu ist:

hat er das jetzt an meinen Prozessor (K7) optimiert ?
Und wo kann ich das sehen ?

Benutzeravatar
zyta2k
Beiträge: 2446
Registriert: 14.03.2003 09:18:00
Kontaktdaten:

Beitrag von zyta2k » 13.10.2003 15:04:57

Saubere Sache :)
gratulier ;)

Nein, ich denke nicht dass das auf deinen AMD angepasst ist.

Dies wird durch Compilerflags gesetzt.

Was hast du für einen Compiler drauf ??

Code: Alles auswählen

gcc --version

Benutzeravatar
TBT
Beiträge: 923
Registriert: 18.06.2003 08:39:36
Kontaktdaten:

Beitrag von TBT » 13.10.2003 15:17:29

gcc 2.95.4

setzen würde ich gerne auf Athlon MP 2400 ( 2 Stück davon :D )
also müßte das Flag "-m686" sein ?

So macht er es, wenn ich meinen Kernel baue.

Wie muß ich das angeben?

Benutzeravatar
zyta2k
Beiträge: 2446
Registriert: 14.03.2003 09:18:00
Kontaktdaten:

Beitrag von zyta2k » 13.10.2003 15:19:57

Probier mal das

Code: Alles auswählen

CFLAGS="-march=k6 -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=k6 -O3 -pipe -fomit-frame-pointer"
export CFLAGS CXXFLAGS
bevor du den build startest...

Beim compilieren kannst du zur Kontrolle ein Auge auf die Optionen werfen, welche GCC angehängt werden. Obige Zeilen solltest du dann Wiederfinden ;)

Benutzeravatar
TBT
Beiträge: 923
Registriert: 18.06.2003 08:39:36
Kontaktdaten:

Beitrag von TBT » 13.10.2003 15:21:06

nicht march=k7 ???

Kernel wird gebaut mit

Code: Alles auswählen

CFLAGS="-D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -malign-functions=4  "

Antworten