Connect with us

Linux

Le prossime versioni di Debian/Ubuntu probabilmente non consentiranno più l’installazione di pip al di fuori di un ambiente virtuale


pitone pitone

Le prossime versioni di Debian/Ubuntu probabilmente non lo consentiranno più pip install al di fuori di un ambiente virtuale o Python separato installa a causa di conflitti tra pip e il gestore pacchetti del sistema operativo. Può ancora essere forzato, ma è fortemente sconsigliato.

Il software fornito con una distribuzione Linux può essere (abbastanza facilmente, potrei aggiungere) rotto installando pacchetti usando pip. Tutto ciò che l’utente deve fare è installare un pacchetto (o alcune delle sue dipendenze) più recente e retrocompatibile con una versione installata dai repository ufficiali della distribuzione Linux. E non si tratta nemmeno di violare alcune applicazioni, poiché Python è così ampiamente utilizzato al giorno d’oggi, gli utenti possono facilmente violare i pacchetti di distribuzione critici.

La rottura può verificarsi per entrambe le installazioni pip a livello di sistema (sudo pip install), così come le installazioni utente (pip install --user), ma soprattutto quest’ultimo, poiché il tentativo di ripristino da questo potrebbe comportare la rimozione (utilizzando pip, non il gestore pacchetti distro) dei pacchetti installati utilizzando il gestore pacchetti della distribuzione Linux.

Per questo motivo, le prossime versioni di Debian (Debian 12 Bookworm) e Ubuntu (Ubuntu 23.04 Lunar Lobster) adotteranno probabilmente PEP668 (PEP = Python Enhancement Proposal), contrassegnando gli ambienti di base Python come “gestiti esternamente” e non consentendo più pip regolari utilizzo dell’installazione sia per l’utente che per le installazioni di sistema. Questo può ancora essere forzato e, ovviamente, ci sono alternative.

La modifica è già attiva in Debian Testing e Ubuntu 23.04 Lunar Lobster (che avrà una versione beta il 30 marzo, con la versione finale prevista per il 20 aprile). C’è anche una proposta per includerlo in Fedora 38 (che ha avuto una versione beta oggi), ma per ora non è arrivato in Fedora 38.

Ho detto “probabile adozione” perché, anche se questa modifica è già presente in Debian Testing e Ubuntu 23.04 Lunar Lobster, Stefano Rivera, uno dei manutentori di Debian/Ubuntu Python, ha affermato che “se necessario, possiamo eseguire il rollback di EXTERNALLY-MANAGED nel nostro python3.11 per il rilascio di bookworm, ma mi piacerebbe farlo accadere…“.

Quindi quali sono le alternative all’utilizzo pip install direttamente? Dai un’occhiata qui sotto:

1. Se possibile, prova a installare l’applicazione Python o il modulo della libreria dai repository Debian/Ubuntu.

2. Per le applicazioni Python che non sono disponibili nei repository Debian/Ubuntu (o per le quali si desidera installare una versione più recente), è possibile utilizzare pipx per installarle. Questo imposta un ambiente isolato e vi installa l’applicazione e le sue dipendenze.

Ad esempio, invece di eseguire:

pip install --user some-python-app

Puoi usare:

pipx install some-python-app

3. Per i moduli della libreria Python che non sono disponibili in Debian (o per i quali si desidera installare una versione più recente), è possibile utilizzare virtualenv (pacchetto chiamato virtualenv su Debian/Ubuntu) / venv (pacchetto chiamato python3-venv su Debian/Ubuntu) , che crea un ambiente isolato in cui è possibile installare applicazioni e librerie Python.

Ad esempio, invece di eseguire:

pip install --user some-python-module-or-app #or

pip install --user -r requirements.txt

Puoi usare:

python3 -m venv .venv/some-python-module-or-app

source .venv/some-python-module-or-app/bin/activate

python3 -m pip install some-python-module-or-app #or

python3 -m pip install -r requirements.txt

Se necessario, l’ambiente isolato può anche avere accesso ai moduli Python di sistema, con l’estensione --system-site-packages bandiera.

4. Installa il tuo Python (dal sorgente) ad es /usr/local.

Come ho detto sopra, se ne hai davvero bisogno, puoi forzare l’installazione dei pacchetti Python usando pip, ma fallo a tuo rischio e pericolo! Puoi forzare l’installazione dei pacchetti usando pip passando il file --break-system-packages opzione per pip, esportazione PIP_BREAK_SYSTEM_PACKAGES=1o aggiungendo quanto segue a ~/.config/pip/pip.conf O /etc/pip.conf file:

[global]

break-system-packages = true


Ti e piaciuto questo articolo?
Supporta il mio lavoro, facendo una donazione!

Click to comment

Leave a Reply

Esegui l'accesso per Commentare

Di tendenza

Close Popup
Questo sito utilizza i cookie per migliorare servizi ed esperienza dei lettori. Se decidi di continuare la navigazione senza blocchi premi su Accetto, oppure continua tranquillamente la navigazione, nessun dato sulla tua navigazione verrà raccolto.
Close Popup
Privacy Settings saved!
Impostazioni

Quando visiti un sito Web, esso può archiviare o recuperare informazioni sul tuo browser, principalmente sotto forma di cookies. Controlla qui i tuoi servizi di cookie personali.

Questi cookie sono necessari per il funzionamento del sito Web e non possono essere disattivati nei nostri sistemi.

Cookie tecnici
Per utilizzare questo sito web usiamo i seguenti cookie tecnici necessari:
  • wordpress_test_cookie
  • wordpress_logged_in_
  • wordpress_sec
  • swpm_session

Google Adsense
Usiamo la pubblicità di Google solo per mantenere attivi i nostro sito. Con ip anonimizzati.

Rifiuta tutti i Servizi
Save
Accetta tutti i Servizi