# Problem bei apache2-Installation



## honki (29. März 2007)

Hallo,
ich habe folgendes Problem: ich habe auf meinem PC frisch Debian 3.1 Sarge installiert. Ich habe außer ssh nichts weiter installiert. Nun wollte ich einfach den apache2 installieren, jedoch scheint das irgendwie nicht zu funktionieren. Er spuckt folgende Fehlermeldung aus:


debian:~/dl# apt-get update
OK   http://security.debian.org stable/updates/main Packages
OK   http://security.debian.org stable/updates/main Release
OK   http://security.debian.org stable/updates/contrib Packages
OK   http://security.debian.org stable/updates/contrib Release
Paketlisten werden gelesen... Fertig
debian:~/dl# apt-get install apache2
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut... Fertig
Sie möchten wahrscheinlich »apt-get -f install« aufrufen, um dies zu korrigieren:
Die folgenden Pakete haben nichterfüllte Abhängigkeiten:
  apache2: Hängt ab: apache2-mpm-worker (= 2.0.54-5sarge1) soll aber nicht installiert werden oder 
                     apache2-mpm-prefork (= 2.0.54-5sarge1) soll aber nicht installiert werden oder 
                     apache2-mpm-perchild (= 2.0.54-5sarge1) soll aber nicht installiert werden
  libldap2: Hängt ab: libsasl2 (>= 2.1.19) soll aber nicht installiert werden
E: Nichterfüllte Abhängigkeiten. Versuchen Sie »apt-get -f install« ohne jeglich Pakete (oder geben Sie eine Lösung an).





Hat irgendjemand eine Idee was ich da machen könnte?


----------



## honki (29. März 2007)

Ähnliche Probleme treten bei der Installation anderer Pakete auf. Er will einfach nicht die Pakete dazuinstallieren, die das eigentliche Paket noch benütigt (gcc, cpp lässt sich auch nicht installieren)


----------



## Neurodeamon (29. März 2007)

honki hat gesagt.:


> Hat irgendjemand eine Idee was ich da machen könnte?



Entscheide Dich welches Paket Du willst und installiere dieses. Diese Meldung ist soweit ich weiß beabsichtigt.

apache2-mpm-prefork


> Dieses Multi-Processing-Modul (MPM) implementiert einen im Voraus forkenden Webserver ohne Thread-Unterstützung, der Anfragen auf ähnliche Weise behandelt wie der Apache 1.3. Es ist für Angebote geeignet, die aus Kompatibilitätsgründen mit nicht-Thread-sicheren Bibliotheken Threading vermeiden müssen. Es ist außerdem das geeignetste MPM, um jede Anfrage isoliert zu bearbeiten, so dass Probleme mit einem einzelnen Prozess keinen anderen beeinflussen.
> 
> Das MPM ist stark selbstregulierend, so dass es selten notwendig ist, seine Konfigurationseinstellungen zu justieren. Das Wichtigste ist, dass MaxClients gross genug ist, so viele gleichzeitige Anfragen zu bedienen, wie Sie erwarten, aber klein genug, um sicherzustellen, dass genug physischer Arbeitsspeicher für alle Prozesse vorhanden ist.



apache2-mpm-worker


> Dieses Multi-Processing-Modul (MPM) implementiert einen Hybrid-Server mit Multi-Thread und Multi-Prozess-Unterstützung. Durch die Verwendung von Threads für die Bedienung von Anfragen ist er in der Lage, eine große Anzahl von Anfragen mit weniger Systemressourcen als ein Prozess-basierter Server zu bedienen. Er behält jedoch viel von der Stabilität eines Prozess-basierten Servers bei, indem er mehrere Prozesse verfügbar hält, jeden mit etlichen Threads.
> 
> Die wichtigsten Direktiven zur Steuerung des MPMs sind ThreadsPerChild, welche die Anzahl der Threads beeinflusst, die von jedem Kindprozess verwendet werden, und MaxClients, welche die maximale Gesamtzahl an Threads regelt, die gestartet werden können.



apache2-mpm-perchild


> This module is not functional. Development of this module is not complete and is not currently active. Do not use perchild unless you are a programmer willing to help fix it.



Wenn Du unsicher bist was Du verwenden solltest, nimm »apache2-mpm-prefork«.
Der worker ist z. B. nicht zu empfehlen wenn PHP zum Einsatz kommen soll, da PHP (wenn ich mich richtig erinnere) nicht thread-safe ist.


----------



## honki (29. März 2007)

Danke für die Antwort, aber das hatte ich auch schon probiert:
bei apache2-mpm-prefork:

