Използване на PPA в Ubuntu Linux

Кратко: Подробна статия, която обхваща почти всички въпроси около използването на PPA в Ubuntu и други дистрибуции на Linux.

Ако сте използвали Ubuntu или някаква друга Linux дистрибуция, базирана на Ubuntu като Linux Mint, Linux Lite, Zorin OS и т.н., може да сте се сблъскали с три магически линии от този вид:

sudo add-apt-repository ppa:dr-akulavich/lighttable sudo apt-get update sudo apt-get install lighttable-installer 

Няколко уебсайта предлагат такива линии за инсталиране на приложения в Ubuntu. Това се нарича инсталиране на приложение, използващо PPA.

Но какво е PPA? Защо се използва? Безопасно ли е да се използва PPA? Как правилно да използвате PPA? Как да изтриете PPA?

Ще отговоря на всички горепосочени въпроси в това подробно ръководство. Дори ако вече знаете няколко неща за PPA, аз съм сигурен, че тази статия все още ще допълва вашите познания.

Имайте предвид, че пиша тази статия с помощта на Ubuntu. Затова ще използвам термина Ubuntu почти навсякъде, но обясненията и стъпките са приложими и за други дистрибуции, базирани на Debian / Ubuntu.

Какво е PPA? Защо се използва?

PPA означава Личен архивен пакет.

Има ли логика в това? Вероятно не.

Преди да разберете PPA, трябва да знаете концепцията за хранилищата в Linux. Въпреки това няма да навлизам в подробности тук.

Концепция за хранилища и управление на пакети

Хранилището е колекция от файлове, които съдържат информация за различен софтуер, техните версии и някои други детайли като контролната сума. Всяка версия на Ubuntu има свой собствен набор от четири хранилища:

  • Основен - Канонично поддържан безплатен софтуер с отворен код.

  • Вселената - поддържан от общността свободен софтуер с отворен код.

  • Ограничен - Собствени драйвери за устройства.

  • Multiverse - Софтуер, ограничен от авторски права или правни въпроси.

Можете да видите такива хранилища за всички версии на Ubuntu тук. Можете да ги прегледате и да отидете в отделните хранилища. Например, основното хранилище на Ubuntu 16.04 може да се намери тук.

Така че основно това е уеб URL, който има информация за софтуера. Как вашата система знае къде са тези хранилища?

Тази информация се съхранява във файла sources.list в директорията / etc / apt. Ако погледнете съдържанието му, ще видите, че той има URL адреса на хранилищата. Редовете с # в началото се игнорират.

Сега, когато стартирате командата sudo apt update, вашата система използва APT инструмент, за да провери срещу репо и съхранява информацията за софтуера и тяхната версия в кеш паметта. Когато използвате командата sudo apt install package_name, тя използва информацията, за да получи пакета от URL адреса, където се съхранява действителният софтуер.

Ако в хранилището няма информация за определен пакет, ще видите грешка като:

 E: Unable to locate package 

На този етап препоръчвам да прочетете ръководството за използване на apt команди. Това ще ви даде много по-добро разбиране на apt команди, актуализация и др.

Това беше за хранилища. Но какво е PPA? Как влиза в картината?

Защо се използва PPA?

Както виждате, Ubuntu контролира какъв софтуер и по-важното коя версия на софтуера получавате в системата. Но представете си, ако разработчик на софтуер пусне нова версия на софтуера.

Ubuntu няма да го направи достъпна веднага. Съществува процедура за проверка дали новата версия на софтуера е съвместима със системата или не. Това гарантира стабилността на системата.

Но това също означава, че ще бъдат няколко седмици или в някои случаи няколко месеца преди да бъде предоставено от Ubuntu. Не всеки би искал да чака толкова дълго, за да се добере до новата версия на любимия си софтуер.

По подобен начин предполагам, че някой разработва софтуер и иска Ubuntu да включи този софтуер в официалните хранилища. Това отново ще отнеме месеци, преди Ubuntu да вземе решение и да го включи в официалните хранилища.

Друг случай ще бъде по време на бета тестване. Дори ако в официалните хранилища е налична стабилна версия на софтуера, разработчикът на софтуер може да иска някои крайни потребители да тестват предстоящото си издание. Как те позволяват на крайния потребител да тества бета предстоящото издание?

Въведете PPA!

Как да използвате PPA? Как действа АОП?

PPA, както вече ви казах, означава личен архивен пакет. Обърнете внимание на думата „Лични“ тук. Това дава намек, че това е нещо изключително за разработчик и не е официално одобрено от дистрибуцията.

Ubuntu предоставя платформа, наречена Launchpad, която позволява на разработчиците на софтуер да създават свои собствени хранилища. Краен потребител, т.е. можете да добавите хранилището на PPA към източниците си и да актуализирате системата си, системата ви ще знае за наличието на този нов софтуер и можете да го инсталирате, като използвате стандартната команда sudo apt install, като тази.

 sudo add-apt-repository ppa: dr-akulavich / светлина

sudo apt-get update

sudo apt-get install lighttable-installer

Да обобщим:

  • sudo add-apt-repository <- Тази команда добавя хранилището на PPA към списъка.
  • sudo apt-get update <- Тази команда обновява списъка на пакетите, които могат да бъдат инсталирани в системата.
  • sudo apt-get install <- Тази команда инсталира пакета.

Виждате, че е важно да използвате командата sudo apt update или иначе вашата система няма да знае кога е наличен нов пакет.

Сега нека разгледаме първата команда малко по-подробно.

 sudo add-apt-repository ppa:dr-akulavich/lighttable 

Ще забележите, че тази команда няма URL адрес на хранилището. Това е така, защото инструментът е проектиран да извлече от вас информацията за URL адреса.

Само една малка бележка. Ако добавите ppa: dr-akulavich / lighttable, ще получите Light Table. Но ако добавите ppa: dr-akulavich, ще получите всички хранилища или пакети, споменати в 'горното хранилище'. Тя е йерархична.

По принцип, когато добавите PPA, използвайки add-apt-repository, той ще направи същото действие, както ако ръчно изпълните тези команди:

 deb //ppa.launchpad.net/dr-akulavich/lighttable/ubuntu YOUR_UBUNTU_VERSION_HERE main deb-src //ppa.launchpad.net/dr-akulavich/lighttable/ubuntu YOUR_UBUNTU_VERSION_HERE main 

Горните два реда са традиционният начин за добавяне на хранилища към източниците ви. Но PPA го прави автоматично за вас, без да се чудите за точния URL адрес на хранилището и версията на операционната система.

Едно важно нещо, което не е тук, е, че когато използвате PPA, той не променя първоначалните ви източници. Вместо това той създава два файла в директорията /etc/apt/sources.d, списък и резервен файл със суфикс „save“.

PPA създава отделни източници

Файловете с „списък“ със суфикс имат командата, която добавя информацията за хранилището.

Съдържание на списъка на източниците на PPA

Това е мярка за безопасност, за да се гарантира, че добавянето на PPA не се смесва с първоначалния списък с източници. Той също така помага при премахването на PPA.

Защо АОП? Защо не пакети DEB?

Може да попитате защо трябва да използвате PPA, когато се използва командния ред, който може да не е предпочитан от всички. Защо просто не разпространявате DEB пакет, който може да бъде инсталиран графично?

Отговорът е в процедурата за актуализиране. Ако инсталирате софтуер, използващ DEB пакет, няма гаранция, че инсталираният софтуер ще бъде актуализиран до по-нова версия, когато изпълните sudo apt update && sudo apt upgrade.

Това е така, защото процедурата за ъпгрейд на ап се основава на sources.list. Ако няма запис за софтуер, той не получава актуализацията чрез стандартния софтуер за актуализиране.

