summaryrefslogtreecommitdiff
path: root/website/posts/emacs-as-a-general-purpose-package-manager.sxml
blob: fdbdbd171f18b74de85e52a75f21f001ffc7c915 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
(begin
  (use-modules (srfi srfi-19))
  `((title .
           "Emacs as a general-purpose package manager")
    (author . "Ludovic Courtès")
    (date unquote (make-date 0 0 0 0 4 9 2014 7200))
    (content
      div
      (p (a (@ (href "http://www.gnu.org/software/guix"))
            "GNU Guix")
         ", the package manager written for the GNU system, now has a neat Emacs user interface!  It offers a visual, user-friendly alternative to the guix package "
         (a (@ (href "http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-package.html"))
            "command-line interface")
         "."
         (br))
      (p "For those familiar with "
         (a (@ (href "http://www.gnu.org/software/emacs/manual/html_node/emacs/Packages.html"))
            "package.el")
         ", the main user interface is quite similar: commands like guix-newest-available-packages, guix-search-by-regexp, and guix-installed-packages present a browsable list of packages.  Individual packages can be selected, which displays additional details and presents a button to install or delete them.  It is also possible to mark a set of packages for installation, upgrade, or deletion, and execute the set of operations in a single transaction."
         (br))
      (p "The interface has been developed by Alex Kost and was merged in Guix a day ago.  It uses "
         (a (@ (href "http://nongnu.org/geiser/"))
            "Geiser")
         ", the beloved Guile/Emacs interface and development environment, to communicate with the underlying Guile process.  That Guile process, in turn, simply uses Guix and "
         (a (@ (href "http://www.gnu.org/software/guix/manual/html_node/Package-Modules.html"))
            "the whole distribution")
         " as libraries—the goodness of embedding the "
         (a (@ (href "http://www.gnu.org/software/guix/manual/html_node/Defining-Packages.html"))
            "packaging DSL")
         " in a general-purpose language."
         (br))
      (p "Try it out and "
         (a (@ (href "http://www.gnu.org/software/guix/#contact"))
            "let us know")
         " what you think!"
         (br)))))