Skip to content

EatInstall/Eat

Repository files navigation

eat

Status GitHub download License Code style: black

Eat is the package manager for Linux. It:

  • Does not even require sudo!
  • Adds the programs to your PATH
  • Does total web scraping to download files
  • Makes sharing Linux programs easier

Here's how I would use Eat: eatinst pwsh

While Eat is specific to Debian and Ubuntu, Eat can be installed and ran on almost any Linux distribution. Eat provides rootless install, so you don't have to use the root user when you need to install software. And if you use sudo, you can globally install programs to /usr/bin with the long complex command sudo python3 /home/$(whoami)/eat-install.py --system <program> (pretty advanced).

Install

Simple:

bash -c "$(curl -fsSL https://raw.githubusercontent.com/EatInstall/EatInstaller/HEAD/eatinstaller.sh)"

Usally, eat only works in BASH shells. If you would like to edit your shell's own init script, run:

nano .<shell>rc

If you are a developer and want to install Eat (through the dev branch) in your GitHub Actions CI, add this as the first step:

- name: Install Eat
  uses: EatInstall/[email protected]

⚙️ Eat as a Service (EaaS) [more info]

Running Eat on a container is simple:

docker pull ghcr.io/eatinstall/eat:dev

Note: This method installls from the dev branch. It is highly recommended to do a proper install instead.

Legacy installer

The legacy installer can still be run on Debian, if you cannot run the new GUI version:

bash -c "$(curl -fsSL https://raw.githubusercontent.com/EatInstall/Eat/HEAD/inst-script.sh)"

This script only works on Debian and it's derivatives. If you do not use any of the derivatives or Debian itself, you must use EatInstaller.

Upgrading

If your installation is out of date (which Eat normally tells you) or you have out-of-date sources, you should upgrade both of them.

To upgrade Eat and the source manifests, the fastest way is to run bash ~/Eat-PKG-Manager/update.sh. Using git pull also works, but your sources will need to be upgraded manually.

New manifests

A manifest goes into the network, and not in this repo. To add more manifests to eat, please contribute there.

The specification of an Eat package is:

uri: # URI for package archive (.zip or .tar.gz). Eat will not install packages without this.
depends:
   - # Array of dependencies. Eat will fail installation if one of these are not installed. Empty by default
should_install:
   - # Array of suggested packages (e.g. "soft dependencies"). Empty by default
sudo_necessary: # Whether the app touches the system or not. "true" or "false" accepted only. Default is "false"

Yes, it's a YAML manifest. A manifest must be named <manifest name>.yaml, not something like <manifest name>.json or <manifest name>.yml.

Store

If you do not use a command-line for installing programs (other than eat itself), we offer Eat Store for installing apps.

Authors

Eat was originally written by Tyler887, but a mass migration to this organisation was preformed.

License

Eat is licensed under the GNU General Public License. You can read the full text by viewing the LICENSE file.

This means we reserve the right to relicense Eat under another license, e.g. an EULA. But it's fine to port Eat to proprietary OSes, but the conditions of the GPL still apply.