Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[gelöst]emerge --sync geht nicht mehr: Permission denied
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

Goto page Previous  1, 2  
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
Christian99
Veteran
Veteran


Joined: 28 May 2009
Posts: 1176

PostPosted: Mon May 31, 2010 9:29 pm    Post subject: Reply with quote

ich hab jetzt nochmal mit ps geschaut, während ein emerge -sync läuft:
Code:
root     12422 11677  0 19570  6872   1 23:17 pts/3    00:00:02 rsync --recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --verbose --progress rsync://193.1.193.64/gentoo-portage/ /usr/portage/tree/official
root     12423 12422  0 29317  5040   1 23:17 pts/3    00:00:00 rsync --recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --verbose --progress rsync://193.1.193.64/gentoo-portage/ /usr/portage/tree/official

also: wenn ich das richtig sehe läuft der rsync-prozess als user root, was ja so sein soll. ein bisschen erstaunt bin ich, das rsync zweimal läuft. soll das so sein? wenn ich den Ellenlangen rsync befehl per hand ausführe (mit sudo natürlich) geht wieder alles.
hat es eventuell sinn einen bugreport aufzumachen? ich hab ja eigentlich doch recht wenig infos....

EDIT: gegen ende von dem per hand ausgeführten befehl gabs doch ein paar probleme:
rsync: readlink_stat("/metadata/cache/kde-base/kdm-4.3.5-r1" (in gentoo-portage)) failed: Stale NFS file handle (116)

ich hab aber kein nfs im portage tree. es ist (inzwischen wieder) squashfs/aufs. wieso gibts da nen nfs-fehler?
Back to top
View user's profile Send private message
Christian99
Veteran
Veteran


Joined: 28 May 2009
Posts: 1176

PostPosted: Wed Jun 02, 2010 9:41 am    Post subject: Reply with quote

Ok, gefunden: es lag an libtrash.
Ich habe das zwar schon länger, habe aber kürzlich LD_PRELOAD von .bashrc nach /etc/profile umgezogen.
Ich versteh aber immer noch nicht wieso es bei "emerge --sync" nicht geht, aber bei "rsync ..." gehts. bei beiden befehlen müsste doch libtrash geladen werden, oder nicht?
Back to top
View user's profile Send private message
disi
Veteran
Veteran


Joined: 28 Nov 2003
Posts: 1354
Location: Out There ...

PostPosted: Wed Jun 02, 2010 10:48 am    Post subject: Reply with quote

Lol, ich verfolge diesen Beitrag schon laenger weil es mir bekannt vorkam :D Leider bin ich darauf nicht gekommen :/

Bei mir war es so, das ich libtrash installiert hatte und gleich anschliessend Probleme auftraten. Also wieder rausgeschmissen und Problem war weg.
Wenn du es als User benutzen willst, dann nicht Systemweit sondern in der .profile im home directory ;)
_________________
Gentoo on Uptime Project - Larry is a cow
Back to top
View user's profile Send private message
Genone
Retired Dev
Retired Dev


Joined: 14 Mar 2003
Posts: 9236
Location: beyond the rim

PostPosted: Wed Jun 02, 2010 12:03 pm    Post subject: Reply with quote

Christian99 wrote:
Ich versteh aber immer noch nicht wieso es bei "emerge --sync" nicht geht, aber bei "rsync ..." gehts. bei beiden befehlen müsste doch libtrash geladen werden, oder nicht?

Die Frage wäre erstmal was genau das Problem mit libtrash war, evtl. war es unter emerge vielleicht doppelt geladen oder so (müsste man im Detail schauen). Aber generell sollte man mit LD_PRELOAD sehr vorsichtig sein. Insbesondere im globalen Kontext kriegt man da schnell unerwünschte Nebenwirkungen deren Ursache man nur schwer lokalisieren kann (wie gerade wieder gesehen).
Back to top
View user's profile Send private message
Christian99
Veteran
Veteran


Joined: 28 May 2009
Posts: 1176

PostPosted: Wed Jun 02, 2010 12:36 pm    Post subject: Reply with quote

das problem war, dass /usr ein geschütztes verzeichnis ist, und dass alle rm/mv aufrufe dort von libtrash mit permission denied beantwortet werden. Das soll eigentlich auch so sein. Was aber seltsam ist:
Code:
sudo echo $LD_PRELOAD
/usr/lib64/libtrash.so

also wird libtrash geladen. oder übernimmt sudo das von der aufrufenden shell?
denn wenn ich mit sudo -s zu root wechsle, dann ist LD_PRELOAD leer:
Code:
sudo -s
echo $LD_PRELOAD

emerge --info|grep LD_PRELOAD
LD_PRELOAD="/usr/lib64/libtrash.so"

also läd sich emerge (python) nochmal extra enviromentvariablen, kann das sein?
Back to top
View user's profile Send private message
69719
l33t
l33t


Joined: 20 Sep 2004
Posts: 865

PostPosted: Wed Jun 02, 2010 12:57 pm    Post subject: Reply with quote

Variablen werden immer vor dem ausführen durch die entsprechenden Werte in der aktuellen Umgebung ersetzt, nicht erst nach einem sudo oder sonstiges.
Back to top
View user's profile Send private message
Christian99
Veteran
Veteran


Joined: 28 May 2009
Posts: 1176

PostPosted: Wed Jun 02, 2010 1:28 pm    Post subject: Reply with quote

