Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "andreas-xavier/Prova2"
Differenze tra le versioni 58 e 64 (in 6 versioni)
Versione 58 del 08/02/2023 17.54.37
Dimensione: 5137
Commento:
Versione 64 del 29/04/2023 13.08.37
Dimensione: 8477
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 6: Linea 6:
<<Informazioni(forum="https://forum.ubuntu-it.org/viewtopic.php?f=46&t=642430&p=5223149";rilasci="22.04")>> <<Informazioni(forum="https://forum.ubuntu-it.org/viewtopic.php?f=46&t=631491"; rilasci="23.04 22.04")>>
Linea 9: Linea 9:
I '''phased updates''' sono una modalità di Ubuntu per il rilascio delle nuove versioni dei pacchetti in fase di [[AmministrazioneSistema/Aggiornamenti|aggiornamento del sistema]].<<BR>>
Di seguito sono descritti, in breve, il loro funzionamento e alcune possibilità di gestione.
Linea 12: Linea 10:
= Descrizione = In questa guida sono descritte le istruzioni per installare '''pip''' su Ubuntu e derivate, nonché nozioni generali sul suo utilizzo (per informazioni più specifiche si rimanda ai [[#risorse|link]] di approfondimento).
Linea 14: Linea 12:
Sebbene i '''phased updates''' siano presenti da Ubuntu 13.04, sono stati implementati in '''[[https://wiki.ubuntu-it.org/AmministrazioneSistema/InstallareProgrammi/Apt|apt]]''' soltanto a partire [[https://discourse.ubuntu.com/t/phased-updates-in-apt-in-21-04/20345|dalla versione 21.04]]. '''pip''' (acronimo di '''Pip Installs Packages''') è uno strumento a linea di comando che permette di installare software scritto in '''[[Programmazione/Python|Python]]'''.<<BR>>
I pacchetti vengono reperiti da '''PyPI''' ('''Python Package Index'''). Quest'ultimo è un repository globale dove vengono archiviati migliaia di progetti e programmi relativi a Python, per essere quindi gestiti e organizzati in base alle versioni dei pacchetti e alle loro dipendenze.
Linea 16: Linea 15:
Potrebbe quindi capitare che, nonostante la disponibilità di aggiornamenti, alcuni pacchetti vengano mantenuti alla versione precedente.<<BR>>
Infatti durante l'[[AmministrazioneSistema/InstallareProgrammi/Apt#Aggiornamento_del_sistema|aggiornamento]] potrebbe apparire nel [[AmministrazioneSistema/Terminale|terminale]] un output simile al seguente:{{{
Lettura elenco dei pacchetti... Fatto
Generazione albero delle dipendenze... Fatto
Lettura informazioni sullo stato... Fatto
0 aggiornati, 0 installati, 0 da rimuovere e 10 non aggiornati.
== Avvertenze ==

'''pip''' risulta molto utile per installare facilmente svariato software basato su '''Python''', come moduli, librerie, frameworks e tanto altro (strumenti per sviluppo, ricerca scientifica, svago ecc.).

Inoltre '''pip''' può essere usato per installare alcuni programmi come alternativa alle consuete modalità di [[AmministrazioneSistema/InstallareProgrammi|installazione]] ('''apt''', '''snap''', da sorgenti ecc.). Tuttavia utilizzare pip a livello di sistema è __altamente sconsigliato__. Questo perché, essendo molti programmi di Ubuntu scritti in Python (fra cui componenti essenziali del sistema), l'eventuale presenza di versioni diverse potrebbe provocare problemi di dipendenze e/o esecuzione, rendendo Ubuntu altamente instabile o non funzionante.

Si consiglia quindi questo utilizzo di pip soltanto in ambienti "protetti", quali:
 * [[Virtualizzazione|macchine virtuali]]
 * [[#venv|Python virtual environments]]
 * sistemi/macchine dedicate, non destinate alla produttività, ma per scopi di istruzione, test o sviluppo, ecc.

{{{#!wiki note
Linea 24: Linea 30:
Questo perché con i '''phases updates''' gli aggiornamenti di certi pacchetti sono rilasciati gradualmente, rendendoli inizialmente disponibili soltanto per un numero limitato di utenti, scelti casualmente. Successivamente vengono rilasciati ad altri utenti ancora, fino a renderli progressivamente disponibili per tutti (in questo caso l'aggiornamento può dirsi «''fully phased''»). {{{#!wiki important
Evitare di lanciare pip con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]].
}}}
Linea 26: Linea 34:
In pratica l'utente può tranquillamente non preoccuparsi del mancato aggiornamento dei pacchetti interessati poiché non si tratta affatto di un errore, in quanto gli update vengono solamente posticipati. {{{#!wiki tip
Spesso alcuni pacchetti di cui si potrebbe aver bisogno sono disponibili nei [[Repository|repository]] di Ubuntu. Si consiglia pertanto di effettuare prima di tutto una [[AmministrazioneSistema/InstallareProgrammi/Apt#Altre_operazioni|ricerca]] tramite '''apt'''.
}}}

<<Anchor(venv)>>
= Creazione di un ambiente virtuale =

Per creare un ambiente virtuale, procedere come descritto di seguito:

 0. Per aggiungere il modulo `venv`, [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto [[apt://python3-venv|python3-venv]].
 0. Per creare una cartella di destinazione digitando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
python3 -m venv nome_della_directory
}}}
 sostituendo `nome_della_directory` con il nome desiderato.
 0. Attivare l'ambiente virtuale con il comando:{{{
source nome_della_directory/bin/activate
}}}
 sostituendo `nome_della_directory` con il nome desiderato.

Una volta attivato, la shell in uso punterà alla cartella creata. Se ad esempio si crea la cartella `il_mio_progetto` verrà restituito un output simile al seguente:{{{
(il_mio_progetto) $
}}}

Sarà quindi possibile installare e aggiornare pacchetti utilizzando pip.

= Installazione =

 0. Verificare la versione di Python installata e l'assenza di problemi digitando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
python3 --version
}}}
 L'output sarà simile al seguente:{{{
Python 3.10.6
}}}
 0. In caso di assenza di errori, [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto [[apt://python3-pip|python3-pip]].
 0. Per verificare la versione di '''pip3''' installata digitare:{{{
pip3 --version
}}}

{{{#!wiki tip
È disponibile per l'installazione anche il pacchetto ''python-pip'', di riferimento per Python2. Si incoraggia tuttavia l'utilizzo della versione 3 (per maggiori informazioni consultare [[Programmazione/Python#Versioni_Python_2_e_3|questa pagina]].
}}}

= Utilizzo =

||<:-2 #cccccc>'''Comandi principali'''||
||<40%> '''pip3 install''' ''nome_pacchetto'' || Installa un pacchetto desiderato. ||
|| '''pip3 search''' ''termine_di_ricerca'' || Cerca su '''PyPI''' i pacchetti relativi al termine di ricerca inserito. ||
|| '''pip3 install --upgrade''' ''nome_pacchetto'' || Aggiorna un pacchetto desiderato. ||
|| '''pip3 uninstall''' ''nome_pacchetto'' || Rimuove un pacchetto desiderato. ||
|| '''pip3 show''' ''nome_pacchetto'' || Mostra le informazioni disponibili su un pacchetto installato. ||
|| '''pip3 list''' || Elenca i pacchetti installati. ||
|| '''pip3 freeze''' || Elenca i pacchetti installati nei formati richiesti. ||
|| '''pip3 check''' || Controlla lo stato delle dipendenze dei pacchetti installati. ||
|| '''pip3 help''' || Mostra informazioni sull'uso di pip, fra cui l'elenco dei principali comandi e delle opzioni. ||
Linea 29: Linea 90:
Gli aggiornamenti importanti di sicurezza, al contrario, non sono distribuiti tramite '''phases updates'''. Per l'utilizzo delle opzioni, del file `requirements.txt`, di wheel, delle configurazioni avanzate e altre funzionalità si rimanda a [[https://pip.pypa.io/en/latest/reference/|questa guida]].
Linea 32: Linea 93:
= Funzionamento =

Sebbene le nuove versioni dei pacchetti software di Ubuntu vengano testate con cura prima del loro rilascio, qualche volta alcuni bug possono sfuggire all'attenzione degli sviluppatori e/o dei tester, oppure semplicemente manifestarsi successivamente in determinate condizioni. Quindi con i '''phases updates''' è possibile garantire una sicurezza aggiuntiva, nonché esporre ad eventuali danni un numero inferiore di utenti.

È possibile monitorare il rilascio graduale dei pacchetti interessati, digitando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
apt policy <nome_pacchetto>
{{{#!wiki important
A differenza di apt, pip non supporta l'autocompletamento. Pertanto occorre digitare il nome esatto del pacchetto da installare, facendo attenzione ad evitare errori di battitura durante la digitazione.
Linea 40: Linea 97:
Di seguito un esempio generico (ovviamente il pacchetto in questione dovrà essere già installato):{{{
apt policy libglapi-mesa
libglapi-mesa:
  Installato: 22.0.5-0ubuntu0.3
  Candidato: 22.2.5-0ubuntu0.1~22.04.1
  Tabella versione:
  22.2.5-0ubuntu0.1~22.04.1 500 (phased 20%)
     500 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages
 *** 22.0.5-0ubuntu0.3 100
     100 /var/lib/dpkg/status
  22.0.1-1ubuntu2 500
     500 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages
Di seguito sono riportati ulteriori esempi di utilizzo:

 * Installare specifiche versioni dei pacchetti:{{{
pip3 install nome_pacchetto==N
Linea 53: Linea 102:
dove si possono notare le due versioni disponibili e lo stato di avanzamento del rilascio (in questo caso del 20%).

{{{#!wiki tip
È possibile consultare [[https://people.canonical.com/~ubuntu-archive/phased-updates.html|questa pagina]] per monitorare il rilascio dei '''phases updates''' per tutte le versioni supportate di Ubuntu.
 dove `N` sta per la versione del pacchetto, come nel seguente esempio:{{{
pip3 install Django==4.1.7
}}}
 oppure versioni inferiori/superiori/uguali ad una specifica versione, come nel seguente esempio:{{{
pip3 install Django>=4.1.1
}}}
 * Installare versioni in sviluppo:{{{
pip3 install --pre nome_pacchetto
}}}
 * Installare un pacchetto salvato in locale:{{{
pip3 install ./Percorso/File/nome_pacchetto.tar.gz
}}}
 * Mostrare in una lista incolonnata i pacchetti che hanno versioni più recenti rispetto a quelle presenti nel sistema:{{{
pip3 list --outdated --format columns
}}}
 * Mostrare informazioni sull'utilizzo di un determinato comando:{{{
pip3 <comando> -h
}}}
 come nel seguente esempio:{{{
pip3 list -h
Linea 59: Linea 124:
= Forzare aggiornamento = = Aggiornamento =
Linea 62: Linea 127:
Le seguenti istruzioni sono raccomandate solo per scopo di test e/o sviluppo, poiché potrebbero arrecare problemi al sistema e/o esporlo a vulnerabilità. Questa operazione è fortemente sconsigliata agli utenti poco esperti, poiché potrebbe rendere non utilizzabile pip senza opportune modifiche alle configurazioni del programma. Per lo stesso motivo è opportuno ignorare eventuali consigli di aggiornamento nell'ouput di pip, simili al seguente: `You should consider upgrading via the 'pip install --upgrade pip' command`.
Linea 65: Linea 130:
È possibile aggiornare i pacchetti mantenuti alla versione precedente semplicemente eseguendo il comando `apt install` su ogni pacchetto interessato. Per maggiori informazioni consultare la relativa [[AmministrazioneSistema/InstallareProgrammi/Apt#Installazione_e_rimozione_pacchetti|guida]]. Per aggiornare '''pip''' digitare nel [[AmministrazioneSistema/Terminale|terminale]] il comando:{{{
pip3 install --upgrade pip
}}}
Linea 67: Linea 134:
Per disabilitare in maniera definitiva i '''phased updates''', in modo tale da ricevere tutti gli aggiornamenti appena disponibili, seguire i passaggi descritti di seguito: <<Anchor(problemi)>>
= Soluzione dei problemi =
Linea 69: Linea 137:
 0. Aprire, oppure creare se non esistente, il file `/etc/apt/apt.conf.d/99-Phased-Updates` con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministrazione]].
 0. Aggiungere le seguenti righe:{{{
Update-Manager::Always-Include-Phased-Updates true;
APT::Get::Always-Include-Phased-Updates true;
}}}
 0. Salvare e chiudere il file.
== error: externally managed environment (Ubuntu 23.04) ==
Linea 76: Linea 139:
A partire da Ubuntu 23.04 l'ambiente base di Python viene considerato ''externally managed'', quindi non consente installazioni a livello utente e/o di sistema. Per maggiori informazioni consultare [[https://peps.python.org/pep-0668/|questa pagina]].

È possibile risolvere questo problema adottando le procedure raccomandate, quali:
 * [[#venv|creazione di un ambiente virtuale]].
 * utilizzo di '''pipx''': è uno strumento alternativo a '''pip''' che permette di installare ed eseguire applicazioni Python in ''isolated environments'', garantendo una certa sicurezza. '''pipx''' infatti crea automaticamente un ambiente virtuale per ogni applicazione installata, generando contestualmente un collegamento nella cartella `.local/bin` dell'utente (quindi non a livello di sistema). Per utilizzare lo strumento [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto [[apt://pipx|pipx]]. Per il suo utilizzo consultare la [[https://pypa.github.io/pipx/docs/|documentazione]] del progetto.

<<Anchor(risorse)>>
Linea 78: Linea 148:
 * [[https://discourse.ubuntu.com/t/about-apt-upgrade-and-phased-updates/33649|Articolo originale]]
 * [[https://wiki.ubuntu.com/PhasedUpdates|Wiki internazionale]]
 * [[https://askubuntu.com/questions/1431940/what-are-phased-updates-and-why-does-ubuntu-use-them|AskUbuntu]] (approfondimento)
 * [[https://pip.pypa.io|Sito e documentazione ufficiali del progetto]]
 * [[https://en.wikipedia.org/wiki/Pip_(package_manager)|Voce enciclopedica]]
 * [[https://github.com/pypa/pip|GitHub]]
 * [[https://pypi.org/|Python Package Index (PyPI)]]
 * [[https://pypa.github.io/pipx/|pipx]]
 * [[Programmazione/Python|Python]]
Linea 83: Linea 156:
##CategoryInstallazioneSistema CategoryAmministrazione ##CategoryProgrammazione


Attenzione! Questa è una Pagina di prova. Le informazioni riportate potrebbero essere incomplete, errate e potenzialmente pericolose. Per contribuire alla realizzazione di questa pagina consultare la discussione di riferimento.

Guida verificata con Ubuntu: 22.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

In questa guida sono descritte le istruzioni per installare pip su Ubuntu e derivate, nonché nozioni generali sul suo utilizzo (per informazioni più specifiche si rimanda ai link di approfondimento).

pip (acronimo di Pip Installs Packages) è uno strumento a linea di comando che permette di installare software scritto in Python.
I pacchetti vengono reperiti da PyPI (Python Package Index). Quest'ultimo è un repository globale dove vengono archiviati migliaia di progetti e programmi relativi a Python, per essere quindi gestiti e organizzati in base alle versioni dei pacchetti e alle loro dipendenze.

Avvertenze

pip risulta molto utile per installare facilmente svariato software basato su Python, come moduli, librerie, frameworks e tanto altro (strumenti per sviluppo, ricerca scientifica, svago ecc.).

Inoltre pip può essere usato per installare alcuni programmi come alternativa alle consuete modalità di installazione (apt, snap, da sorgenti ecc.). Tuttavia utilizzare pip a livello di sistema è altamente sconsigliato. Questo perché, essendo molti programmi di Ubuntu scritti in Python (fra cui componenti essenziali del sistema), l'eventuale presenza di versioni diverse potrebbe provocare problemi di dipendenze e/o esecuzione, rendendo Ubuntu altamente instabile o non funzionante.

Si consiglia quindi questo utilizzo di pip soltanto in ambienti "protetti", quali:

Evitare di lanciare pip con i privilegi di amministrazione.

Spesso alcuni pacchetti di cui si potrebbe aver bisogno sono disponibili nei repository di Ubuntu. Si consiglia pertanto di effettuare prima di tutto una ricerca tramite apt.

Creazione di un ambiente virtuale

Per creare un ambiente virtuale, procedere come descritto di seguito:

  1. Per aggiungere il modulo venv, installare il pacchetto python3-venv.

  2. Per creare una cartella di destinazione digitando nel terminale:

    python3 -m venv nome_della_directory

    sostituendo nome_della_directory con il nome desiderato.

  3. Attivare l'ambiente virtuale con il comando:

    source nome_della_directory/bin/activate

    sostituendo nome_della_directory con il nome desiderato.

Una volta attivato, la shell in uso punterà alla cartella creata. Se ad esempio si crea la cartella il_mio_progetto verrà restituito un output simile al seguente:

(il_mio_progetto) $

Sarà quindi possibile installare e aggiornare pacchetti utilizzando pip.

Installazione

  1. Verificare la versione di Python installata e l'assenza di problemi digitando nel terminale:

    python3 --version

    L'output sarà simile al seguente:

    Python 3.10.6
  2. In caso di assenza di errori, installare il pacchetto python3-pip.

  3. Per verificare la versione di pip3 installata digitare:

    pip3 --version

È disponibile per l'installazione anche il pacchetto python-pip, di riferimento per Python2. Si incoraggia tuttavia l'utilizzo della versione 3 (per maggiori informazioni consultare questa pagina.

Utilizzo

Comandi principali

pip3 install nome_pacchetto

Installa un pacchetto desiderato.

pip3 search termine_di_ricerca

Cerca su PyPI i pacchetti relativi al termine di ricerca inserito.

pip3 install --upgrade nome_pacchetto

Aggiorna un pacchetto desiderato.

pip3 uninstall nome_pacchetto

Rimuove un pacchetto desiderato.

pip3 show nome_pacchetto

Mostra le informazioni disponibili su un pacchetto installato.

pip3 list

Elenca i pacchetti installati.

pip3 freeze

Elenca i pacchetti installati nei formati richiesti.

pip3 check

Controlla lo stato delle dipendenze dei pacchetti installati.

pip3 help

Mostra informazioni sull'uso di pip, fra cui l'elenco dei principali comandi e delle opzioni.

Per l'utilizzo delle opzioni, del file requirements.txt, di wheel, delle configurazioni avanzate e altre funzionalità si rimanda a questa guida.

A differenza di apt, pip non supporta l'autocompletamento. Pertanto occorre digitare il nome esatto del pacchetto da installare, facendo attenzione ad evitare errori di battitura durante la digitazione.

Di seguito sono riportati ulteriori esempi di utilizzo:

  • Installare specifiche versioni dei pacchetti:

    pip3 install nome_pacchetto==N

    dove N sta per la versione del pacchetto, come nel seguente esempio:

    pip3 install Django==4.1.7

    oppure versioni inferiori/superiori/uguali ad una specifica versione, come nel seguente esempio:

    pip3 install Django>=4.1.1
  • Installare versioni in sviluppo:

    pip3 install --pre nome_pacchetto
  • Installare un pacchetto salvato in locale:

    pip3 install ./Percorso/File/nome_pacchetto.tar.gz
  • Mostrare in una lista incolonnata i pacchetti che hanno versioni più recenti rispetto a quelle presenti nel sistema:

    pip3 list --outdated --format columns
  • Mostrare informazioni sull'utilizzo di un determinato comando:

    pip3 <comando> -h

    come nel seguente esempio:

    pip3 list -h

Aggiornamento

Questa operazione è fortemente sconsigliata agli utenti poco esperti, poiché potrebbe rendere non utilizzabile pip senza opportune modifiche alle configurazioni del programma. Per lo stesso motivo è opportuno ignorare eventuali consigli di aggiornamento nell'ouput di pip, simili al seguente: You should consider upgrading via the 'pip install --upgrade pip' command.

Per aggiornare pip digitare nel terminale il comando:

pip3 install --upgrade pip

Soluzione dei problemi

error: externally managed environment (Ubuntu 23.04)

A partire da Ubuntu 23.04 l'ambiente base di Python viene considerato externally managed, quindi non consente installazioni a livello utente e/o di sistema. Per maggiori informazioni consultare questa pagina.

È possibile risolvere questo problema adottando le procedure raccomandate, quali:

  • creazione di un ambiente virtuale.

  • utilizzo di pipx: è uno strumento alternativo a pip che permette di installare ed eseguire applicazioni Python in isolated environments, garantendo una certa sicurezza. pipx infatti crea automaticamente un ambiente virtuale per ogni applicazione installata, generando contestualmente un collegamento nella cartella .local/bin dell'utente (quindi non a livello di sistema). Per utilizzare lo strumento installare il pacchetto pipx. Per il suo utilizzo consultare la documentazione del progetto.

Ulteriori risorse


CategoryHomepage