Selam, Ben de zaten gdm'nin ne yaptığını tam bilmediğim için > > Birçok uygulama bu dosyaya bakıyor anladığım kadarıyla diye yazdım. Onun sorunlarıyla uğraşmaktansa, X oturumunu startx ile başlatıyorum.
Ayrıca, bu PAM'den libc hiç bahsetmiyor. Benim bildiğim tüm süreçleri kabuk başlatır ve bu süreçler ortamı kabuktan miras alırlar. Yerel ayarları da bunlardan biridir (LANG). Bu gerçekten böyle çalışıyor. PAM nereden çıktı, login işlerine baksın yeter. Ayrıca gdm'de ortam değişkenlerini kabuktan miras alabilir. Bunu böyle yapmamışlarsa gdm'nin içinde bir böcek var demektir. Esen kalın, Nilgün Cts 18 Haz 2005 10:03 sularında, Tonguc Yumruk şunları yazmıştı: > Tartışmanın kalanına karışmak istemiyorum, ancak GDM konusunda ufak > birkaç detay var. GDM kendi yerel bilgisini /etc/environment dosyasından > almaz. Zira GDM bir PAM oturumu içinde değil de açılış betiği > marifetiyle başlatıldığından "kendi" yerel bilgilerini o açılış > betiğinden alır. Bu açılış betiği ise GDM'in "kendi" yerel bilgisini > /etc/default/gdm dosyasından okur. Bu konu ile ilgili detaylı bir > tartışma http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%23133578 > adresinde mevcut. > > Tabii giriş işlemi gerçekleştikten sonra kullanıcının yerel ayarları ile > PAM ilegilenir ve yerel ayarlarını /etc/environment dosyasına göre > ayarlar. > > Thus saith Nilgün Belma Bugüner : > > Selam, > > > > Cum 17 Haz 2005 18:53 sularında, Murat Demirten şunları yazmıştı: > > > Selamlar, > > > > > > Burada atlanan bir nokta üzerinde durmakta fayda var. > > > > > > /etc/environment halen daha standartlar içerisinde yer alan ve kullanımı > > > eldeki şartlara göre devam edecek olan, gerekli bir dosya. > > > > > > Özet olarak, /etc/environment dosyası, exec() çağrısı ile çalıştırılan > > > süreçler tarafından okunur ve içindeki değerler geçerli ortam > > > değişkenlerine > > > atanır. > > > > > > /etc/environment her exec() çalıştığında okunurken, /etc/profile login > > > olarak > > > girilen oturumlarda dikkate alınır. Bu yüzden de, /etc/profile dosyası > > > bir > > > shell script olabiliyorken, /etc/environment dosyasında sadece > > > DEĞİŞKEN=DEĞER > > > formatında atamalar yapılabilmektedir. exec() tüm bu DEĞİŞKEN'leri, > > > karşısındaki DEĞER ile çalışan sürecin ortam değişkenleri arasına ekler. > > > > > > Bir program/süreç ortam değişkenlerine sıkı bir bağımlılık içeriyorsa, > > > ilgili > > > programa her durumda aynı ortamı sunabilmek için geçerli yol, ihtiyaç > > > duyduğu > > > değişkenleri /etc/environment dosyası içerisinde bulundurmaktan geçer. Bu > > > sayede hem login olunduktan sonra çalıştırıldığında, hem de sözgelimi > > > cron > > > tarafından veya açılışta rc betikleri tarafından çalıştırıldığında aynı > > > şekilde çalışmasına devam eder. > > > > > > Ancak durum böyle iken, /etc/environment dosyası üzerinden değişkenleri > > > ayarlamaya mecbur kalınan senaryolar pratikte fazlaca değil. > > > > > > Debian'daki kullanımı ayrıca tartışılabilir ama durum bu şekildedir. > > > > > O halde tartışalım. > > Bu dosya içinde yerel ile ilgili atamalar olmazsa sorun çıkmayacaktır. > > Yerel ayarları ile ilgili atamaların bu dosyada bulunmasının > > sebebi gdm'nin kullanıcı ile türkçe iletişim kurmasını sağlamaktan > > ibaretmiş gibi görünüyorsa da pratikte böyle olmuyor. > > Birçok uygulama bu dosyaya bakıyor anladığım kadarıyla ve yerel > > ayarını kullanıcı seviyesinde değiştirseniz bile /etc/environment > > dosyasından alınan LANG değerine göre uygulama kendini yapılandırıyor. > > KDE dahil!!! > > > > Bunun pratikteki etkisini bir uygulamadan --help seçeneği ile > > aldığınız çıktıda görebilirsiniz (iconv --help gibi). > > > > set-language-env betiği ister root, ister sıradan kullanıcı olarak > > çalıştırılsın /etc/environment dosyasının içeriğinde değişiklik yapmıyor. > > Kurulum sırasında seçilen dile bağlı olarak bu dosyanın içi > > dolduruluyor ve öyle kalıyor. Bizim için önemli olan LANG değişkeni ve > > bu değişkenin /etc/environment dosyasındaki değeri tr_TR. > > Yani ISO-8859-9 kodlamasını etkinleştiriyor. > > > > Ben ilk önce bu ayarı Debian usulüyle yapmak istedim ve set-language-env > > betiğini kullanarak yerelimi tr_TR.UTF-8 yaptım. > > > > KDE'yi yeniden açtığımda, pencere başlıklarında bazı türkçe > > karakterlerin yerinde bir çift kutu gördüm. > > > > Bir KDE konsolu açtım. Konsola türkçe karakter yazamadım. > > locale komutunu verdim. Sonuçlar tr_TR.UTF-8'di. iconv --help > > yazdım. Türkçe karakterler UTF-8 karakterlerin dahili değerleriyle > > çıktılandı. Yani uçbirim aslında UTF-8 değil ISO-8859-9'du. > > > > Böyle birşeyle hiç karşılaşmadığım için tam anlamıyla bir şaşkınlık > > içindeydim. Epey bir aramadan sonra suçlu ortaya çıktı. > > /etc/environment dosyasını kaldırınca bu tuhaflıklar ortadan kalktı. > > > > Şimdi, gdm için ne yapılabilir diye sorarsak, yanıtım, login > > öncesi yerel ayarı vc/0 seviyesinde açılış betiklerinde yapılsın > > derim. /etc/environment dosyasında değil. O zaman böyle sorunlar > > (login öncesi yerel ayarlarının kullanıcı tercihlerini yoksayması) > > ortaya çıkmayacaktır. Tabii burada devreye /etc/sysconfig/ > > dizini girecektir. Benim bildiklerim, Knoppix (HD kurulumu), > > Suse, RH ve Fedora login öncesi yerel ayarını bu şekilde yapıyor. > > Ayrıca bu yöntemle linux konsolu da doğru yapılandırılır. Maalesef > > linux konsolu, klavye dosyasının ctrl+alt+8/9 tuşlarının insafına > > terkedilmiş durumda. Onları iyi ki yazmışım :-) > > > > > > Konu dışı: > > Bu arada belirtmeden geçemeyeceğim. Sanırım libc'de bir debian > > yaması var. Ben yeni para birimini içeren tr_TR dosyası ile > > libc yerellerini derlemek istedim. Uluslararası para birimi > > ISO-4217'ye uygun değil diye yereli derlemedi. Biliyorsunuz, > > para birimimiz bu standartta yayınlandıktan sonra, libc > > yerelinde para birimimizi değiştirdim (libc yerelimizin libc > > seviyesinde sorumlusu benim). Ancak, libc'yi bu denetimi yapacak > > şekilde yamayan standart düşkünleri, nedense standartlarını > > güncellememişler. Benim için para birimimizi dosyada > > değiştirmek sorun değil, TRY'yi TRL yaptım ve yerelleri > > derledim. > > > > Aynı standartlara uyma duyarlılığını SysV için neden göstermemişler de > > /etc/environment gibi sorunlu bir dosyayla login öncesi yereli > > ayarlamaya kalkmışlar, anlamak zor. > > > > > > Esen kalın, > > Nilgün > > > > > gdm örneğinde, gdm servisi login olunan bir oturumdan başlatılmadığı > > > için, /etc/environment dosyasını okuduktan sonra, profile dosyalarını > > > bakmıyor ve o şekilde açılıyordur. Ancak bir kullanıcı adı ve parolası > > > girdikten sonra o kullanıcıyla login olma süreci başladığında, profile > > > dosyaları dikkate alınıyor ve kullanıcının istediği şekliyle açılıyor. > > > > > > Kmail sorununda ise, LANG olarak tr_TR.UTF-8 seçildiğinde, karakter > > > dönüşüm > > > problemleri ortadan kalkıyor ancak tr_TR kullanıldığında, küçük harf > > > dönüşümünde belirtilen problem oluşuyor. > > > > > > Aslında bu hata, KDE kütüphanelerini kullanan tüm programlarda var ancak > > > küçük > > > harfe çevirip karşılaştırma yapan uygulama sayısının azlığı nedeniyle biz > > > hep > > > kmail'i görüyoruz. > > > > > > Sonuç olarak, KDE'de sorunsuz Türkçe için, tr_TR.UTF-8 seçilmeli. Konu > > > ile > > > ilgili ayrıntılı bilgiler kde hata veritabanı üzerinde arama yapılarak > > > elde > > > edilebilir: > > > http://bugs.kde.org/show_bug.cgi?id=101211 > > > http://bugs.kde.org/show_bug.cgi?id=93433 > > > > > > > > > >Bu iki nedenle /etc/environment dosyasını *silin* diyorum. > > > >İhtiyaç olmadığı gibi sorunlara yol açıyor. Savunduğunuz > > > >gibi masum bir dosya değil o. Yerel ayarı bir yerde > > > >tr_TR, başka bir yerde tr_TR.UTF-8 olmaz. Hepsi aynı > > > >olmalıdır. > > > > > > > >Sistem belgelerini okumuşsanız /etc/environment dosyasının > > > >atıl olduğu bir yerlerde yazıyor. O kadar çok belge > > > >okuyorum ki, yerini şu an hatırlamıyorum. > > > >