all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Let `package-install-selected-packages' install packages without asking for confirmation.
@ 2021-07-16 14:01 Hongyi Zhao
  2021-07-16 14:22 ` Arthur Miller
  0 siblings, 1 reply; 4+ messages in thread
From: Hongyi Zhao @ 2021-07-16 14:01 UTC (permalink / raw)
  To: help-gnu-emacs

I use the following init file:

```
;https://emacs.stackexchange.com/questions/34180/how-can-i-script-emacs-to-install-packages-from-list
;https://stackoverflow.com/questions/10092322/how-to-automatically-install-emacs-packages-by-specifying-a-list-of-package-name
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
(package-initialize)

(setq package-selected-packages
      '(company
        async))
(package-install-selected-packages)


(unless package-archive-contents
  (package-refresh-contents))
(package-install-selected-packages t)
```

But when I start Emacs, it still asks me to confirm the installation
of the packages. See the following info shown in minibuffer:

Packages to install: 2 (company async), proceed? (y or n)

As you can see, I've set the `(package-install-selected-packages t)'
option. So, how to let `package-install-selected-packages' install
packages without asking for confirmation.

Regards
-- 
Assoc. Prof. Hongyi Zhao <hongyi.zhao@gmail.com>
Theory and Simulation of Materials
Hebei Vocational University of Technology and Engineering
No. 473, Quannan West Street, Xindu District, Xingtai, Hebei province



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Let `package-install-selected-packages' install packages without asking for confirmation.
  2021-07-16 14:01 Let `package-install-selected-packages' install packages without asking for confirmation Hongyi Zhao
@ 2021-07-16 14:22 ` Arthur Miller
  2021-07-16 14:41   ` Hongyi Zhao
  2021-07-26  0:08   ` Rudolf Adamkovič
  0 siblings, 2 replies; 4+ messages in thread
From: Arthur Miller @ 2021-07-16 14:22 UTC (permalink / raw)
  To: Hongyi Zhao; +Cc: help-gnu-emacs

Hongyi Zhao <hongyi.zhao@gmail.com> writes:

> I use the following init file:
>
> ```
> ;https://emacs.stackexchange.com/questions/34180/how-can-i-script-emacs-to-install-packages-from-list
> ;https://stackoverflow.com/questions/10092322/how-to-automatically-install-emacs-packages-by-specifying-a-list-of-package-name
> (require 'package)
> (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
> (package-initialize)
>
> (setq package-selected-packages
>       '(company
>         async))
> (package-install-selected-packages)
>
>
> (unless package-archive-contents
>   (package-refresh-contents))
> (package-install-selected-packages t)
> ```
>
> But when I start Emacs, it still asks me to confirm the installation
> of the packages. See the following info shown in minibuffer:
>
> Packages to install: 2 (company async), proceed? (y or n)
>
> As you can see, I've set the `(package-install-selected-packages t)'
> option.

As I see, docs says that variable holds already installed packages, not
the packages you would like to install:

Documentation
Store here packages installed explicitly by user.

I am not sure either how is it ment to be used on another machine, with
noconfirm flag, anyway, you just use dolist and install your packages in
a loop:

(dolist (p '(company async))
  (unless (package-installed-p p)
    (package-install p)))

If you really have to save packages in a named list:

(setq packages-to-install '(company asynb))

(dolist (p packages-to-install)
  (unless (package-installed-p p)
    (package-install p)))

Hope it works for you.



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Let `package-install-selected-packages' install packages without asking for confirmation.
  2021-07-16 14:22 ` Arthur Miller
@ 2021-07-16 14:41   ` Hongyi Zhao
  2021-07-26  0:08   ` Rudolf Adamkovič
  1 sibling, 0 replies; 4+ messages in thread
From: Hongyi Zhao @ 2021-07-16 14:41 UTC (permalink / raw)
  To: Arthur Miller; +Cc: help-gnu-emacs

On Fri, Jul 16, 2021 at 10:22 PM Arthur Miller <arthur.miller@live.com> wrote:
>
> Hongyi Zhao <hongyi.zhao@gmail.com> writes:
>
> > I use the following init file:
> >
> > ```
> > ;https://emacs.stackexchange.com/questions/34180/how-can-i-script-emacs-to-install-packages-from-list
> > ;https://stackoverflow.com/questions/10092322/how-to-automatically-install-emacs-packages-by-specifying-a-list-of-package-name
> > (require 'package)
> > (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
> > (package-initialize)
> >
> > (setq package-selected-packages
> >       '(company
> >         async))
> > (package-install-selected-packages)

The above line is redundant. If I delete it, all will work just as I want.

> >
> >
> > (unless package-archive-contents
> >   (package-refresh-contents))
> > (package-install-selected-packages t)
> > ```
> >
> > But when I start Emacs, it still asks me to confirm the installation
> > of the packages. See the following info shown in minibuffer:
> >
> > Packages to install: 2 (company async), proceed? (y or n)
> >
> > As you can see, I've set the `(package-install-selected-packages t)'
> > option.
>
> As I see, docs says that variable holds already installed packages, not
> the packages you would like to install:
>
> Documentation
> Store here packages installed explicitly by user.
>
> I am not sure either how is it ment to be used on another machine, with
> noconfirm flag, anyway, you just use dolist and install your packages in
> a loop:
>
> (dolist (p '(company async))
>   (unless (package-installed-p p)
>     (package-install p)))
>
> If you really have to save packages in a named list:
>
> (setq packages-to-install '(company asynb))
>
> (dolist (p packages-to-install)
>   (unless (package-installed-p p)
>     (package-install p)))
>
> Hope it works for you.

Thank you very much for your suggestions. But as I've told, the method
posted here really works perfectly after my later revision, as
mentioned above.

Regards
-- 
Assoc. Prof. Hongyi Zhao <hongyi.zhao@gmail.com>
Theory and Simulation of Materials
Hebei Vocational University of Technology and Engineering
No. 473, Quannan West Street, Xindu District, Xingtai, Hebei province



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Let `package-install-selected-packages' install packages without asking for confirmation.
  2021-07-16 14:22 ` Arthur Miller
  2021-07-16 14:41   ` Hongyi Zhao
@ 2021-07-26  0:08   ` Rudolf Adamkovič
  1 sibling, 0 replies; 4+ messages in thread
From: Rudolf Adamkovič @ 2021-07-26  0:08 UTC (permalink / raw)
  To: Arthur Miller, Hongyi Zhao; +Cc: help-gnu-emacs

On a related note, I use “(package-install 'X)” in my Emacs 
configuration files which spits out “‘X’ is already installed” for 
every package on launch. It is no big deal, but it would be great 
if Emacs included “package-install-if-needed” or perhaps some 
argument on “package-install” to stay quiet if no work is 
necessary. Clearly, “(unless (package-installed-p X) 
(package-install X))” is a common pattern.

R+

Arthur Miller <arthur.miller@live.com> writes:

> [snip]
>
> (dolist (p packages-to-install) 
>   (unless (package-installed-p p) 
>     (package-install p))) 

-- 
"Contrariwise," continued Tweedledee, "if it was so, it might be; 
and if it were so, it would be; but as it isn't, it ain't. That's 
logic." -- Lewis Carroll, Through the Looking Glass  Rudolf 
Adamkovič <salutis@me.com> Studenohorská 25 84103 Bratislava 
Slovakia  [he/him]



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-07-26  0:08 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-07-16 14:01 Let `package-install-selected-packages' install packages without asking for confirmation Hongyi Zhao
2021-07-16 14:22 ` Arthur Miller
2021-07-16 14:41   ` Hongyi Zhao
2021-07-26  0:08   ` Rudolf Adamkovič

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.