es geht ja nicht ums ERsetzen, sondern ums GEsetzt werden der variablen. wiso ist in meiner root-umgebung LD_PRELOAD leer, obwohl es in /etc/profile steht, wenn ich aber emerge aus der selben root-umgebung wieder aufrufe ist es gesetzt?
Back to top
View user's profile Send private message
69719
l33t
l33t


Joined: 20 Sep 2004
Posts: 865

PostPosted: Wed Jun 02, 2010 1:51 pm    Post subject: Reply with quote

Christian99 wrote:
es geht ja nicht ums ERsetzen, sondern ums GEsetzt werden der variablen. wiso ist in meiner root-umgebung LD_PRELOAD leer, obwohl es in /etc/profile steht, wenn ich aber emerge aus der selben root-umgebung wieder aufrufe ist es gesetzt?

Wenn
Code:

sudo echo $LD_PRELOAD

verarbeitet wird, so wid LD_PRELOAD duch den entsprechenden Wert ersetzt.
Code:

man bash
/INVOCATION
...
When  bash  is  invoked  as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists.
...

Das sollte deine Frage beantworten, stand auch die Tage schon im Board zur Diskussion.
Emerge wird wohl demnach ein source machen, könntest du mal mittels strace verfolgen.
Back to top
View user's profile Send private message
Christian99
Veteran
Veteran


Joined: 28 May 2009
Posts: 1176

PostPosted: Wed Jun 02, 2010 5:06 pm    Post subject: Reply with quote

Quote:
Wenn
Code:

sudo echo $LD_PRELOAD

verarbeitet wird, so wid LD_PRELOAD duch den entsprechenden Wert ersetzt.

klar, mein fehler.

Quote:
Code:

man bash
/INVOCATION
...
When bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists.
...

Das sollte deine Frage beantworten, stand auch die Tage schon im Board zur Diskussion.
Emerge wird wohl demnach ein source machen, könntest du mal mittels strace verfolgen.


ja, fast klar: wann ist eine bash eine interactive login-shell? wenn ich mich an ttyX einlogge, dann wahrscheinlich auf jeden fall. aber wenn ich unter x eine terminalsitzung öffne (konsole in meinen Fall) ist da bash dann eine loginshell? ich hätte vermutet, dass nicht, es wird aber LD_PRELOAD gesetzt. und bash wird nicht mit "--login" parameter gestartet.
Eventuell sollte ich noch sagen das LD_PRELOAD in /etc/profile.env gesetzt, nich in /etc/profile. hab gerade nochmal nachgeguckt.
ist mit der datei was anderes? ich hab nur gesehn, dass sie von /etc/profile aufgerufen wird und portage ruft /etc/profile.env direkt auf, ohne /etc/profile.
Allerdings: wenn ich konsole strace kann ich nichts sehen, dass entweder /etc/profile oder /etc/profile.env geöffnet werden. wo kommt dann LD_PRELOAD her? von X? und wieso wird es dann nicht an die root-shell weitergegeben?
Back to top
View user's profile Send private message
Genone
Retired Dev
Retired Dev


Joined: 14 Mar 2003
Posts: 9236
Location: beyond the rim

PostPosted: Wed Jun 02, 2010 5:44 pm    Post subject: Reply with quote

Christian99 wrote:
Allerdings: wenn ich konsole strace kann ich nichts sehen, dass entweder /etc/profile oder /etc/profile.env geöffnet werden. wo kommt dann LD_PRELOAD her?

Vermutlich vom aufrufenden Prozess, da ich davon ausgehe dass LD_PRELOAD exportiert ist.
Quote:
und wieso wird es dann nicht an die root-shell weitergegeben?

hängt davon ab wie die root-Shell gestartet wird: sudo z.B. setzt standardmässig viele (alle?) Umgebungsvariablen zurück bevor es einen Prozess startet.
Back to top
View user's profile Send private message
Christian99
Veteran
Veteran


Joined: 28 May 2009
Posts: 1176

PostPosted: Fri Jun 04, 2010 5:31 pm    Post subject: Reply with quote

ahja, ich hab auch mal in der manpage von sudo geschaut, und ja da werden einige variablen zurüchgesetzt. Wie gesagt, ich verwende libtrash schon länger, und wenn ich was an systemdateien mit sudo gemacht habe, ist mir schon aufgefallen, dass da libtrash nicht verwendet wird. deswegen bin ich auch lange nicht drauf gekommen, dass plötzlich beim emerge --sync libtrash seine finger im spiel hat. Stellt sich eigentlich nur die frage, wieso das beim syncen so war, aber nicht wenn ich ein paket emerged habe. Aber manche geheimnisse wird wohl selbst Linux für sich behalten :)
Back to top
View user's profile Send private message
Genone
Retired Dev
Retired Dev


Joined: 14 Mar 2003
Posts: 9236
Location: beyond the rim

PostPosted: Sat Jun 05, 2010 1:45 am    Post subject: Reply with quote

Wäre möglich dass das durch die Sandbox (die ja auch über LD_PRELOAD geladen wird) ausgehebelt wird.
Back to top
View user's profile Send private message
Christian99
Veteran
Veteran


Joined: 28 May 2009
Posts: 1176

PostPosted: Mon Jun 07, 2010 7:45 pm    Post subject: Reply with quote

oh je, word ja immer komplizierter....
aber nachdem nun auch beim installieren des neuesten wine deswegen probleme auftraten, bin ich nun wieder dazu übergegangen, LD_PRELOAD in die .bashrc zu schreiben, und nicht in die profile.env. Das gibt denk ich wesentlich weniger probleme.
Dann noch mal danke an alle, die mir bei der fehlersuche geholfen haben!!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum