Отървете се от "snapd върнати код за състояние 400: Грешка в лошата заявка в Ubuntu

Кратко: Бърз урок, който ще ви покаже как да получите грешка "snapd върна код 400 на състоянието: Bad Request", възникнала при инсталирането на приложения от Software Center.

Опитвах се да инсталирам Visual Studio Code, един от най-добрите редактори с отворен код, който изненадващо идва от Microsoft. Писах за начините да инсталирам Visual Studio Code на Ubuntu по-рано, но оттогава той е достъпен в Софтуерния център. Затова се опитах да го инсталирам от там.

За моя изненада, бях посрещнат с грешка, когато натиснах бутона за инсталиране.

Грешката се чете:

Съжаляваме, но това не работи

Неуспешно инсталиране на Visual Studio Code.

А подробностите за грешката бяха:

Следват подробни грешки от мениджъра на пакети:

snapd върна код на състоянието 400: Bad Request

Аз не обичам глупави грешки, но ми харесва да ги фиксирам или в такива случаи, като се справям с грешките. Ако сте изправени пред подобен проблем, тогава аз ще споделя с вас защо сте получили тази грешка и как може да инсталирате приложението, което хвърли тази грешка.

Отървете се от "snapd върнати код на състоянието 400: Bad Request"

Ако предпочитате видеоклипове, можете да гледате този видеоклип на YouTube канал FOSS.

Абонирайте се за канала в YouTube за още видеоклипове от Linux

Нека видим как да инсталираме приложение, което показва гореспоменатата грешка. Обходът тук е да се използва командния ред. Не е много сложно да се използват тези команди. Просто следвайте инструкциите.

Ако сте прочели моето ръководство за използване на командите на snap в Ubuntu, знаете, че можем да използваме опцията find, за да търсим наличните пакети с дадено име. В моя случай се опитвах да инсталирам Visual Studio Code, за да мога да потърся или „визуален код на студио“, или просто „визуален“.

Обърнете внимание, че ако името на програмата съдържа повече от една дума, ги групирайте в запетаи:

snap find "visual studio code" 

Както можете да видите в командния изход, системата има версия 1.18 на Visual Studio Code в класически режим. Ще обясня какъв е този класически режим в следващия раздел. Трябва също да отбележите точното име на пакета. Това е vscode за Visual Studio Code.

Сега използвайте командата по следния начин, за да инсталирате snap пакета:

 sudo snap install vscode --classic 

Въведете паролата си и ще видите, че приложението е инсталирано. Вече можете да използвате приложението като всеки обикновен софтуер във вашата система.

Сега, след като видяхте как да „поправите“ тази snapd грешка, можете да преминете направо към секцията с коментари, за да ви благодаря бързо. Въпреки това, аз препоръчвам да останете с мен и да прочетете следващия раздел, за да знаете малко за снимките и неговия класически режим.

Причина за „snapd връща код за състояние 400: Грешка при заявка“

Не знам колко знаете за опаковката на Linux тук, така че ще се опитам да ви обясня основните неща.

Може да знаете, че различни дистрибуции на Linux имат своя собствена система за опаковане. Можете да изтеглите .deb пакети в дистрибуции на Linux и Debian и Ubuntu, но Fedora ще използва свои собствени .rpm пакети и така нататък. По проект не е възможно да се използват пакети на Debian във Fedora и обратно.

Въведени са универсални пакети, за да се избегне зависимостта от дистрибуциите. Ubuntu стартира своя собствена универсална система за опаковане, наречена Snap. Тя ви позволява да използвате тези Snap пакетирани приложения на всички Snap поддържани дистрибуции на Linux, а не само Ubuntu.

Проблемът тук е, че приложението, което сте опитали да инсталирате, всъщност е Snap пакет. Ето защо грешката показва snapd, което означава snap daemon.

Класическите приложения за прилепване не работят в Софтуерния център

Встрани от историята, бихте могли и трябва да попитате дали Snap пакетирането е от Ubuntu, как така не работи в Софтуерния център?

Отговорът е промяната в дизайна на Snap опаковката. Първоначално, пакети за монтиране се монтират и монтират в плътно контролирано пространство. Те нямат достъп до по-голямата част от системните ресурси и свързват библиотеките, от които се нуждаят, и имат файлова система само за четене. Това се нарича „стриктна“ политика на задържане и те осигуряват по-сигурна среда.

С пускането на snapd 2.20 обаче Ubuntu въведе нова политика за ограничаване, наречена Classic. Приложенията в класически режим имат достъп до останалата част от системата, както и повечето стари пакетирани приложения като пакети на Debian.

За съжаление, пакетите Snap, които използват правилата за класическо ограничаване, не се поддържат от Центъра за софтуер. Ще трябва да преминете през опцията за командния ред, за да инсталирате такива приложения за прикачване.

Работи ли е за вас?

Надявам се, че този бърз съвет ви е помогнал да решите проблема, а също така научихте нещо или две за пакети за прилепване. Ако имате въпроси или предложения, моля, използвайте раздела за коментари по-долу.

Препоръчано

Двигателят на Microsoft Edge за JavaScript е отворен код
2019
Върнете стария си компютър обратно в живота с 4MLinux
2019
Fix Невъзможност за влизане в Ubuntu след надстройка
2019