debian:~# apt-get install apache2-mpm-prefork
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut... Fertig
Sie möchten wahrscheinlich »apt-get -f install« aufrufen, um dies zu korrigieren:
Die folgenden Pakete haben nichterfüllte Abhängigkeiten:
  apache2-mpm-prefork: Hängt ab: libapr0 (>= 2.0.54) soll aber nicht installiert werden
                       Hängt ab: libexpat1 (>= 1.95.8) soll aber nicht installiert werden
                       Hängt ab: apache2-common (= 2.0.54-5sarge1) soll aber nicht installiert werden
  libldap2: Hängt ab: libsasl2 (>= 2.1.19) soll aber nicht installiert werden
E: Nichterfüllte Abhängigkeiten. Versuchen Sie »apt-get -f install« ohne jeglich Pakete (oder geben Sie eine Lösung an).


----------



## Neurodeamon (29. März 2007)

Eventuell sind einige libs veraltet. Führe mal ein Dist-upgrade durch:


```
apt-get dist-upgrade
```

Mit etwas Glück werden die Abhängigkeiten korrigiert und die Installation funktioniert.
Wenn nicht, dann poste mal bitte deine /etc/apt/sources.list

*daumen drückt*


----------



## honki (29. März 2007)

sources.list:

```
#deb file:///cdrom/ sarge main

deb cdrom:[Debian GNU/Linux 3.1 r5 _Sarge_ - Official i386 Binary-1 (20070219)]$

deb http://security.debian.org/ stable/updates main contrib
```



Fehler bei dist-upgrate:

```
debian:~# apt-get dist-upgrade
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut... Fertig
Sie möchten wahrscheinlich »apt-get -f install« aufrufen, um dies zu korrigieren.
Die folgenden Pakete haben nichterfüllte Abhängigkeiten:
  libldap2: Hängt ab: libsasl2 (>= 2.1.19) ist aber nicht installiert
E: Nichterfüllte Abhängigkeiten. Versuchen Sie, -f zu benutzen.
```


----------



## Neurodeamon (30. März 2007)

Ups, da sind ja keine Repositories drin.
Ändere die Datei mal folgend ab und entferne die beiden CDROM Zeilen:

```
# stable
deb http://ftp.de.debian.org/debian/ sarge main contrib non-free
deb-src http://ftp.de.debian.org/debian/ sarge main contrib non-free
deb http://ftp.de.debian.org/debian-non-US/ sarge/non-US main contrib non-free
deb-src http://ftp.de.debian.org/debian-non-US/ sarge/non-US main contrib non-free

# security updates
deb http://security.debian.org/ sarge/updates main contrib non-free
```

Danach gibst Du in der Konsole ein:

```
apt-get update
apt-get upgrade
apt-get dist-upgrade
```

Jetzt hast Du Zugriff auf mehr Debian Pakete.


----------



## honki (1. April 2007)

Ich habe die sources.list Zeilen so verändert, wie du es gesagt hast und jetzt spuckt er mir folgendes aus:

```
debian:~# apt-get update
OK   http://ftp.de.debian.org sarge/main Packages                     
OK   http://ftp.de.debian.org sarge/main Release                      
OK   http://ftp.de.debian.org sarge/contrib Packages              
OK   http://security.debian.org sarge/updates/main Packages       
OK   http://security.debian.org sarge/updates/main Release        
OK   http://ftp.de.debian.org sarge/contrib Release                
OK   http://ftp.de.debian.org sarge/non-free Packages              
OK   http://ftp.de.debian.org sarge/non-free Release               
OK   http://ftp.de.debian.org sarge/main Sources                   
OK   http://ftp.de.debian.org sarge/main Release                   
OK   http://ftp.de.debian.org sarge/contrib Sources                
OK   http://ftp.de.debian.org sarge/contrib Release                
OK   http://security.debian.org sarge/updates/contrib Packages     
OK   http://security.debian.org sarge/updates/contrib Release      
OK   http://security.debian.org sarge/updates/non-free Packages    
OK   http://security.debian.org sarge/updates/non-free Release     
OK   http://ftp.de.debian.org sarge/non-free Sources               
OK   http://ftp.de.debian.org sarge/non-free Release
OK   http://ftp.de.debian.org sarge/non-US/main Packages
OK   http://ftp.de.debian.org sarge/non-US/main Release
OK   http://ftp.de.debian.org sarge/non-US/contrib Packages
OK   http://ftp.de.debian.org sarge/non-US/contrib Release
OK   http://ftp.de.debian.org sarge/non-US/non-free Packages
OK   http://ftp.de.debian.org sarge/non-US/non-free Release
OK   http://ftp.de.debian.org sarge/non-US/main Sources
OK   http://ftp.de.debian.org sarge/non-US/main Release
OK   http://ftp.de.debian.org sarge/non-US/contrib Sources
OK   http://ftp.de.debian.org sarge/non-US/contrib Release
OK   http://ftp.de.debian.org sarge/non-US/non-free Sources
OK   http://ftp.de.debian.org sarge/non-US/non-free Release
Paketlisten werden gelesen... Fertig
debian:~# apt-get upgrade
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut... Fertig
Sie möchten wahrscheinlich »apt-get -f install« aufrufen, um dies zu korrigieren.
Die folgenden Pakete haben nichterfüllte Abhängigkeiten:
  libldap2: Hängt ab: libsasl2 (>= 2.1.19) ist aber nicht installiert
E: Nichterfüllte Abhängigkeiten. Versuchen Sie, -f zu benutzen.
debian:~# apt-get dist-upgrade
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut... Fertig
Sie möchten wahrscheinlich »apt-get -f install« aufrufen, um dies zu korrigieren.
Die folgenden Pakete haben nichterfüllte Abhängigkeiten:
  libldap2: Hängt ab: libsasl2 (>= 2.1.19) ist aber nicht installiert
E: Nichterfüllte Abhängigkeiten. Versuchen Sie, -f zu benutzen.
```


