This package is no more maintained and not fully working.
Helm System Packages is an Emacs-based interface to the package manager of your operating system and remote systems as well.
Emacs’ knowledge is not required: see the stand-alone folder for a version targeted at non-Emacs users. Run the script and everything should be self-explanatory. If not then it’s a bug, please report it.
Start helm-system-packages
to list all available packages (with installed packages as well as dependencies displayed in their own respective face). Fuzzy-search, mark and execute the desired action over any selections of packages:
Helm System Packages provides a uniform interface over the following package managers:
brew
(macOS)dnf
dpkg
(apt & friends)guix
pacman
portage
(emerge & friends)xbps
Some package managers come with their specific actions and even specific Helm sources, e.g. Portage’s USE flags.
There is only one entry point: helm-system-packages
.
Use the persistent action to view the details of the marked packages.
Most actions can be called with a prefix argument to insert the result at point.
If started from a remote TRAMP buffer (e.g. dired, Eshell or just any remote file), helm-system-packages
automatically switches to the packages of the remote system. The remote package manager can be different from the local one.
Helm System Packages only works over lists of packages. It does not feature any maintenance-related operations such as cleaning the cache or synchronizing the database.
system-packages is an Emacs package providing Emacs with universal commands for such operations. It is unrelated to Helm System Packages but both work well together.
Transactions such as installing and removing packages are run via the `sudo` command in Eshell. If you’d like to cache the password for, say, an hour, you can configure Eshell to use its own version of sudo via TRAMP:
(require 'em-tramp) (setq password-cache t) (setq password-cache-expiry 3600)
Most of the package managers GUIs out there do not provide much efficiency over their commandline counterparts.
The commandline workflow is centered around a cumbersome try-repeat loop:
With Helm all those actions get factored into one. Helm sessions can also be resumed.
WARNING: The programming interface is still under development and is prone to change.
Each module is rather straightforward, it only needs to define the following:
helm-system-packages-FOO
function that starts a Helm session.helm-system-packages-FOO-refresh
function to refresh the package list either manually or after transactions.The helm-system-packages.el
file provides some helper functions for Helm actions.
We can add Org subsections for files, dependencies, etc. Those sections should be folded by default.
We probably still need specific “info” actions to insert at point.
Use bindings reflecting helm-list-elisp-packages [#A] Port factorization to dpkg, portage [#A] Port TRAMP support to brew Add option to display multiline candidates for long descriptions. With filtering, the displayed condidates won’t include those above the candidate limitCan we include as many filtered candidates as possible?
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4