[Çözüldü] Gerçek program isimleri

Başlatan onparmakfklavye, 18 Kasım 2017 - 17:37:12

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

onparmakfklavye

Merhaba cinnamon, unity, gnome vs.de gerçek uygulama isimlerini göstermenin bir yolu var mıdır?
Örneğin Files yerine Nemo, calc yerine gnome-calculator gibi

decent

Merhaba,
/usr/share/applications dizini altında bulunan istediğiniz uygulamanın .desktop uzantılı dosyasını düzenleyip istediğiniz ismi verebilirsiniz.

UNC

[mention=633344]@onparmakfklavye[/mention]
uygulamanın /usr/share/applications dizininde bulunan .desktop dosyasını düzenlemen gerek "Name=uygulama-adı" satırını istedigin şekilde düzenleyip kaydet.
işlemler bittikten sonra degişiklik olmazsa
sudo gtk-update-icon-cache

Not: Bazı uygulamaların .desktop dosyasında farklı diller için ayrı bir  "name" kısmı olabilir.
ozamanda Name[tr]=uygulama-adı satırını düzenlemen yeterli.

örnek resim:


mhmtkrktr

Alıntı YapKod: [Seç]
sudo gtk-update-icon-cache
Bu komut şu şekilde olacak sanırım. İcon belleğini bu işlem için güncellemeye gerek yok gibi.
sudo update-desktop-database

@onparmakfklavye söylenilen şekilde istediğin şekli oluşturabilirsin ama düzenlediğin dosyalar kendisi ile ilgili her güncellemede eski halini alacaktır. Linux paket güncelleme hızına yetişir, uğraşırım dersen neden olmasın. Benimkisi, boşuna uğraşmış olmayasın diye ön bilgi sadece.

.py

Firefox yerine değişik yapmak istediğiniz uzantının ismini yazınız.

Terminalden:

cd /usr/share/applications

ls

sudo chmod +777 firefox.desktop

sudo  vim firefox.desktop

sudo chmod 604 firefox.desktop

htaslan

[bir ekleme]

Gerekmedikçe Unix sistemlerde FHS [1] standardındaki sistem dizinlerinde değişiklik yapılmaz. Daha doğrusu doğru bir pratik değildir. Bunun yerine yine aynı hierarcy'de /usr/local altını kullanmak gerekir. Bu overwrite işlemi dahi olsa. Desktop entry [2] mevzusunda ise XDG [3] dizinleri bile tercih edilebilir. user-based olduğu için öncelikli bu dizinlerdeki ayarlar sisteme bindirilir.

[1] https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html
[2] https://wiki.archlinux.org/index.php/Desktop_entries
[3] https://specifications.freedesktop.org/basedir-spec/latest/

mhmtkrktr

@.py verdiğin komutların o dizinde sorun oluşturmayacağına emin misin? Gerçi ne yapılmasını istediğini de anlayamadım ben.

@htaslan bu mantıktan yola çıkarsan, özellikle Gentoo, Arch gibi dağıtımların hiç kullanılmaması gerekir. Dosya ve dizinlerin izinleri ilgili değişiklikten bahsediyorsan tabiki haklısın. Diğerleri için, ne yaptığını bilerek ve güvenli bir şekilde yapıyorsan sorun oluşturacağını sanmıyorum. Sonuçta bunların her biri zaten yine birilerinin düzenlemesi ile bizim bilgisayarımıza geliyor.   

htaslan

@mhmtkrktr bunlar kural değil, üzerine kafa yorulmuş standardlardır ve dağıtım bağımsızdır. Unix-like sistemlerin (Debian veya herhangi * bir şey) hepsi için FHS ortaktır. Ayrıca yaşanabilecek sorunları sadece izin vesaire diye kısıtlamamak gerek. Bu sorun package update veya dist upgrade sırasında meydana gelen bir bozulma veya conflict olabilir (ki update işleri her zaman korkulan işler olmuştur). Bu sebeple "yerel" yapılandırmalar için /usr/local dizininin kullanılması tavsiye edilir. Go paket yapısı bunun emsal örneklerinden birisidir: https://golang.org/doc/install

onparmakfklavye

teşekkürederim cevaplar için ben pratik bir yolu var mıdır diye merak etmiştim. Tek tek uğraşmak insanı bezdirir.

decent

@onparmakfklavye,
Kalıcı olarak bu işlemi yapmak istersen şu çözüm işine yarayabilir..

İlgili dizinde bulunan .desktop uzantılı dosyaları görüntülemek istersek :
ls /usr/share/applications

Örnek olarak İstediğimiz uygulamanın .desktop uzantılı dosyasını, sistem dizininden kullanıcı dizinine alalım:
Böylece dosya izinlerini değiştirmek gibi adımları uygulamaya gerek kalmayacaktır, tüm işlemleri de sudo kullanmadan yapabileceğiz.

cp /usr/share/applications/org.gnome.Calculator.desktop ~/.local/share/applications

Kopyalanan dosyayı düzenlemek için açalım:
gedit ~/.local/share/applications/org.gnome.Calculator.desktop

Aşağıdaki satırı istediğimiz gibi değiştirelim:
Name[tr]=Hesap Makinesi

İşte Sonuç:


mhmtkrktr

Alıntı YapGerekmedikçe Unix sistemlerde FHS [1] standardındaki sistem dizinlerinde değişiklik yapılmaz.
[1] https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html
[2] https://wiki.archlinux.org/index.php/Desktop_entries
[3] https://specifications.freedesktop.org/basedir-spec/latest/

Gerekliliğin kriteri nedir ve bu paylaştığın bağlantıların içinde söylediğine ithaf eden paragrafı paylaşabilir misin? Kısaca göz gezdirdim ama benim ilgili bölümlerde gördüğüm /usr/local dizininin alternatif olarak kullanılabileceği bilgisi var. Bu bir gereklilik olarak belirtilmez. Bunu da, bu hiyerarşiyi anlatan neredeyse her makalede bulabilirsin zaten.

Bence biz farklı konulardan bahsediyoruz. Bu yüzden bana tuhaf geldi söylediklerin. Diğer dağıtımlar örneğini standartların değişebileceği anlamında söylemedim ayrıca. Şu şekilde söyleyeyim.
Ben Arch 'ı kurduğumda sudo komutunu kullanabilmem için öncelikle sahip olduğum hesabın sudo yetkisine sahip olması gerekiyor. Bunun için man sudo ne diyor. Benimle ilgili bir düzenleme yapacaksan derdini bana değil, git /etc/sudoers 'e söyle diyor. Tamam senin yoldan gidip /usr/local/etc altına alternatif oluşturduk diyelim. Peki sudoers belgeleri ne diyor. Benimle ilgili bir dosya kullanacaksan bununla ilgili PATH ı önce bana söyleyeceksin diyor. Bu hesaba göre bunu nasıl yapıcaz. Kulağına fısıldamayacağımıza göre girip içine yazıcaz.
Config içeren neredeyse tüm man belgeleri kendisiyle ilgili ayar dosyaları için alternatif alanlar içerebilir. Ama alternatiftir, mecburiyet değil. Bu en başta, Linux için zenginlikle fakirlik arasında ki çizgiyi belirler.   


htaslan

#11
Şu dipnotu ekleyerek devam edeyim. Bunlar en nihayetinde best practice'tir ve teknik konulardır. Olayı dağıtıma indirgemek ve felsefik tartışmak doğru değil. Çünkü teknik sebepleri var:

- FHS'de local content'leri standalone yönetmenin doğruluğu/yanlışlığı söylenmez/tartışılmaz
- External configurations konusu zaten zaman içinde değişmiştir. Önceleri overwrite edilirdi, sonra /usr/local. Fakat şimdi spesification'lar .d suffix'li dizinlerle de yönetiliyor
- Bu tip dizinler tamamen maintainibility'i artırmak için icat edilmiştir, çünkü saptanmış sorunlar var

Overwrite etmenin en büyük eksisi şudur zaten: Eğer birgün dist upgrade'de veya paket yükseltmesinde ilgili pakette senin overwrite ettiğin dosyayla ilgili bir değişiklik gelirse, package manager o dosyayı tekrar overwrite ettiğinde tüm configuration'lar kaybolacaktır.

Hierarchy'deki dosya dizin mevzularında şunlara dikkat etmek gerekir:

