NFS mount karakter problema

Fórumok

Sziasztok,

keresgeltem egy kicsit a neten, de csak a kerdest talaltam meg mindenhol, a valaszt nem. Lehet, hogy keresni nem tudok, lehet, hogy szoveget ertelmezni nem, de nem zarom ki azt sem, hogy nem lehet, amit akarok. Ez pedig a kovetkezo:

@debian:
beraktam a /etc/exports -ba egy szep mappat, szep gepeknek, szep jogokkal

@ubuntu-desktop:
kiadtam root-kent a "mount IP:konyvtar celkonyvtar" parancsot

ennek hatasara elerem a tavol gep szep mappajat, de rossz ekezetes karakterekkel.

Samban meg tudtam oldani, NFS-en lehet, hogy erre nincs lehetoseg? Nezegettem a megosztasi oldal beallitasi lehetosegeit, a csatolasi oldal beallitasi lehetosegeit, es mar megint buta maradtam.

Ti lattok lehetoseget az NFS-en keresztuli helyes ekezetekkel valo eleresre?

Udv, PeZo

Hozzászólások

Legjobb tudomásom szerint ilyet nem lehet, csakúgy, mint ahogy helyi Unix fájlrendszer csatolásakor sem lehet karakterkészletet alakítani.

A Unix (és NFS) filozófiája szerint a fájlnév az byte-ok puszta sorozata, interpretálásuk betűkként az alkalmazások feladata. A Windows filozófiája szerint a fájlnév az karaketerek sorozata (és a tényleges tárolási formátum az illesztés szempontjából lényegtelen belső tulajdonság).

Windows fájlrendszer Linuxba csatolásakor (akár helyi mount, akár smb) mindenképp kell konvertálni, meg kell hogy mondjad hogy a karaketereket milyen kódlap szerint alakítsa át byte-okká a rendszer, tehát erre van támogatás.

Elvi szinten Unix fájlrendszer csatolásakor (akár helyi mount, akár nfs) is megoldható lenne a kétfajta bytesorozat között konvertálás, ezt azonban tudtommal szükség és igény híján senki sem oldotta még meg - meglehetősen józan feltételezés, hogy (a te konkrét esetedet kivéve) ezek a fájlrenszerek konzisztensen egy adott kódolást használnak, amelyik egyben a rendszer beállított karakterkészlete is.

IMHO a Windows hozzáállása a helyes, a Unixé helytelen. Józan megoldás: állj át mindenütt UTF-8-ra a lehető leghamarabb.

Nincs ilyen fogalom hogy "eltárolás karakterkódolása". Minden alkalmazás maga dönti el hogy a létrehozott fájl neve micsoda (milyen bytesorozat; avagy ha jobban tetszik, milyen szöveg milyen kódolással - kódolás terén valószínűleg (de nem biztos) a locale beállításokat használja). Ext3/NFS/bármilyen egyéb Unix fájlrendszer szempontjából a fájlnév nem más, mint byte-ok sorozata. Byte-ok sorozatát pedig többféle kódkészlettel meg lehet jeleníteni a képernyőn - ezekből általában egy néz ki jól, a többi hibásan.

Átállás: rakj fel UTF-8-as oprendszert, és utána convmv parancs javítja a fájlneveket.

Ez az "UTF8-as oprendszer" elegge izgi fogalom... A debian melyik verziotol szamit annak? Amiota az, lehet-e "nem utf8 mod"-ban hasznalni?

Most valahogy nem all bennem ossze a kep... :(

A locale csomaghoz tenyleg nem emlekszem, hogy valaha is az iso8859-2 beallitasa szukseges lett volna (fat fajlrendszer alkalomszeru csatolasatol eltekintve).

Az viszont tuti, hogy a samba ugy van beallitva, hogy "unix charset = utf8 (vagy utf-8, fejbol nem tudom).

De nem hiszem, hogy az ubuntu desktop ne tudna az utf8-at hasznalni - ergo akkor az is "utf8-as oprendszer"?

Bocs, ha faraszto a filozofalasom, de szeretnek tisztan latni (bar a halalomat kesobbre tervezem, tehat biztos lesz meg mit tanulnom "jo papkent" :) ezutan is)...

> A debian melyik verziotol szamit annak?

Nem tudom. Valószínűleg nem éles az átmenet: a növekedéssel egyre jobb lett az utf8 támogatás, aztán egyszer csak az lett a default is (vagy talán még mindig nem), aztán egyszer talán már meg se kérdezi telepítéskor, hanem mindenképp ezt állítja be.

> Amiota az, lehet-e "nem utf8 mod"-ban hasznalni?

Valószínűleg nagyjából igen, de nem látok rá okot hogy miért akarnál így tenni. Amíg kavarod a kétféle rendszert, addig csak szívni fogsz (mint ahogy most is szívsz az ékezetekkel). Az egyetlen normális megoldás (immár jópár éve) elfelejteni az összes iso-* karakterkészletet, és kizárólag utf8-at használni.

> De nem hiszem, hogy az ubuntu desktop ne tudna az utf8-at hasznalni - ergo akkor az is "utf8-as oprendszer"?

Adott verziótól kezdve igen. Vagy esetleg telepítéskor kell választanod. Nem tudom. De azért ne feledd, a "meg tudom enni a spenótot" és a "spenótot eszem" nem ugyanaz. Nemcsak az a kérdés, hogy tud-e utf8-at, hanem az is, hogy valóban azt használ-e. Nem tudom, hogy "utf8-as oprendszer" alatt melyikre gondoltál a kettőből.

Alapvetően ma minden modern disztrib tud utf8-at. Amelyik egyáltalán nem tud az egy kalap szar. Amelyik nem azt használja alapértelmezettként, az szintén szar. Amelyik egyáltalán felteszi neked a kérdést telepítéskor hogy mit szeretnél, szerintem az is elavult korlátolt hozzáállású. Minden említésre méltó mai disztrib utf8-at állít be alapértelmezettként.

Tessék kizárólag utf8-at használni és minden mást a lehető leggyorsabban elfelejteni - ez az út vezet a legkevesebb szíváshoz az ékezetes betűk kezelése terén.

Ha mindkét gép azonos kódolást használ, akkor jónak kell lennie az ékezeteknek.

mindkét gépen az alábbi környezeti változók legyenek ugyan arra állítva:

MM_CHARSET=utf8
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
LC_CTYPE=en_US.UTF-8

nálam így jó.