Sbarazzarsi di 'codice di stato restituito snapd 400: Errore di richiesta non valida in Ubuntu

Breve: esercitazione rapida per mostrare come ottenere la correzione "errore di stato restituito dallo snapd 400: Richiesta errata", errore riscontrato durante l'installazione delle applicazioni da Software Center.

Stavo cercando di installare Visual Studio Code, uno dei migliori editor di codice open source che sorprendentemente viene da Microsoft. Ho scritto sui modi per installare Visual Studio Code su Ubuntu in precedenza, ma da allora è stato disponibile nel Software Center. Pertanto ho provato a installarlo da lì.

Con mia sorpresa, sono stato accolto con un errore quando ho premuto il pulsante di installazione.

L'errore ha letto:

Spiacente, questo non ha funzionato

Installazione del codice di Visual Studio fallita.

E i dettagli dell'errore erano questi:

Seguono errori dettagliati dal gestore dei pacchetti:

snapd ha restituito il codice di stato 400: Richiesta non valida

Non mi piacciono gli errori stupidi, ma mi piace ripararli o in casi come questi, aggirare gli errori. Se stai affrontando un problema simile, allora ho intenzione di condividere con te perché hai ricevuto questo errore e come potresti installare l'applicazione che ha generato questo errore.

Sbarazzarsi di 'codice di stato restituito snapd 400: Richiesta non valida'

Se preferisci i video, puoi guardare questo video sul canale YouTube di FOSS.

Iscriviti a YouTube Channel per altri video su Linux

Vediamo come installare un'applicazione che mostri l'errore sopra menzionato. La soluzione qui è utilizzare la riga di comando. Non è molto complicato usare questi comandi. Segui le istruzioni.

Se hai letto la mia guida sull'uso dei comandi di snap in Ubuntu, sai che possiamo usare l'opzione di ricerca per cercare pacchetti di snap disponibili con un nome specifico. Nel mio caso, stavo tentando di installare Visual Studio Code in modo da poter cercare sia "visual studio code" o semplicemente "visual".

Nota che se il nome del programma ha più di una parola, raggruppale insieme in virgolette:

snap find "visual studio code" 

Come puoi vedere nell'output del comando, il sistema ha la versione 1.18 di Visual Studio Code disponibile in modalità Classic. Spiegherò che cos'è questa modalità classica nella prossima sezione. Dovresti anche annotare il nome esatto del pacco. È vscode per Visual Studio Code.

Ora usa il comando nel modo seguente per installare il pacchetto snap:

 sudo snap install vscode --classic 

Inserisci la tua password e vedrai che l'applicazione è stata installata. Ora puoi usare l'applicazione come qualsiasi normale software nel tuo sistema.

Ora che hai visto come 'correggere' questo errore di snapd, puoi saltare direttamente alla sezione dei commenti per un rapido ringraziamento. Tuttavia, ti consiglio di rimanere con me e leggere la prossima sezione per sapere un po 'di scatti e la sua modalità classica.

Motivo dietro l'errore 'codice di errore restituito snapd 400: Richiesta non valida'

Non so quanto ne sai di packaging Linux qui, quindi cercherò di spiegarti le basi.

Potresti sapere che varie distribuzioni Linux hanno il loro sistema di pacchettizzazione. Puoi scaricare pacchetti .deb su distribuzioni Linux basate su Debian e Ubuntu, ma Fedora userà i suoi pacchetti .rpm e così via. Dalla progettazione, non è possibile utilizzare i pacchetti Debian su Fedora e viceversa.

Sono stati introdotti pacchetti universali per evitare la dipendenza dalle distribuzioni. Ubuntu ha lanciato il proprio sistema di packaging universale chiamato Snap. Ti permette di usare queste applicazioni impacchettate Snap su qualsiasi distribuzione Linux supportata da Snap, non solo su Ubuntu.

Il problema qui è che l'applicazione che hai provato ad installare è in realtà un pacchetto Snap. Questo è il motivo per cui l'errore mostra lo snap che sta per snap daemon.

Le applicazioni Snap classico non funzionano in Software Center

Storia a parte, potresti e dovresti chiedere se la confezione Snap è di Ubuntu, come mai non funziona nel suo Software Center?

La risposta è il cambiamento nel design della confezione Snap. Originariamente, i pacchetti snap vengono installati e montati in uno spazio strettamente controllato. Non hanno accesso alla stragrande maggioranza delle risorse di sistema e raggruppano le librerie di cui hanno bisogno e dispongono di un sistema di file di sola lettura. Questa è chiamata politica di confinamento "severa" e garantisce un ambiente più sicuro.

Tuttavia, con il rilascio di snapd 2.20, Ubuntu ha introdotto una nuova politica di confinamento chiamata Classic. Le app in modalità classica hanno accesso al resto del sistema come la maggior parte delle app in pacchetti legacy come i pacchetti Debian.

Sfortunatamente, i pacchetti Snap che utilizzano la politica di confinamento classica non sono supportati dal Software Center. Dovrai passare attraverso l'opzione della riga di comando per installare tali app Snap.

Ha funzionato per te?

Spero che questo suggerimento rapido ti abbia aiutato a risolvere il problema e hai anche imparato una cosa o due sui pacchetti snap. Se avete domande o suggerimenti, si prega di utilizzare la sezione commenti qui sotto.

Raccomandato

Il framework AI Open Source di Facebook PyTorch è alla ricerca di Solid
2019
GalliumOS: la distribuzione Linux per i Chromebook
2019
Come chiudere le applicazioni in esecuzione nel telefono Ubuntu
2019