Това означава ли софтуер, инсталиран с помощта на DEB никога не получава актуализация? Не наистина. Зависи от това как е създаден пакетът.

Някои програмисти автоматично добавят запис към sources.list и след това се актуализират като обикновен софтуер. Google Chrome е един такъв пример.

Някой софтуер ще ви уведоми за наличността на нова версия, когато се опитате да я стартирате. Ще трябва да изтеглите новия DEB пакет и да го стартирате отново, за да актуализирате текущия софтуер до по-нова версия. Oracle Virtual Box е пример в този случай.

За останалите DEB пакети ще трябва ръчно да търсите актуализация и това не е удобно, особено ако вашият софтуер е предназначен за бета-тестери. Трябва често да добавяте повече актуализации. Това е мястото, където PPA идват на помощ.

Официален PPA срещу неофициалното PPA

Можете също да чуете термина официален PPA или неофициален PPA. Каква е разликата?

Когато разработчиците създават PPA за своя софтуер, той се нарича официален PPA. Съвсем очевидно, защото идва от никой друг, освен от разработчиците на проекти.

Но понякога хората създават PPA на проекти, създадени от други разработчици.

Защо някой би го направил? Защото много разработчици просто предоставят изходния код на софтуера и знаете, че инсталирането на софтуер от изходния код в Linux е болка и не всеки може или ще направи това.

Ето защо доброволците поемат върху себе си да създадат PPA от този изходен код, така че другите потребители да могат лесно да инсталират софтуера. В крайна сметка, използването на тези 3 линии е много по-лесно, отколкото да се бориш с инсталацията на изходния код.

Уверете се, че PPA е наличен за вашата дистрибуционна версия

Когато става въпрос за използване на PPA в Ubuntu или друга дистрибуция, базирана на Debian, има няколко неща, които трябва да имате предвид.

Не всеки PPA е достъпен за вашата конкретна версия. Трябва да знаете коя версия на Ubuntu използвате. Кодовото име на изданието е важно, защото когато отидете на уеб страницата на определен PPA, можете да видите кои версии на Ubuntu се поддържат от PPA.

За други Ubuntu-базирани дистрибуции можете да проверите съдържанието на / etc / os-release, за да разберете информацията за версията на Ubuntu.

Проверете дали PPA е достъпна за вашата версия на Ubuntu

Как да знаете URL адреса на PPA? Просто търсете в интернет с PPA име като ppa: dr-akulavich / lighttable и ще получите първия резултат от Launchpad, официалната платформа за хостинг на PPA. Можете също да отидете в Launchpad и да потърсите нужното PPA директно там.

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

 E: Unable to locate package 

По-лошото е, че след като е добавен към source.list, всеки път, когато стартирате софтуер за актуализиране, ще видите грешка „Неуспешно изтегляне на информация за хранилището“.

Ако стартирате sudo apt update в терминала, грешката ще има повече подробности за това кой хранилище причинява проблема. Можете да видите нещо подобно в края на изхода на sudo apt update:

 W: Failed to fetch //ppa.launchpad.net/venerix/pkg/ubuntu/dists/raring/main/binary-i386/Packages 404 Not Found E: Some index files failed to download. They have been ignored, or old ones used instead. 

Това е очевидно, защото системата не може да намери хранилището за вашата версия. Помните ли какво видяхме по-рано за структурата на хранилището? APT ще се опита да потърси информация за софтуера на мястото //ppa.launchpad.net//ubuntu/dists/Ubuntu_Version

И ако PPA за конкретната версия не е налична, тя никога няма да може да отвори URL адреса и ще получите известната грешка 404. \ t

Защо PPA не са достъпни за всички версии на Ubuntu?

Това е така, защото някой трябва да състави софтуера и да създаде PPA от него на конкретните версии. Като се има предвид, че новата версия на Ubuntu се пуска на всеки шест месеца, това е уморителна задача да се актуализира PPA за всяка версия на Ubuntu. Не всички разработчици имат време да направят това.

