diff --git a/README.md b/README.md index 7a3bf4e..8f580e0 100644 --- a/README.md +++ b/README.md @@ -30,200 +30,14 @@ ## How do I use it? You can find an instruction on how to use Czkawka [**here**](instructions/Instruction.md). -## Requirements -If you are using Windows or Mac binaries, there is no specific requirements. -Same with Appimage, Flatpak and Snap on Linux (except having system 18.04+ or similar). - -Although, compiled GUI binaries on Linux or compiling it on your own OS requires you to install these packages: -### Ubuntu/Debian -``` -sudo apt install libgtk-3-dev -``` -### Fedora/CentOS -``` -sudo yum install gtk3-devel glib2-devel -``` -### Void Linux (CLI only) -``` -sudo xbps-install gcc pkg-config alsa-lib-devel -``` - -# Installation -### Precompiled binaries -Ready-to-go executables are available [**here**](https://github.com/qarmin/czkawka/releases/). -If the app does not run when clicking at a launcher, run it through a terminal. -You don't need to have any additional libraries for CLI Czkawka. - -### GUI Requirements - -##### Linux -For Czkawka GUI you are required to have at least `GTK 3.22` and also `Alsa` installed (for finding broken music -files). It should be installed by default on all the most popular distros. - -##### Windows -The `czkawka_gui.exe` which is extracted from the `windows_czkawka_gui.zip` zip file needs to be in the same -file as the rest. If you want to move and open the executable somewhere else, you need to install the `GTK 3` -runtime from [**here**](https://github.com/tschoonj/GTK-for-Windows-Runtime-Environment-Installer/releases). - -##### macOS -Currently you need to manually install `GTK 3` libraries, because they are dynamically loaded from the OS (*we need -help in using static linking*). Installation in the terminal: -```shell -/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -brew install gtk+3 -``` -After that, go to the location where you installed this and add the `executable` permission. -```shell -chmod +x mac_czkawka_gui -``` -Execute in the same folder with: -```shell -./mac_czkawka_gui -``` - -### Appimage -Appimage files are available in release page - [**GitHub releases**](https://github.com/qarmin/czkawka/releases/) -There is a problem with this currently, as it doesn't allow you to open two images/files at once. - -### Cargo -The easiest method to install Czkawka is using the `cargo` command. For compiling it, you need to get all the -requirements from the [compilation section](#Compilation). -``` -cargo install czkawka_gui -cargo install czkawka_cli -``` -You can update the package with the same command. - - -### Snap -``` -sudo snap install czkawka -``` -By default, Snap can only access to the files in your home directory. You have to allow czkawka to access to all the drives: - -``` -sudo snap connect czkawka:removable-media -``` - -The Snap store entry can be found [**here**](https://snapcraft.io/czkawka). - -Fresh builds are available in edge branch, but they may be a little unstable, although that happens very rarely -because I don't push untested code. - -### Flatpak -``` -flatpak install flathub com.github.qarmin.czkawka -``` -Flathub page with Czkawka can be found [**here**](https://flathub.org/apps/details/com.github.qarmin.czkawka) - -# - -**Unofficial packages, which may not always provide the latest version of Czkawka.** - -### PPA - Debian/Ubuntu (unofficial) -``` -sudo add-apt-repository ppa:xtradeb/apps -sudo apt-get update -sudo apt-get install czkawka -``` - -### AUR - Arch Linux Package (unofficial) -Czkawka is also available in Arch Linux's AUR from which it can be easily installed. -``` -yay -Syu czkawka-git -``` -or -``` -yay -Syu czkawka-gui-bin -yay -Syu czkawka-cli-bin -``` - -Package info's - https://aur.archlinux.org/packages/?O=0&SeB=nd&K=czkawka&outdated=&SB=n&SO=a&PP=50&do_Search=Go - -### Docker image (unofficial) -Czkawka docker image is available [**here**](https://github.com/jlesage/docker-czkawka) - -### Development versions -Artifacts from each commit can be downloaded [**here**](https://github.com/qarmin/czkawka/actions) - - -# Compilation - -The compilation section is generally not recommended, because you have multiple better sources -of this app than compiling it yourself. - -## Requirements -Program | Min | What for ----------|------|------------------------------------------------------------ -Rust | 1.48 | Czkawka aims to support only the latest stable Rust version -GTK | 3.22 | Only for the `GTK` backend - -If you only want the terminal version without a GUI, just skip all lines about `gtk`. - -#### Debian / Ubuntu -```shell -sudo apt install -y curl # Needed by Rust update tool -curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Download the latest stable Rust -sudo apt install -y libgtk-3-dev libasound2-dev -``` - -#### Fedora / CentOS / Rocky Linux -```shell -curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Download the latest stable Rust -sudo yum install gtk3-devel glib2-devel alsa-lib-devel -``` - -#### macOS -You need to install Homebrew and GTK Libraries -```shell -/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -brew install rust gtk+3 -``` - -### Windows - -*Will be available in the future* - - - -## Compilation from source - -- Download the source -``` -git clone https://github.com/qarmin/czkawka.git -cd czkawka -``` -- Compile and run GTK GUI -``` -cargo run --bin czkawka_gui -``` - -For Linux-to-Windows cross-building instruction look at the CI. -![GUI](https://user-images.githubusercontent.com/41945903/103371136-fb9cae80-4ace-11eb-8d72-7b4c8ac44260.png) -- Compile and run CLI (this will print help with a lot of examples) -``` -cargo run --bin czkawka_cli -``` -![CLI](https://user-images.githubusercontent.com/41945903/93716816-0bbcfd80-fb72-11ea-8d31-4c87cc2abe6d.png) - -### Additional features -For now, finding broken audio files is temporary disabled by default, because it crash when not found audio libraries on computer. -I'm waiting for ability to disable audio playback feature, so after that I will be able to re-enable by default this feature (https://github.com/RustAudio/rodio/issues/349) - -To enable checking for broken audio files, just add at the end ` --all-features` -``` -cargo run --all-features --bin czkawka_cli -- broken -d /home/rafal/ -f "results.txt" -``` - - +## Installation +Installation instruction with download links you can find [**here**](instructions/Installation.md). +## Compilation +If you want try to develop Czkawka or just use the latest available feature, you may want to look at the [**compilation instruction**](instructions/Compilation.md). ## Benchmarks - Since Czkawka is written in Rust and it aims to be a faster alternative to FSlint (which is written in Python), we need to compare the speed of these tools. diff --git a/instructions/Compilation.md b/instructions/Compilation.md new file mode 100644 index 0000000..2a9c2bb --- /dev/null +++ b/instructions/Compilation.md @@ -0,0 +1,69 @@ +# Compilation Czkawka from sources + +## Requirements +Program | Min | What for +---------|------|------------------------------------------------------------ +Rust | 1.51 | Czkawka for now, aims to support only the latest stable Rust version +GTK | 3.22 | Only for the `GTK` backend + +If you only want the terminal version without a GUI, just skip all packages with `gtk`. + +#### Debian / Ubuntu +```shell +sudo apt install -y curl # Needed by Rust update tool +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Download the latest stable Rust +sudo apt install -y libgtk-3-dev libasound2-dev # Latest is optional +``` + +#### Fedora / CentOS / Rocky Linux +```shell +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Download the latest stable Rust +sudo yum install gtk3-devel glib2-devel alsa-lib-devel # Latest is optional +``` + +#### macOS +You need to install Rust Homebrew and GTK Libraries +```shell +/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" +brew install rustup +rustup-init +brew install rust gtk+3 +``` + +### Windows + +*Will be available in the future* + +For Linux-to-Windows cross-building instruction look at the CI. + + + +## Compilation + +- Download the source +``` +git clone https://github.com/qarmin/czkawka.git +cd czkawka +``` +- Compile and run GTK GUI +``` +cargo run --release --bin czkawka_gui +``` + +- Compile and run CLI (by default this will print help with examples) +``` +cargo run --release --bin czkawka_cli +``` + + +## Additional features +For now, finding broken audio files is temporary disabled by default, because it crash when not found audio libraries on computer. +I'm waiting for ability to disable audio playback feature, so after that I will be able to re-enable by default this feature (https://github.com/RustAudio/rodio/issues/349) + +To enable checking for broken audio files, just add ` --all-features` +``` +cargo run --all-features --bin czkawka_cli -- broken -d /home/rafal/ -f "results.txt" +``` \ No newline at end of file diff --git a/instructions/Installation.md b/instructions/Installation.md new file mode 100644 index 0000000..90745f4 --- /dev/null +++ b/instructions/Installation.md @@ -0,0 +1,113 @@ +# Installation +## Requirements +Same with Appimage, Flatpak and Snap on Linux (except having system 18.04+ or similar). + +### Linux +If you use Snap, Flatpak or Appimage, you may skip this section. + +For Czkawka GUI you are required to have at least `GTK 3.22` and also `Alsa` installed (for finding broken music files). +It should be installed by default on all the most popular distros. +#### Ubuntu/Debian +``` +sudo apt install libgtk-3-dev +``` +#### Fedora/CentOS +``` +sudo yum install gtk3-devel glib2-devel +``` +#### Void Linux (CLI only) +``` +sudo xbps-install gcc pkg-config alsa-lib-devel +``` + +### macOS +Currently, you need to manually install `GTK 3` libraries, because they are dynamically loaded from the OS (*we need +help in using static linking*). Installation in the terminal: +```shell +/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" +brew install gtk+3 +``` +After that, go to the location where you downloaded Czkawka and add the `executable` permission to this file. +```shell +chmod +x mac_czkawka_gui +``` +At the end execute it: +```shell +./mac_czkawka_gui +``` + +### Windows +By default, all needed libraries are bundled with app inside `windows_czkawka_gui.zip`, but if you compile app or just move `czkawka_gui.exe`, then you need to install the `GTK 3` +runtime from [**here**](https://github.com/tschoonj/GTK-for-Windows-Runtime-Environment-Installer/releases). + +## Installation +### Precompiled binaries +Ready-to-go executables for Linux, Windows and macOS are available [**here**](https://github.com/qarmin/czkawka/releases/). +If the app does not run when clicking at a launcher, run it through a terminal. +You don't need to have any additional libraries for CLI Czkawka. + +### Nightly Builds +Artifacts from each commit can be downloaded [**here**](https://github.com/qarmin/czkawka/actions) + +### Appimage +Appimage files are available in release page - [**GitHub releases**](https://github.com/qarmin/czkawka/releases/) +This version is bundled with own theme. +There is also a small problem with not being able to open 2 images at once. + +### Cargo +The easiest method to install Czkawka is using the `cargo` command. For compiling it, you need to get all the +requirements from the [compilation section](Compilation.md). +``` +cargo install czkawka_gui +cargo install czkawka_cli +``` +You can update the package with the same command. + +### Snap +``` +sudo snap install czkawka +``` +By default, Snap can only access to the files in your home directory. You have to allow czkawka to access to all the drives: + +``` +sudo snap connect czkawka:removable-media +``` + +The Snap store entry can be found [**here**](https://snapcraft.io/czkawka). + +Fresh builds are available in edge branch, but they may be a little unstable, although that happens very rarely +because I don't push untested code. + +### Flatpak +``` +flatpak install flathub com.github.qarmin.czkawka +``` +Flathub page with Czkawka can be found [**here**](https://flathub.org/apps/details/com.github.qarmin.czkawka) + +# +# + +**Unofficial packages, which may not always provide the latest version of Czkawka.** + +### PPA - Debian/Ubuntu (unofficial) +``` +sudo add-apt-repository ppa:xtradeb/apps +sudo apt-get update +sudo apt-get install czkawka +``` + +### AUR - Arch Linux Package (unofficial) +Czkawka is also available in Arch Linux's AUR from which it can be easily installed. +``` +yay -Syu czkawka-git +``` +or +``` +yay -Syu czkawka-gui-bin +yay -Syu czkawka-cli-bin +``` + +Package info's - https://aur.archlinux.org/packages/?O=0&SeB=nd&K=czkawka&outdated=&SB=n&SO=a&PP=50&do_Search=Go + +### Docker image (unofficial) +Czkawka docker image is available [**here**](https://github.com/jlesage/docker-czkawka) \ No newline at end of file