Introducing GitHub Package Registry
What is GitHub Packages storage for?
can anybody recommend linux package managers for github binaries (e.g. obtainium equivalents)?
Package management in Git for Windows (Git Bash)? - Stack Overflow
Videos
Hey guys,
Could you help me learn about GitHub Packages storage?
What is it used for? It’s not for storing code itself, but rather for releases and other packages, right?
TL;DR - Looking more for personal experiences / recommendations than "find me an app" but if you know of any I missed, those comments are welcome too.
I found a few while looking online but I haven't used any of them. Curious if any of you guys have experiences / input with any of these or other options I may have missed. Or if I should just pick the first one / go by star rating / roll a d8 / give up and move to Arch already / etc. I'm on Fedora and there are quite a few packages that are not in central repos / copr but am perfectly happy with my distro otherwise.
-
https://github.com/marcosnils/bin : 586 stars, MIT license, Go-based, updated 5 days ago. Its FAQ mentions both that it is untested and more importantly that it only considers the latest release but OTOH has very active development.
-
https://github.com/marwanhawari/stew : 126 stars, MIT license, Go-based, updated 10 months ago. Seems pretty good but I saw it might not unpack archives which would be a pretty big limitation for this kind of app; OTOH seems like dev is moderately active and might be open to PRs.
-
https://github.com/aerys/gpm : 214 stars, MIT license, Rust-based, updated 2 days ago. Seems a bit overly complicated (or maybe it's just their documentation vs the very simple and clear documentation of the others?).
-
https://github.com/babarot/afx : 133 stars, MIT license, Go-based, updated 10 months ago. I have not confirmed this but it looks like it requires manually discovering updates and manually incrementing versions in config files - which, if true, completely defeats the purpose for me. But it does claim to handle downloading / installing.
-
https://github.com/agateau/clyde : 24 stars, GPL3 license, Rust-based, last updated today. It apparently relies on a entries being defined in a 2nd repo. I have not confirmed this but from the doc for defining packages it looks like you need to define explicit version numbers, so I suspect this doesn't handle discovery of new versions.
-
https://github.com/innobead/huber : 174 stars, Apache 2 license, Rust-based, last updated 3 months ago.
-
https://github.com/cjrh/lifter : 9 stars, AGPL-3.0 license, Rust-based, updated last month. This seems awesome for the discovery and download parts of the equation and even works with non-github sites but appears to not handle any package-management related stuff (install/list/uninstall)
Some others that I saw but would probably completely skip over for various reasons (written in obscure language, doesn't support Fedora, has no license or license ambiguities, or not maintained - e.g. stuff that'd make it harder to contribute PRs later):
-
https://github.com/wimpysworld/deb-get : 1.2K stars, MIT license, Shell-based, updated 2 weeks ago. It apparently only handles deb files tho so that's a bust for me, but mentioning it in case it'd work for someone else.
-
https://github.com/cbrnrd/gpm : 7 stars, MIT license, Crystal-based, updated 6 years ago (possibly no longer maintained?)
-
https://github.com/izirku/gitrel : 25 stars, mixed MIT / Apache license, Rust-based, no longer maintained. Lack of devel effectively kills it for me personally but from the images it looks decent.
-
https://github.com/warrensbox/hubapp : 26 stars, MIT license, Go-based, updated 2 years ago. Looks pretty good but apparently does not support custom install paths and hasn't seen any development love in a couple years (possibly no longer maintained?)
-
https://github.com/jsnjack/grm : 11 stars, no license specified, Go-based, updated 6 months ago.
-
https://github.com/natrys/ghdl : 8 stars, AGPL-3.0 license, Hy-based, updated 6 days ago. Requires defining a config but looks fairly customizable.
-
https://github.com/hatlesshacker/gitsie : 6 stars, GPL-3.0 license, Javascript-based, last updated 4 years ago (possibly no longer maintained?)
-
https://github.com/gimmepm/gimme : 4 stars, Apache-2.0 license , Go-based, last updated 6 years ago (possibly no longer maintained?)
I know I could just download / install the packages I want manually but I really like how Obtainium (on Android) notifies you of new releases and would like something similar for Linux. For those unfamiliar with Obtainium, it basically lets you add a git repo (github/gitlab/wherever) and checks for/notifies you of new releases, and allows you to install them.
My ideal setup would be something that could allow me to manage versions (e.g. if latest version is broken, I could uninstall it and rollback to previous version without having to deal with manual uninstall/reinstall outside of the package manager) as well as some method of notifying me when new versions come out (preferably via something like notify-send messages or some other desktop-agnostic approach since I use Cinnamon on some machines and Xfce on others). But not really expecting that out-of-the-gate.
Some of the packages I would like to manage with this include: firetools (technically this did have a COPR repo but I prefer github for it), dupeguru, vobsub2srt, vopono, dust, fd, whisper, mycroft, probably some others. If I did switch to Arch, every single one of these appears to be in the AUR. I know I could use distrobox but that seems like overkill for some of these (and for vopono in particular I'm not sure how an app running in a container could work with sandboxing network ns of apps on the host)
If nobody has any personal experiences, I'll probably start with confirming whether clyde will auto-discover new versions or not (I'm a sucker for GPL). Then if that didn't work, I guess I'd look at stew and bin next.
As mentioned in issue 397:
This is intended. We do not ship pacman with Git for Windows.
If you are interested in a fully fledged package manager maintained environment you have to give the Git for Windows SDK a try.
The bash that you see in the latest git for Windows (2.5.3), which is a more recent bash than the old msysgit one, is only there to execute git commands.
It is not a full-fledged linux environment to install any third-party package.
Warning: dhj reports in the comments
Do not link your existing git for windows with the msys2 main system by using a directory junction.
If you uninstall it will decide that linked directory belongs to it and DELETE YOUR ENTIRE HOME DIRECTORY including sub-directories like "Downloads".
Beware dealing with msys2.I don't know if the same is true for the git for windows SDK, but BE CAREFUL trying to get pacman from other systems integrated with git for windows.
Git for Windows (https://gitforwindows.org/ or https://git-scm.com/downloads) has Git Bash but it does not include tree.
tree is available via pacman (Package Manager), but that is only available if you install "Git for Windows SDK" (scroll to the bottom of https://gitforwindows.org/ which provides a link to download installer for it from https://github.com/git-for-windows/build-extra/releases/latest)
The accepted answer was very helpful. They mention that git-for-windows was not meant to include pacman in the default install.
So I installed "Git for Windows SDK", then in its bash prompt (SDK-64) I ran the following to install current tree v1.7.0-1 (as of this posting Aug 30, 2018):
[SDK-64: Bash Terminal for Git for Windows SDK]
pacman -S tree
...
Proceed with installation? [Y/n] Y
On my system, Git for Windows SDK is installed under: C:\git-sdk-64, so from my Git for Windows Bash shell (which did not have tree installed), I copied it over tree.exe to its /usr/bin directory, e.g.
[MINGW64: Bash Terminal for Git for Windows]
cd /usr/bin
cp /c/git-sdk-64/usr/bin/tree.exe .
Now I can run tree v1.7.0 from both Git Bash shells.
To make it even easier for others and maybe myself on a future machine, I looked at where pacman was getting the tree package from by running the following in my Git for Windows SDK Bash terminal:
$ pacman -S --info tree
Repository : msys
Name : tree
Version : 1.7.0-1
Description : A directory listing program displaying a depth indented list of files
Architecture : x86_64
...
The key thing here is that pacman is getting tree from the "msys" repository (FYI: even though it says msys, it really is using msys2), so I looked at /etc/pacman.d/mirrorlist.msys and the first mirror points to http://repo.msys2.org/msys/$arch/
So next time you want a package that is NOT in Git for Windows, you can download them from: http://repo.msys2.org/msys/x86_64/ (for 64-bit) or from http://repo.msys2.org/msys/i686/ (32-bit)
e.g. direct download link for tree v1.7.0-1
- 64-bit: http://repo.msys2.org/msys/x86_64/tree-1.7.0-1-x86_64.pkg.tar.xz
- or https://sourceforge.net/projects/msys2/files/REPOS/MSYS2/x86_64/tree-1.7.0-1-x86_64.pkg.tar.xz
- 32-bit: http://repo.msys2.org/msys/i686/tree-1.7.0-1-i686.pkg.tar.xz
- or https://sourceforge.net/projects/msys2/files/REPOS/MSYS2/i686/tree-1.7.0-1-i686.pkg.tar.xz
FYI: Git SCM's Window's download at https://git-scm.com/download/ pulls the latest from Git for Windows GitHub (https://github.com/git-for-windows/git from the https://github.com/git-for-windows/git/releases/ link)