Portál AbcLinuxu, 10. května 2025 07:30

Dotaz: environmental variable versus grafické prostředí

8.1.2006 21:25 Espinosa | skóre: 24 | blog: Espblog | London
environmental variable versus grafické prostředí
Přečteno: 178×
Odpovědět | Admin
Proměnné prostředí (environmentální proměnné) jsou pro mě stále zdrojem překvapení.

Momentálně se mi nedaří nastavit proměnnou tak aby ji vidělo i grafické prostředí, KDE v mém případě.

O co mi jde. Potřebuju nastavit jednu env. proměnnou pro OOo2. Přidal jsem do skriptů /etc/profile a /etc/rc.local a ~/.bashrc a ~/.bash_profile následující dva řádky:
SAL_USE_VCLPLUGIN=default
export SAL_USE_VCLPLUGIN
ale proměnná je rozpoznána jen pokud spustím oowrite z přímo z bashe (Konsole) pokud spustím oowrite z KDE menu nebo z plochy tak ne.

Pro kontrolu jsme si napsal jednoduchý mikro-prográmek. Na ploše KDE jsem vytvořil "Create New - Link To Application" s jediným příkazem:
kdialog --msgbox "$SAL_USE_VCLPLUGIN"
Test dopadnul stejně jak u oowriteru. Pokud je kód spuštěn z bashe (Konsole) hodnota se ukáže, pokud z KDE plochy, tak je to prázdné.

Vždycky jsem si myslel, že /etc/profile je přesně pro tyhle věci, že proměnné nastavené tam definované "zdědí" všechny programy včetně X a KDE. Takže, kde je chyba?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

8.1.2006 21:35 finn | skóre: 43 | blog: finnlandia | 49° 44´/13° 22´
Rozbalit Rozbalit vše Re: environmental variable versus grafické prostředí
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud se nepletu, tak bootuješ přímo do KDE. Příkazy obsažené v souboru /etc/profile jsou ale prováděny shellem, ale KDE není spouštěno z shellu, ale (zjednodušeně řečeno) přímo procesem init.
Užívej dne – možná je tvůj poslední.
13.1.2006 15:11 Espinosa | skóre: 24 | blog: Espblog | London
Rozbalit Rozbalit vše Re: environmental variable versus grafické prostředí
Ano, bootuju přímo. Doufal jesm, že na /etc/profile bere KDM ohled. Takže teda ne..

Že nezabral ani rc.local, který se určitě provádí, mě překvapilo ještě víc.
8.1.2006 21:38 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: environmental variable versus grafické prostředí
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ano zdědí je i X pokud byly spuštěné z basche :-)

Ale pokud spouštíš X odjinud (z initu přes kdm třeba) tak jaksi se bash nedostane ke slovu a ty věci v profiles se nespustí :-)

Další věc je zda se ti spouští /etc/rc.local kde to máš nadefinované dej si tam třeba echo "ahoj spustil jsem rc.local" ať máš jistotu.

(Ještě je možnost že kdm to prostředí nepřebírá to nevím kdm nepoužívám)
13.1.2006 15:09 Espinosa | skóre: 24 | blog: Espblog | London
Rozbalit Rozbalit vše Re: environmental variable versus grafické prostředí
Že nezabraly bash soubory mě nepřekvapilo, předdpokládal jsem, že to takhle nějak funguje, ale že nazabral /etc/rc.local mě vyrazilo dech.

/etc/rc.local se spouští na 100%. Loaduju a unloaduju tam nějaké kernel moduly, kdyby se tohle nespouštělo, okamžitě bych to poznal.

Spouštění /etc/rc.local tedy musí být nějaký podivný fork, když se to z něj nepřebere.
martink avatar 13.1.2006 19:31 martink | skóre: 10 | Hradec Králové
Rozbalit Rozbalit vše Re: environmental variable versus grafické prostředí
Systémové proměnné se dědí jen od rodičů. Takže v rc.local to nemůže fungovat, protože ten shell, který rc.local provádí, není rodičem grafického prostředí (je to jen jeden ze skriptů, spouštěných při bootování).
8.1.2006 21:45 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: environmental variable versus grafické prostředí
Odpovědět | | Sbalit | Link | Blokovat | Admin
$ grep SAL ~/.bashrc
export SAL_USE_VCLPLUGIN=default
A vytvořil jsem si stejný odkaz, jako ty. Kdialog mi napíše "default", pouze jsem se musel odhlásit a přihlásit. Pokud ti to nepojede, tak zkus do startkde přidat source ~/.bashrc
When your hammer is C++, everything begins to look like a thumb.
8.1.2006 23:20 David Jaša | skóre: 44 | blog: Dejvův blog
Rozbalit Rozbalit vše Re: environmental variable versus grafické prostředí
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vyskytuje-li se v tvém systému soubor /etc/environment, zaměř na něj svou pozornost. ;-)
oVirt | SPICE
13.1.2006 15:04 Espinosa | skóre: 24 | blog: Espblog | London
Rozbalit Rozbalit vše Re: environmental variable versus grafické prostředí
Existuje. Existoval, ale prázdný. Nevím co to má mít za formát, ale napadlo mě, že sh skript nikoho neurazí.

Takže jsem vložil:
#!/bin/sh
SAL_USE_VCLPLUGIN=default
export SAL_USE_VCLPLUGIN
...ale tohle nefunguje, hodnota v KDE stále nezměněná :(
9.1.2006 01:22 HynaDJ | skóre: 14 | Mutěnice
Rozbalit Rozbalit vše Re: environmental variable versus grafické prostředí
Odpovědět | | Sbalit | Link | Blokovat | Admin
Můj tip: Podle mě se xkám nestihne ta proměnná předat, a ten Tvůj příkaz se spouští pozdě. Možná by to šlo nastavit v ~/.xinitrc Čistě teoreticky :-\
9.1.2006 09:14 ..... | skóre: 18 | Pardubice
Rozbalit Rozbalit vše Re: environmental variable versus grafické prostředí
Odpovědět | | Sbalit | Link | Blokovat | Admin
V ~/.kde/env/ vytvoř skript a do něj zapiš nastavení proměnných (měl by mít příponu .sh, jinak si ho u mě KDE nevšímá).

echo 'export SAL_USE_VCLPLUGIN=default' > ~/.kde/env/ooffice.sh

Tohle je taky místo, kde se může nastavit KDEWM, aby si ho KDE všimlo včas a použilo jiný WM místo kwin.
Josef Kufner avatar 9.1.2006 11:59 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: environmental variable versus grafické prostředí
Odpovědět | | Sbalit | Link | Blokovat | Admin
Přihlašuji se z XDM a to spouští při přihlášení script ~/.Xsession, který když skončí, tak dojde k odhlášení. Na začátku tohoto scriptu mám
. ~/.bashrc
a veškeré věci, které potřebuju.

Další varianta je napsat wrapper například v bashi, kde se nastaví proměnné a pak se spustí ten program. Toho používám u mpc, kde občas potebuju upravit hodnoty těch proměnných:
#!/bin/bash
#export MPD_HOST=jinejpocitac
export MPD_HOST=heslo@pocitac
exec /usr/bin/mpc $@
Ten script mám v ~/bin/ a v .bashrc mám
export PATH=$HOME/bin:$PATH
Hello world ! Segmentation fault (core dumped)
13.1.2006 15:01 Espinosa | skóre: 24 | blog: Espblog | London
Rozbalit Rozbalit vše Re: environmental variable versus grafické prostředí
Odpovědět | | Sbalit | Link | Blokovat | Admin
Všem moc děkuji. Jako zdroj informací o low-level administraci linuxu je ABC bezkonkurenční.

Takže jak to dopadlo:
13.1.2006 15:55 WerK | skóre: 19 | blog: desktop
Rozbalit Rozbalit vše Re: environmental variable versus grafické prostředí
K souborum .xinitrc a .xsession. S .xinitrc mate pravdu, provadi se pouze pokud pouzivate spousteni Xek pres prikaz startx tudiz by nefungoval. Se souborem .xsession je to trochu jinak. Xka spoustena z kdm/gdm/cehokoliv grafickyho pouzivaji ke spousteni prislusny /etc/X11/Sessions script. Pokud ovsem existuje .xsession v houmu prislusneho uzivatele a v login manazeru vyberete moznost "custom" (nebo default ... muze se to lisit) tak se provede .xsession (tudiz musi byt spustitelny). .xsession se hodi, pokud chcete pouzivat jiny manazer oken, nez nabizi login manazer.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.