# Installing Binaries with `cargo install`
This is a commnad that allows you to install and use binary crates locally.

This is not a replacement for system packages.

It should be instead intended to be a convenient way for Rust devs to install tools that others have shared on [crates.io](https://crates.io)

Note that you can only install packages that have binary targets

A *binary target* is the runnable program that is created if the crate has a *src/main.rs* file or anthoer file specified as a binary.

This is unlike a binary target that isnt unnable on its own but is suitable for including within other programs.

Usucally crates have information in the *README* file about whether a crate is a library, has a binary target, or both.

All binaries installed with `cargo install` are saved in the installation root's *bin* folder.

If you installed Rust using *rustup.rs* and dont have any custom configs.

This file would be *$HOME/.cargo/bin*.

To be able to run programs you installed with `cargo install`, you must ensure that this directory is in your `$PATH`

For example to install `ripgrep` (Rust's implementation of the `grep` tool) which searches files.

To install this run the following
```
$ cargo install ripgrep
    Updating crates.io index
  Downloaded ripgrep v13.0.0
  Downloaded 1 crate (243.3 KB) in 0.88s
  Installing ripgrep v13.0.0
--snip--
   Compiling ripgrep v13.0.0
    Finished `release` profile [optimized + debuginfo] target(s) in 10.64s
  Installing ~/.cargo/bin/rg
   Installed package `ripgrep v13.0.0` (executable `rg`)
```
The second last line of shows the location and the name of the installed binary.

In the case of `ripgrep` is `rg`.

As long as the install directory is in the `$PATH`, you can then run `rg --help`.

Then you can start using a faster, rustier tool for searching files!