- Dağıtımın ürettiği yazdığı dosyalara pek dokunma
- dist-specific dosyalar için /usr/local altını kullan. Mesela /usr/local/man veya kendi binary dosyan için /usr/bin yerine /usr/local/bin
- External configuration'lar için genellikle .d suffixli dizinler. Mesela MySQL için /etc/mysql.cnf yerine /etc/mysql/conf.d/<conf>

/etc/sudoers örneğinde o dosyaya direct overwrite yapmak zaten yanlış pratik. "visudo" programı ile değişiklik yapman gerekir. Fakat onu da base config üzerinde çalıştırmamalısın. /etc/sudoers.d/<conf> gibi bir dosyada yapıp include etmen gerek. İlgili detaylar sudoers(5) man'ın da mevcut.

Dediğim gibi bunlar sysadmin konusunda gerekli best practicler, bu şekilde kullanmakta fayda var ve naçizane tavsiye olunur.

sudoers(5) https://manpages.debian.org/stretch/sudo/sudoers.5.en.html

mhmtkrktr

[mention=633405]@htaslan[/mention] Rica etsem, birebir karşılığı olan kelimeleri mümkün olduğunca Türkçe olarak yazabilirmisin. ;-)

Alıntı YapOlayı dağıtıma indirgemek ve felsefik tartışmak doğru değil.
Ben bilimi severim. Felsefede bir bilimdir, onu da severim.  "Olayı dağıtıma indirgemek" deyip makarayı başa sardığımıza göre felsefeye de ihtiyaç var demek ki.
"Aynı hatayı iki kez yapamazsınız. İkinci kez yaptığınız hata değil, tercihtir."
Steven Denn kardeş söylemiş bunu. Tanımıyorum kendisini ama güzel söylemiş.

Gelelim asıl konuya,
Alıntı YapÇünkü teknik sebepleri var:
Önce şunu belirteyim,
Alıntı YapGerekmedikçe Unix sistemlerde FHS [1] standardındaki sistem dizinlerinde değişiklik yapılmaz.
Benim bu cümlede takıldığım tek nokta, sonunda ki yapılmaz kelimesi. Yani, kesinlik ifadesi. Ve ardından şunu demişsin.
Alıntı YapOverwrite etmenin en büyük eksisi şudur zaten: Eğer birgün dist upgrade'de veya paket yükseltmesinde ilgili pakette senin overwrite ettiğin dosyayla ilgili bir değişiklik gelirse, package manager o dosyayı tekrar overwrite ettiğinde tüm configuration'lar kaybolacaktır.
Mesele düzenlenmiş dosyanın kaybolması mı? Öncelikle, zaten kaybolmasını istemediğim fikri nereden oluşuyor. Belki ben sonraki güncellemede kaybolmasını istiyorum. Gerçi istesem de bu şekilde kaybolmaz. Pacsave konusunu zaten biliyorsundur. https://wiki.archlinux.org/index.php/Pacman/Pacnew_and_Pacsave

Başlıkta ki konuya döner ve yapılmaz şartını ele alırsak şunu sormak istiyorum. Ben şimdi /usr/share/applications/falanca.desktop dosyasını açsam ve Name=Ahmet satırını Name=Mehmet yapsam, sisteme teknik olarak ne gibi zarar vermiş oluyorum?

Not: Mesajında değinmediğim yerler oldu. Sebebi mesajın uzamaması. Yanlış anlaşılmasın. Zaman oldukça oralara da gelebiliriz. ;-)


onparmakfklavye

[mention=633399]@decent[/mention] teşekkürler

decent


if

[mention=633353]@.py[/mention]

Önerinizde o kadar çok yanlış var ki...

/us/share/applications dizini altındaki herhangi bir belgeye tüm gruplar ve kullanıcılar için yazma, okuma ve çalıştırma izni niye verilsin? O dizinde bulunan dosyaların izinleri daha önceden herşey gözetilerek belirlenmiştir. Dosya için değişiklik mi yapılmak isteniyor, o zaman dosya @decent'in önerdiği gibi ~/.local/share/applications altına taşını değişiklik yapılır.

Önce izinleri 777 ile değiştiriyorsunuz, sonra sudo vim ... ile düzenliyorsunuz dosyayı. izinleri niye 777 olarak değiştiridiniz de sonra sudo kullandınız? Madem sudo kullanacaktınız da izinleri neden 777 yaptınız?