Как да инсталирате приложението, ако PPA не е налична за вашата версия?

Възможно е, въпреки че PPA не е налице за вашата версия на Ubuntu, все пак можете да изтеглите файла DEB и да инсталирате приложението

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

Това, което можете да направите, е да кликнете върху „Преглед на подробности за пакета“.

И тук можете да кликнете върху пакет, за да разкриете повече подробности. Тук ще намерите и изходния код и DEB файла на пакета.

Съветвам да използвате Gdebi, за да инсталирате тези DEB файлове вместо на Софтуерния център, защото Gdebi е много по-добре при обработката на зависимости.

Имайте предвид, че инсталираният по този начин пакет може да не получи бъдещи актуализации.

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

Как да изтрия PPA?

Писах за изтриване на PPA в миналото. Тук ще опиша и същите методи.

Съветвам да изтриете софтуера, който сте инсталирали от PPA, преди да премахнете PPA. Ако просто премахнете PPA, инсталираният софтуер остава в системата, но няма да има никакви актуализации. Не бихте искали това, нали?

Така че, въпросът идва, как да се знае коя програма е инсталирана от кой АОП?

Намерете пакети, инсталирани от PPA и ги премахнете

Софтуерният център на Ubuntu не помага тук. Тук ще трябва да използвате пакетния мениджър на Synaptic, който има по-разширени функции.

Можете да инсталирате Synaptic от Software Center или да използвате командата по-долу:

 sudo може да инсталира синаптично 

Веднъж инсталиран, стартирайте Synaptic мениджъра на пакети и изберете Origin. Ще видите различни хранилища, добавени към системата. Записите на PPA ще бъдат обозначени с префикс PPA. Кликнете върху тях, за да видите пакетите, които се предлагат от PPA. Инсталираният софтуер ще има подходящ символ преди него.

Намерете пакети, инсталирани чрез PPA

След като сте намерили пакетите, можете да ги изтриете от самия Synaptic. В противен случай винаги имате опцията да използвате командния ред:

 sudo apt remove ime_на_пакет 

След като сте премахнали пакетите, инсталирани от PPA, можете да продължите да премахвате PPA от вашите source.list.

Графично премахнете PPA

Отидете в Софтуер и актуализации и след това отидете в раздела Друг софтуер. Потърсете PPA, който искате да премахнете:

Тук имате две възможности. Или откажете избора на PPA или изберете опцията Remove.

Разликата е, че когато премахнете избора на запис от PPA, вашата система ще коментира записа на хранилището в неговия ppa_name.list файл в /etc/apt/sources.list.d, но ако изберете опцията Премахване, тя ще изтрие записа на хранилището. от файла ppa_name.list в директорията /etc/apt/sources.list.d.

И в двата случая файловете ppa_name.list остават в споменатата директория, дори и да е празна.

Безопасно ли е да се използва PPA?

Това е субективен въпрос. Пуристите се отвращават от АОП, защото по-голямата част от времето PPA са от разработчици от трети страни. Но в същото време PPA са популярни в света на Debian / Ubuntu, тъй като осигуряват по-лесна опция за инсталиране.

Що се отнася до сигурността, по-малко вероятно е да използвате PPA и вашата Linux система е хакната или инжектирана със злонамерен софтуер. Не си спомням, че такъв инцидент се е случвал досега.

Официалните PPA могат да се използват без да се мисли два пъти. Използването на неофициално PPA е изцяло ваше решение.

Като правило, трябва да избягвате да инсталирате програма чрез PPA на трета страна, ако програмата изисква достъп до sudo за изпълнение.

Какво мислите за използването на PPA?

Знам, че това е дълъг прочит, но исках да ви дам по-добро разбиране на PPA. Надявам се, че това подробно ръководство отговаря на повечето от вашите въпроси относно използването на PPA.

Ако имате повече въпроси относно PPA, моля не се колебайте да попитате в раздела за коментари.

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

Препоръчано

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