DEV Community

Cover image for The one package manager I cannot live without anymore
Marc Seitz
Marc Seitz

Posted on

The one package manager I cannot live without anymore

So tea.xyz is out for just over a month now, and besides the massive growth in GitHub forks and stars, it has personally become my favorite dev tools.

When I talk about tea, some of my fellow developers, appear sceptical because they read web3 and blockchain on their website.
However, tea is a developer tools that for all we care about is a package manager.
Well, it's not just any package manager. It's the successor to Homebrew from the same creator, Max Howell.

I am so annoyed that package managers install software directly into machine's /usr/local directory and mess up my system installs. That's why I need to resort to nvm or rbenv or pyenv just to manage multiple versions of node, ruby and python, respectively.

Enter tea.
tea installs everything to a single "relocatable" folder on your machine. When you run tea it will inject the required software package+version into your environment for only this instance and nothing more.

Demo

Let's say I want to download a YouTube video with youtube-dl.

Install tea with one-liner

sh <(curl https://tea.xyz) # installs to "~/.tea"

# OR, install to different directory
TEA_PREFIX=(~/scratch/tea) sh <(curl https://tea.xyz)
Enter fullscreen mode Exit fullscreen mode

Download YouTube video with youtube-dl

tea -X youtube-dl "https://www.youtube.com/watch?v=sAMrveIC0Hc"

# OR, written more explicitly
tea +youtube-dl.org youtube-dl "https://www.youtube.com/watch?v=sAMrveIC0Hc"
Enter fullscreen mode Exit fullscreen mode

If not otherwise installed, youtube-dl will not be available without the prefacing tea command. This is magical.

What happened?

Well, if you take a look at the directory that tea got installed to. tea pulled in all required packages to run youtube-dl.

$ ls ~/.tea
bytereef.org
charm.sh
gnu.org
invisible-island.net        
libexpat.github.io
openssl.org
python.org
sourceware.org          
sqlite.org
tea.xyz 
tukaani.org     
youtube-dl.org
zlib.net
Enter fullscreen mode Exit fullscreen mode

These package will remain in ~/.tea; however, they will never interfere with any of your system software. They are practically isolated in this directory on your machine. You can either remove individual packages or the folder entirely for a thorough uninstall of tea.

Next steps

There are some other cool features to tea. But the coolest is never having to worry about a package being installed, because it will just install by invoking tea.

Check out the rest of the project on GitHub

Top comments (0)