| Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision |
| hu:doc:uci [2018/02/17 19:56] – ↷ Links adapted because of a move operation | hu:doc:uci [2018/03/03 21:31] – ↷ Links adapted because of a move operation |
|---|
| ====== Az UCI Rendszer ====== | ====== Az UCI Rendszer ====== |
| Az [[doc:techref:uci|UCI]] a **U**nified **C**onfiguration **I**nterface rövidítése. Célja, hogy egységesítse az OpenWrt konfigurálását. | Az [[docs:techref:uci|UCI]] a **U**nified **C**onfiguration **I**nterface rövidítése. Célja, hogy egységesítse az OpenWrt konfigurálását. |
| |
| A rendszer beállításának egyszerűnek és egyértelműnek kéne lennie, megkönnyítve mindenki életét. Erről szól az UCI. Jelenleg az OpenWrt-ben a legfontosabb rendszerbeállítások az UCI konfigurációs felületével kezelhetők. Ezek azok a beállítások amik létfontosságúak az eszköz működéséhez, általában ezeket láthatjuk egy hagyományos router vagy beépített eszköz webes felületén. Ilyenek például az alapvető hálózati beállítások, wi-fi beállítások, loggolás és távoli elérés beállításai. | A rendszer beállításának egyszerűnek és egyértelműnek kéne lennie, megkönnyítve mindenki életét. Erről szól az UCI. Jelenleg az OpenWrt-ben a legfontosabb rendszerbeállítások az UCI konfigurációs felületével kezelhetők. Ezek azok a beállítások amik létfontosságúak az eszköz működéséhez, általában ezeket láthatjuk egy hagyományos router vagy beépített eszköz webes felületén. Ilyenek például az alapvető hálózati beállítások, wi-fi beállítások, loggolás és távoli elérés beállításai. |
| |
| Ezeken kívül bizonyos külső programok is kompatibilisek az UCI rendszerrel, így ezek is sokkal könnyebben kezelhetőek. Szinte minden programnak saját konfigurációs fájlja van szanaszét elszórva a fájlrendszerben, (pl. ''/etc/network/interfaces'', ''/etc/exports'', ''/etc/dnsmasq.conf'' or ''/etc/samba/samba.conf''), ráadásul ezek formátuma is teljesen eltérő. Az OpenWrt segítségével viszont nem kell foglalkoznod ezekkel, csak a megfelelő UCI fájlt kell módosítanod és a többit bízd a rendszerre! Természetesen a legtöbb szoftver még nincs felkészítve az UCI használatára, hiszen szükség lehet olyan speciális opciókra amikhez nélkülözhetetlen az alkalmazás saját konfigurácós felületének használata. Viszont egyre több olyan programot tesznek UCI-kompatibilissé az OpenWrt package-ek fejlesztői, amiknek előnyére válhat az egységesített beállítás. (Az UCI konfigurációs fájlok aktuális listája [[inbox:uci#configuration.files|itt]] található). | Ezeken kívül bizonyos külső programok is kompatibilisek az UCI rendszerrel, így ezek is sokkal könnyebben kezelhetőek. Szinte minden programnak saját konfigurációs fájlja van szanaszét elszórva a fájlrendszerben, (pl. ''/etc/network/interfaces'', ''/etc/exports'', ''/etc/dnsmasq.conf'' or ''/etc/samba/samba.conf''), ráadásul ezek formátuma is teljesen eltérő. Az OpenWrt segítségével viszont nem kell foglalkoznod ezekkel, csak a megfelelő UCI fájlt kell módosítanod és a többit bízd a rendszerre! Természetesen a legtöbb szoftver még nincs felkészítve az UCI használatára, hiszen szükség lehet olyan speciális opciókra amikhez nélkülözhetetlen az alkalmazás saját konfigurácós felületének használata. Viszont egyre több olyan programot tesznek UCI-kompatibilissé az OpenWrt package-ek fejlesztői, amiknek előnyére válhat az egységesített beállítás. (Az UCI konfigurációs fájlok aktuális listája [[docs:guide-user:base-system:uci#configuration.files|itt]] található). |
| |
| A legtöbb alkalmazás esetén az UCI-kompatibilis konfigurációt úgy tették lehetővé, hogy indításkor a program eredeti konfigfájlja felülíródik a hozzá tartozó UCI fájl beállításaival. Az adott alkalmazásnak megfelelő formátumú konfigfájlt az ''/etc/init.d/'' könyvtárban található indítóscriptek futásidőben generálják. További infók erről az [[doc:techref:initscripts|Init scripts]] oldalon találhatóak. Ebből következik, hogyha egy UCI-kompatibilis indítószkripttel indítasz egy szolgáltatást akkor az előző konfigfájl elveszik. Például ha a [[docs:user-guide:services:cifs.server|Samba/CIFS]] szervert a ''/etc/init.d/samba start'' szkrippel indítod, akkor a ''/etc/samba/smb.conf'' fájl felülíródik a ''/etc/config/samba'' UCI konfigfájlban tárolt beállításokkal. Épp ezért legtöbbször az alkalmazások konfigfájlja nem is a flash meghajtón van tárolva, hanem a RAM-ban, mivel úgyis minden változtatásnál újraíródik az UCI fájl alapján. (Elvileg ki lehet kapcsolni az UCI-t azokban az esetekben mikor olyan opciókat szeretnél beállítani az eredeti konfigfájlban, amik az UCI-n keresztül nem elérhetőek. FIXME Biztos? Hogyan kell ezt?) | A legtöbb alkalmazás esetén az UCI-kompatibilis konfigurációt úgy tették lehetővé, hogy indításkor a program eredeti konfigfájlja felülíródik a hozzá tartozó UCI fájl beállításaival. Az adott alkalmazásnak megfelelő formátumú konfigfájlt az ''/etc/init.d/'' könyvtárban található indítóscriptek futásidőben generálják. További infók erről az [[docs:techref:initscripts|Init scripts]] oldalon találhatóak. Ebből következik, hogyha egy UCI-kompatibilis indítószkripttel indítasz egy szolgáltatást akkor az előző konfigfájl elveszik. Például ha a [[docs:guide-user:services:nas:cifs.server|Samba/CIFS]] szervert a ''/etc/init.d/samba start'' szkrippel indítod, akkor a ''/etc/samba/smb.conf'' fájl felülíródik a ''/etc/config/samba'' UCI konfigfájlban tárolt beállításokkal. Épp ezért legtöbbször az alkalmazások konfigfájlja nem is a flash meghajtón van tárolva, hanem a RAM-ban, mivel úgyis minden változtatásnál újraíródik az UCI fájl alapján. (Elvileg ki lehet kapcsolni az UCI-t azokban az esetekben mikor olyan opciókat szeretnél beállítani az eredeti konfigfájlban, amik az UCI-n keresztül nem elérhetőek. FIXME Biztos? Hogyan kell ezt?) |
| |
| Az ilyen nem UCI-kompatibilis programokhoz hasznos a [[docs:user-guide:notuci.config|nem UCI-kompatibilis konfigfájlok listája]]. Ajánlott az ilyen alkalmazások saját dokumentációját tanulmányozni. | Az ilyen nem UCI-kompatibilis programokhoz hasznos a [[docs:guide-user:base-system:notuci.config|nem UCI-kompatibilis konfigfájlok listája]]. Ajánlott az ilyen alkalmazások saját dokumentációját tanulmányozni. |
| |
| ===== Egységes alapelvek ===== | ===== Egységes alapelvek ===== |
| |
| Az OpenWRT beállításai egy közös helyen, a ''/etc/config/'' mappában lévő UCI fájlokban találhatóak. Minden fájl nagyjából a nevének megfelelő rendszerösszetevőt konfigurálja. A konfigurációs fájlok sima szövegszerkesztővel szerkeszthetőek vagy parancssorból az ''uci'' segédprogrammal módosíthatóak, továbbá számos API (pl. Shell, Lua és C) segítségével is kezelhetőek. A web interfészek, mint a [[docs:user-guide:services:luci.essentials-tomerge|LuCI]] is ezeket használják. | Az OpenWRT beállításai egy közös helyen, a ''/etc/config/'' mappában lévő UCI fájlokban találhatóak. Minden fájl nagyjából a nevének megfelelő rendszerösszetevőt konfigurálja. A konfigurációs fájlok sima szövegszerkesztővel szerkeszthetőek vagy parancssorból az ''uci'' segédprogrammal módosíthatóak, továbbá számos API (pl. Shell, Lua és C) segítségével is kezelhetőek. A web interfészek, mint a [[docs:guide-user:luci:luci.essentials-tomerge|LuCI]] is ezeket használják. |
| |
| Egy UCI beállításfájl változtatása után (akár szövegszerkesztővel, akár parancssorból történt) az új beállítások érvényesítéséhez a hozzá tartozó szolgáltatást vagy programot újra kell indítani a megfelelő [[doc/techref/initscripts|init.d hívással]]. A legtöbb alkalmazás UCI-kompatibilitásának kulcsa, hogy az init.d script futás közben készíti el program saját specifikus konfigfájlját. Az init.d script először kiírja a megfelelő konfigurációs fájlt az adott program által elvárt helyre, majd a program újraindításával beolvastatja azt. Mivel a konfigurációs változtatásokat az init.d script végzi, ezért egy alkamazás direkt, kézi (újra)indítása nem fogja újraolvasni az UCI konfigurációt. Ezért az UCI által konfigurált szolgáltatásokat **minden esetben** a megfelelő init.d scripttel kezeljük! | Egy UCI beállításfájl változtatása után (akár szövegszerkesztővel, akár parancssorból történt) az új beállítások érvényesítéséhez a hozzá tartozó szolgáltatást vagy programot újra kell indítani a megfelelő [[docs:techref:initscripts|init.d hívással]]. A legtöbb alkalmazás UCI-kompatibilitásának kulcsa, hogy az init.d script futás közben készíti el program saját specifikus konfigfájlját. Az init.d script először kiírja a megfelelő konfigurációs fájlt az adott program által elvárt helyre, majd a program újraindításával beolvastatja azt. Mivel a konfigurációs változtatásokat az init.d script végzi, ezért egy alkamazás direkt, kézi (újra)indítása nem fogja újraolvasni az UCI konfigurációt. Ezért az UCI által konfigurált szolgáltatásokat **minden esetben** a megfelelő init.d scripttel kezeljük! |
| |
| Nézzünk egy példát egy UCI beállítás módosítására: mondjuk, hogy meg szeretnénk változtatni az eszközünk IP címét az alapértelmezett ''192.168.1.1''-ről ''192.168.2.1''-re. | Nézzünk egy példát egy UCI beállítás módosítására: mondjuk, hogy meg szeretnénk változtatni az eszközünk IP címét az alapértelmezett ''192.168.1.1''-ről ''192.168.2.1''-re. |
| ===== Konfigurációs fájlok ===== | ===== Konfigurációs fájlok ===== |
| |
| Az aktuális [[inbox:uci#configuration.files|UCI konfigfájlok listája]] az angol wikioldalon található. | Az aktuális [[docs:guide-user:base-system:uci#configuration.files|UCI konfigfájlok listája]] az angol wikioldalon található. |
| /* nincs értelme idemásolni, úgyis csak az angol oldalon lesz frissítve (ha egyáltalán frissíti valaki) */ | /* nincs értelme idemásolni, úgyis csak az angol oldalon lesz frissítve (ha egyáltalán frissíti valaki) */ |
| Magyar fordítások: | Magyar fordítások: |
| Általában az UCI konfigfájlokat kézzel szoktuk módosítani. Ugyanakkor scripting célokra teljes körűen használható az ''uci'' parancssori segédprogram is. Segítségével a fejlesztők az UCI fájlokat egyszerűen feldolgozhatják anélkül, hogy ''awk''-t ''grep''-et vagy egyéb bizonytalan kimenetelű parancsokat kéne használniuk. Az ''uci'' utility segítségével egy UCI konfigfájl minden paramétere kényelmesen kiolvasható illetve módosítható. | Általában az UCI konfigfájlokat kézzel szoktuk módosítani. Ugyanakkor scripting célokra teljes körűen használható az ''uci'' parancssori segédprogram is. Segítségével a fejlesztők az UCI fájlokat egyszerűen feldolgozhatják anélkül, hogy ''awk''-t ''grep''-et vagy egyéb bizonytalan kimenetelű parancsokat kéne használniuk. Az ''uci'' utility segítségével egy UCI konfigfájl minden paramétere kényelmesen kiolvasható illetve módosítható. |
| |
| |{{:meta:icons:tango:48px-dialog-warning.svg.png?nolink&24}} Az ''uci'' használatakor a konfigfájlok mindig teljes egészében újraíródnak és a szükségtelen vagy az érvénytelen szintaxisú sorok kimaradnak. Ez azt jelenti, hogy minden felesleges sor törlődik, beleértve a kommenteket is! Ezért, ha magad szoktad szerkeszteni az UCI fájljaidat és szeretnéd megőrzni a kommeteket, akkor ne használd a parancsori segédprogramot, hanem továbbra is csak kézzel szerkeszd a fájlokat. Vannak olyan UCI fájlok (pl. az uhttpd konfigfájl), amik gyárilag tartalmaznak kommenteket a beállítások megkönnyítéséhez. Ezek ugyanúgy elvesznek az uci util használatakor. Továbbá fontos tudni, hogy néhány alkalmazás, köztük a [[doc/techref/luci|LuCI]] webes felület is az ''uci'' segédprogramot használja és így bármikor felülírhatja az UCI fájlokat.| | |{{:meta:icons:tango:48px-dialog-warning.svg.png?nolink&24}} Az ''uci'' használatakor a konfigfájlok mindig teljes egészében újraíródnak és a szükségtelen vagy az érvénytelen szintaxisú sorok kimaradnak. Ez azt jelenti, hogy minden felesleges sor törlődik, beleértve a kommenteket is! Ezért, ha magad szoktad szerkeszteni az UCI fájljaidat és szeretnéd megőrzni a kommeteket, akkor ne használd a parancsori segédprogramot, hanem továbbra is csak kézzel szerkeszd a fájlokat. Vannak olyan UCI fájlok (pl. az uhttpd konfigfájl), amik gyárilag tartalmaznak kommenteket a beállítások megkönnyítéséhez. Ezek ugyanúgy elvesznek az uci util használatakor. Továbbá fontos tudni, hogy néhány alkalmazás, köztük a [[docs:techref:luci|LuCI]] webes felület is az ''uci'' segédprogramot használja és így bármikor felülírhatja az UCI fájlokat.| |
| |
| A parancssori segédprogram mellett az [[hu:doc:devel:config-scripting|UCI beállítások shell scriptből]] is kényelmesen kezelhetőek. | A parancssori segédprogram mellett az [[hu:doc:devel:config-scripting|UCI beállítások shell scriptből]] is kényelmesen kezelhetőek. |
| ==== Használati példák ==== | ==== Használati példák ==== |
| |
| Az [[inbox:uci#usage|''uci'' utility leírása]] és használati példák az angol wiki oldalon találhatóak. | Az [[docs:guide-user:base-system:uci#usage|''uci'' utility leírása]] és használati példák az angol wiki oldalon találhatóak. |
| /* nincs értelme idemásolni, úgyis csak az angol oldalon lesz frissítve (ha egyáltalán frissíti valaki, a reorder opció ott is hiányzik) */ | /* nincs értelme idemásolni, úgyis csak az angol oldalon lesz frissítve (ha egyáltalán frissíti valaki, a reorder opció ott is hiányzik) */ |
| |
| |