gokayburuc.dev

Termux Üzerinde Rust Geliştirme ve `cargo run` Sorunu

rust-logo

Rust dilinde Android cihaz üzerinde Termux kullanarak proje geliştirmeye başladıysanız ve cargo run komutu sırasında izin hatası (permission error) aldıysanız, yalnız değilsiniz. Bu yazıda, sorunun nedenini ve pratik bir çözüm yolunu detaylı şekilde açıklıyorum.


🚫 Sorun: cargo run Komutu Çalışmıyor

Hata Özeti:

error: failed to run `rustc` to learn about target-specific information
Caused by: Permission denied (os error 13)

Bu hata genellikle şu durumlarda ortaya çıkar:

Teknik Arka Plan

Rust’ın derleme sistemi, incremental compilation (artımlı derleme) yöntemini kullanır. Bu, daha hızlı derleme süresi sağlamak için proje derleme geçmişini target/ klasörüne önbellek olarak yazar.

Ancak, Android'in dosya izin politikaları nedeniyle bu işlemler engellenir. Özellikle root erişimi olmayan cihazlarda cargo bu geçici dosyaları yazamaz ve derleme başarısız olur.


✅ Çözüm: Incremental Compilation Özelliğini Kapatın

Bu özelliği devre dışı bırakarak, cargo önbellek oluşturmadan doğrudan derleme yapar. Bu da Android üzerinde dosya erişim problemi yaşanmadan çalışmasını sağlar.

Adımlar:

  1. Proje dizininde .cargo/config.toml dosyasını oluşturun (veya mevcutsa düzenleyin).
[build]
incremental = false
  1. Ardından terminalden aşağıdaki komutları çalıştırın:
cargo clean
cargo check
  1. Artık cargo run komutunu tekrar deneyin:
cargo run

Her şey doğru şekilde ayarlandıysa bu sefer hata almadan projeniz başarıyla çalışacaktır.


🎯 Ek Tavsiyeler

#rust #termux