Impossibile installare i pacchetti nell'immagine Ubuntu della finestra mobile


289

Ho installato l'immagine Ubuntu 14.04 sulla finestra mobile. Dopodiché, quando provo a installare pacchetti all'interno dell'immagine ubuntu, non riesco a individuare l'errore del pacchetto:

apt-get install curl

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package curl

Come riparare questo errore?

Risposte:


621

È perché non c'è cache del pacchetto nell'immagine, è necessario eseguire:

apt-get update

prima di installare i pacchetti e se il tuo comando si trova in un file Docker, dovrai quindi:

apt-get -y install curl

Per sopprimere l'output standard da un comando, utilizzare -qq. Per esempio

apt-get -qq -y install curl

1
questo funziona per me, dovrei eseguire -qq per tutte le volte
Developer

6
-qq sopprime l'output che di solito non è necessario in Dockerfile. Un altro bel trucco: dire a debconf che funziona in un ambiente non interattivo: echo 'debconf debconf / frontend select Noninteractive' | debconf-set-selections
ISanych

7
Per qualche motivo questo non funziona per me, sempre lo stesso messaggio "E: Impossibile trovare il pacchetto .."
martedì

"apt-get-update" e "apt-get install curl" hanno funzionato bene!
Sindhu,

Ho scoperto che questo errore si verifica anche nella finestra mobile quando si esaurisce lo spazio. Corsi docker image prunea liberare spazio e questo lo risolse per me.
Jonathan Rys,

123

Dai documenti di maggio2017 2018 2019 2020

Combina sempre RUN apt-get updatecon apt-get installnella stessa RUNistruzione, ad esempio

RUN apt-get update && apt-get install -y package-bar

(...)

L'uso da apt-get updatesolo in RUNun'istruzione causa problemi di memorizzazione nella cache e le apt-get installistruzioni successive non riescono.

(...)

L'uso di RUN apt-get update && apt-get install -yassicura che Dockerfile installa le ultime versioni del pacchetto senza ulteriore codifica o intervento manuale. Questa tecnica è nota come "busting della cache".



4

Assicurati di non avere errori di sintassi nel tuo Dockerfile in quanto ciò può causare anche questo errore. Un esempio corretto è:

RUN apt-get update \
    && apt-get -y install curl \
    another-package

Era una combinazione di correzione di un errore di sintassi e aggiunta apt-get updateche risolveva il problema per me.


1

Ho scoperto che il montaggio di un volume locale su / tmp può causare problemi di autorizzazione quando viene eseguito "apt-get update", che impedisce il popolamento della cache del pacchetto. Spero che questo non sia qualcosa che la maggior parte della gente fa, ma è qualcos'altro da cercare se vedi questo problema.


-3

Devi aggiornare l'elenco dei pacchetti nel tuo Ubuntu:

$ sudo apt-get update
$ sudo apt-get install <package_name>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.