Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

cargo install ile İkili Dosyaları Kurma

cargo install komutu, ikili crate’leri yerel olarak kurup kullanmanıza olanak tanır. Bu komut sistem paketlerinin yerini almak için değil; Rust geliştiricilerinin, başkaları tarafından crates.io üzerinde paylaşılan araçları pratik bir şekilde kurabilmesi için tasarlanmıştır. Yalnızca ikili hedefi olan paketleri kurabileceğinizi unutmayın. İkili hedef (binary target), crate içinde bir src/main.rs dosyası ya da ikili dosya olarak belirtilmiş başka bir dosya bulunduğunda oluşturulan çalıştırılabilir programdır; buna karşılık kütüphane hedefi tek başına çalıştırılamaz, ancak başka programlara dahil edilmeye uygundur. Crate’lerin README dosyalarında genellikle ilgili crate’in bir kütüphane mi olduğu, bir ikili hedefe mi sahip olduğu yoksa her ikisini birden mi sunduğu bilgisi yer alır.

cargo install ile kurulan tüm ikili dosyalar, kurulum kök dizininin bin klasöründe saklanır. Rust’ı rustup.rs kullanarak kurduysanız ve özel bir yapılandırma yapmadıysanız bu dizin $HOME/.cargo/bin olacaktır. cargo install ile kurduğunuz programları çalıştırabilmek için bu dizinin $PATH çevre değişkeninizde yer aldığından emin olun.

Örneğin Bölüm 12’de, dosyalarda arama yapmak için kullanılan grep aracının Rust ile yazılmış ripgrep adlı bir uygulaması olduğundan söz etmiştik. ripgrep’i kurmak için şu komutu çalıştırabiliriz:

$ cargo install ripgrep
    Updating crates.io index
  Downloaded ripgrep v14.1.1
  Downloaded 1 crate (213.6 KB) in 0.40s
  Installing ripgrep v14.1.1
--snip--
   Compiling grep v0.3.2
    Finished `release` profile [optimized + debuginfo] target(s) in 6.73s
  Installing ~/.cargo/bin/rg
   Installed package `ripgrep v14.1.1` (executable `rg`)

Çıktının sondan bir önceki satırı, kurulan ikili dosyanın konumunu ve adını gösterir; ripgrep örneğinde bu ad rg’dir. Daha önce de belirttiğimiz gibi, kurulum dizini $PATH içinde yer aldığı sürece rg --help komutunu çalıştırabilir ve dosyalarda arama yapmak için daha hızlı, daha “Rust usulü” bir araç kullanmaya başlayabilirsiniz!

Not: Günlük geliştirme sürecinde cargo install ile kurduğunuz araçları yönetirken ve kendi projelerinizi yerel sisteminize kurarken şu pratik komutlar ve bayraklar işinizi önemli ölçüde kolaylaştırır:

  • cargo install --list: Sisteminize cargo install ile kurulmuş tüm paketleri, sürüm numaralarını ve her paketin sağladığı çalıştırılabilir ikili dosya adlarını (örneğin ripgrep paketi altında rg) listeler.
  • cargo uninstall <paket>: Belirtilen pakete ait ikili dosyaları kurulum dizininden kaldırır. Kaldırma işleminde çalıştırılabilir dosya adı (rg) yerine paket adını (cargo uninstall ripgrep) kullandığınıza dikkat edin.
  • cargo install --path .: Kendi geliştirdiğiniz yerel bir ikili projeyi (örneğin Bölüm 12’de geliştirdiğimiz minigrep aracını) crates.io üzerinde yayınlamaya gerek kalmadan release profiliyle derleyip ~/.cargo/bin dizinine kurar; böylece aracınızı terminalin her yerinden doğrudan çalıştırabilirsiniz.
  • cargo install --locked <paket>: Cargo varsayılan olarak paketin içinde gelen Cargo.lock dosyasını yok sayar ve bağımlılıkların kurulum anındaki en güncel uyumlu sürümlerini yeniden çözümler. --locked bayrağı ise Cargo’yu, paket yayınlandığında yazarın test edip paketlediği Cargo.lock dosyasındaki bağımlılık sürümlerini birebir kullanmaya zorlar. Böylece hem tekrarlanabilir bir kurulum elde edersiniz hem de alt bağımlılıklarda sonradan yayınlanmış hatalı veya uyumsuz bir güncellemenin derlemeyi bozmasını önlersiniz.