Çözüm Linux'ta Uygulama Kurulu Olmasına Rağmen "bash: Komut yok" Hatası

Bu konu bir çözümü açıklamaktadır. Herhangi bir çözüm açıklanmadığını düşünüyorsanız konuyu rapor edebilirsiniz.

Cruslan

Üstün
Katılım
22 Aralık 2023
Mesajlar
3.944
Makaleler
4
Çözümler
85
Beğeniler
6.255
Herkese merhaba. Uçbirim'de bir komutu yürütmeye çalıştığınızda bash: <program_adi>: komut yok" hatası almış olabilirsiniz. Uçbirim'i açtığınızda klavyeden gireceğiniz komutları anlamlandıran Bash gibi kabuk dediğimiz programlar, programları bulabilmek için belli dizinlere bakar. Programların olduğu dizinler de PATH isimli çevresel değişkenle belirlenir. Bazı dağıtımlar PATH değişkeniyle olası bütün programların konumlarını gösterse de bazıları tam olarak göstermeyebiliyor. Veya elle derlediğiniz uygulamalar, uygulamanın yapımcısı tarafından belirlenen derleme seçeneklerinde dosyaları dağıtımınızın hazırladığı PATH değişkeninin dışındaki bir yere yüklenmiş olabilir. Bu durumlarda en iyi seçenek olası bütün konumları elle göstermektir. Çözümü ise şu şekildedir;

Uçbirim'i açıp şu kodu yapıştırın;

Kod:
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

export komutuyla PATH değişkenine programların olabileceği olası dizinleri atıyoruz, kabuk bu atadığımız dizinlere bakarak programı arıyor ve programın çalıştırılabilir dosyasını buluyor. Sorunumuz bu şekilde çözülüyor.

Uçbirim'i kapatana kadar bu kod geçerli olacaktır, kalıcı hale getirmek için /etc/environment dosyasının en alt kısmına aynı kodu yapıştırıp kaydedin, yeniden başlatınca geçerli olacaktır. Bu benim Debian'da yaşadığım bir sorundu ancak eksik ayarlanmış her dağıtımda yaşanabilir.

Bu çözüm sadece derlenmiş ve belirli dizinlere yerleştirilmiş uygulamalarda çalışacaktır. Flatpak uygulamaları, AppImage uygulamaları, Python ve Java gibi kendi sanal makinesine ihtiyaç duyan dillerin dosyalarında ya uygulamanın dizinine gidip uzun uzun program adını yazmanız veya başka bir program çağırmanız gerekebilir. Kabukların izin verdiği alias sistemiyle bu komutlar için kısa komutlar atanabilir.
 
.bashr, .zsh falan bir sürü kullanıcı klasöründe bulunan ayar dosyalarında yapılması biraz karışık oluyor ama kesin çözüm /etc/enviroment'a atmak. En kolay.

Mesela JDK için.

/home/env/jdk/bin'de çalıştırılabilri programlar var.

sudo nano /etc/enviroment yazıp;

"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:[B]/home/env/jdk/bin[/B]:"

şeklinde, dosyayıa ekleme yapıyoruz.
 
@4142, mesela Python'un .py uzantılı dosyaları açmak için python3 <program_adi>.py yazmak gerekiyor, Java'da .jar uzantılı dosyalar için java -jar <program_adi>.jar yazmak gerekiyor. Veya uygulama üreticisinin bunun için script yazıp paket yöneticisinin de bunu kurması gerekiyor.

Flatpak uygulamaları zaten izole olduğu için flatpak çağırılmadan çalıştıramıyorsunuz, gerekli scripti çoğu zaman flatpak sağlıyor ama uçbirimden çalıştırmak için gerekiyor flatpak'ın kendisi.

AppImage dosyaları da kendi indirdiğimiz dosyalar olduğu için yukarıdaki dizinlere eklemek ve bakımını yapmak zor olabilir. Bunlar için eski yöntemleri kullanmak veya aliaslar oluşturmak daha yararlı olabilir.
 
@4142, mesela Python'un .py uzantılı dosyaları açmak için python3 <program_adi>.py yazmak gerekiyor, Java'da .jar uzantılı dosyalar için java -jar <program_adi>.jar yazmak gerekiyor. Veya uygulama üreticisinin bunun için script yazıp paket yöneticisinin de bunu kurması gerekiyor.

Flatpak uygulamaları zaten izole olduğu için flatpak çağırılmadan çalıştıramıyorsunuz, gerekli scripti çoğu zaman flatpak sağlıyor ama uçbirimden çalıştırmak için gerekiyor flatpak'ın kendisi.

AppImage dosyaları da kendi indirdiğimiz dosyalar olduğu için yukarıdaki dizinlere eklemek ve bakımını yapmak zor olabilir. Bunlar için eski yöntemleri kullanmak veya aliaslar oluşturmak daha yararlı olabilir.
Oha, /etc/enviroment eski bir yöntem mi?
 
@4142, Her dağıtım, her programı aynı dizine çıkarmıyor. Farklı sebeplerle which komutuyla çok kez çalıştırılabilir dosyanın yerini aramışımdır.
 

Yeni konular

Geri
Yukarı Alt