----------



## Neurodeamon (1. April 2007)

Das ist nicht sehr schön. Wenn apt-get  nicht will, würde ich aptitude vorschlagen.


```
aptitude update
aptitude upgrade
```

Aptitude ist quasi ein etwas modernisierter und erweiterter apt-get.
Es sollte bei Fehlern dieser Art einen Lösungsvorschlag unterbreiten den man mit yes/no annehmen oder ablehnen kann.

Hast Du eigentlich die -f option ausprobiert, wie die nervigen Fehlermeldungen ständig verlangen? Klappt zwar nicht immer, aber manchmal... ist es gnädig


----------



## honki (2. April 2007)

die -f Option war der ganze Fehler. Wer lesen kann, ... oder wie war das 
Danke für die Ausdauer


----------



## Neurodeamon (2. April 2007)

mir schwante so langsam etwas, deshalb hab ich es erwähnt


----------



## honki (2. April 2007)

Irgendwie bin ich aus dem Manual nich schlau geworden, was das ganze bewirkt, weil das so aussieht als würde ja das Paket fehlen (ich hatte einfach nur "apt-get -f install")
Kannst du mir das erklären?


----------



## Neurodeamon (2. April 2007)

honki hat gesagt.:


> Irgendwie bin ich aus dem Manual nich schlau geworden, was das ganze bewirkt, weil das so aussieht als würde ja das Paket fehlen (ich hatte einfach nur "apt-get -f install")
> Kannst du mir das erklären?



Das *-f* bewirkt das Pakete trotz der nicht korrekten Abhängigkeiten installiert werden. (f steht für »force«, also »erzwingen«). Dazu muss man wissen das im Groben das Abhängigkeitensystem existiert um inkompatible Kombinationen zu verhindern und bei Installationen benötigte Pakete mitzuinstallieren. Z. b. wenn ein Paketmantainer, also ein Entwickler der sich um ein bestimmtes Paket kümmert, die Voraussetzung für Paket (a) setzt: benötigt werden Pakete (x) und  mit mindestens Version (123) kümmert sich das System darum das diese Pakete mitinstalliert werden. Manchmal installiert man ein Paket das unbedingt eine bestimmte Programmversion benötigt. Wenn man dann ein Programm installieren möchte das z. b. eine neuere Version des bereits installierten Paketes als Voraussetzung hat, dann kann es diese Meldungen geben, weil installiertes Pakete (a) Paket (x) mit Programmversion (123) benötigt und eine neuere Version verbietet, Programm (b)  welches man installieren möchte, braucht aber Paket (x) mit Programmversion (124).

hui.. jetzt wird mir selbst ganz wirr. Ich hoffe mein Beispiel war einigermaßen Verständlich


----------



## honki (2. April 2007)

So hab ich das ganze auch aus der Hilfe rausgelesen, nur versteh ich nicht, was das ganze ohne Paketangabe bringt, also die Zeile "apt-get -f install" ohne zB gcc oder apache2 oder sonstwas.


----------



## Neurodeamon (3. April 2007)

honki hat gesagt.:


> So hab ich das ganze auch aus der Hilfe rausgelesen, nur versteh ich nicht, was das ganze ohne Paketangabe bringt, also die Zeile "apt-get -f install" ohne zB gcc oder apache2 oder sonstwas.



Der Fehler kam nicht durch Deine angabe, sondern immer (also apt wußte bescheid und hat sich bemerkbar gemacht und das Pakete quasi vorgehalten. Ich denke mal das Du mit *apt-get -f install* einfach die Korrektur dieses Problemes das apt vorgemerkt hatte angestoßen hast.


----------

