[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: APT, DSELECT, APTITUDE streiken



Am Freitag, 12. August 2005 15:13 schrieb Thomas Schönhoff:

Dein Text war aus irgendeinem Grund bereits zitiert?

> Hallo Markus,
>
> > Am 12.08.05 schrieb Markus Schulz <msc@antzsystem.de>:
[...]
> > >
> > > er versucht eine 12.582.912 Bytes große Datei zu erzeugen. Dabei
> > > bekommt er die Meldung das das zu groß sei.
> > > Dein Filesystem vielleicht defekt oder wirklich nicht mehr soviel
> > > Platz dort?
> >
> > Hmm, das / Verzeichnis (zu dem auch var gehört) hat 4GB

Und /var ist nicht auf einer eigenen Partition?
Dann scheint das Filesystem wohl eine Macke zu haben.
Am besten du gehst mal in runlevel 1 (init 1) und prüfst es mal mit fsck 
(Variante je nach Filesystem Typ) durch. (vorher mount -o,ro,remount / 
damit dir keiner dazwischenfunkt)

> > Speicherplatz frei. Die oben genannte Dateigroesse bezieht sich auf
> > das CacheLimit von APT, in "/etc/apt/apt.conf.d/50CacheLimit ";
> > dies hatte ich auf einen Tip hin auf:
> >
> > APT::Cache-Limit 12582912;
> >
> > .gesetzt.
> >
> > Die gleiche Meldung bekomme ich allerdings auch, wenn der
> > CacheLimit auf die Hälfte gesetzt wird. Eigentlich dürfte das doch
> > kein ernstzunehmendes Problem bei 4 GB verfügbaren Speicher sein,
> > oder bin ich da auf dem Holzweg?
> >
> > Ich verstehe nicht genau, was da passiert:
> >
> >  fchmod(3, 0644) = 0 (hier werden die Zugriffsrechte von
> > pkgcache-bin gescheckt)

sie werden nicht gecheckt sondern gesetzt.

> > fstat64(3, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 (Datei ist
> > schreibbar, okay!)

stat holt alle relevanten Informationen zu der Datei, mehr nicht. Das 
Holen hat geklappt (weil Result == 0).
Du kannst auf die Datei ja mal auf einer Konsole stat machen und das 
hier posten. 

> > lseek(3, 12582912, SEEK_SET) = 12582912 (liest das CacheLimit in
> > apt.confaus)

das seeked um die angegeben Anzahl Bytes nach vorn (interner Dateizeiger 
wird nach weiter nach vorn gesetzt) um damit eine leere Datei der 
entsprechenden Größe zu erzeugen. Da als Ergebnis die Stelle 
zurückgegeben wird, klappt das also auch. Es ist allerdings kein 
Problem den Dateizeiger hinter das EndOfFile (EOF) zu setzen.

> >
> > write(3, "\0", 1) = -1 EFBIG (File too large) (will Cache in
> > /var/cache/apt/pkgcache-bin schreiben, aber zu groß, daher Abbruch)

Jetzt will er eine abschliessende Null Terminierung dort reinschreiben 
um die Datei mit der neuen Größe wirklich zu erzeugen und genau das 
funktioniert nicht.
Wenn dort also noch genug Platz ist und die Partition auch schreibbar 
(nicht ro gemountet) ist, dann sollte das auch funktionieren. 
Andernfalls ist da ein Fehler im Filesystem zu vermuten.

Kannst du denn sonst noch Dateien auf dieser Partition anlegen?
z.B. mit 
dd if=/dev/urandom bs=1024 count=1024 of=<filename>
legt eine 1MB Große Datei mit Random Daten an.

-- 
Markus Schulz

Aber meiner persönlichen Meinung nach ist ein Sid an 355 Tagen im Jahr 
mehr "stable" als z.B. ein Suse "fertig" in den Läden steht.(Joerg 
Rossdeutscher)



Reply to: