Журнал LinuxFormat - перейти на главную

LXF138:Управление пакетами

Материал из Linuxformat
Перейти к: навигация, поиск
Уст­ра­не­ние не­ис­прав­но­стей

Содержание

Управ­ле­ние па­ке­та­ми: про­бле­мы ре­ше­ны

Грэм Мор­ри­сон ре­ша­ет ряд основ­ных про­блем трех са­мых по­пулярных менед­жеров пакетов.

Mенед­жер па­ке­тов яв­ля­ет­ся неиз­беж­ным ат­ри­бу­том всех со­вре­мен­ных ди­ст­ри­бу­ти­вов. Это по­то­му, что для боль­шин­ства из нас ис­поль­зо­вание менед­же­ра па­ке­тов – един­ствен­ный спо­соб уста­нов­ки и уда­ления но­во­го про­грамм­но­го обес­пе­чения, а так­же мо­дерниза­ции ста­рых вер­сий и до­бав­ления об­нов­лений безо­пас­но­сти. Это ин­тер­фейс ме­ж­ду на­столь­ным ком­пь­ю­те­ром и ми­ром сво­бод­но­го ПО, и без него мы по­грязнем в ком­пи­ля­ци­ях и за­пусках со­мни­тель­ных би­нарников из Ин­тер­нета.

При внешней скром­но­сти, менед­же­ры па­ке­тов ре­ша­ют слож­ные за­да­чи. При уста­нов­ке про­грам­мы вро­де GIMP, к при­ме­ру, менед­жер па­ке­тов не толь­ко ска­чи­ва­ет ис­пол­няе­мый файл и уста­нав­ли­ва­ет его в ва­шей сис­те­ме. Он оп­ре­де­ля­ет части ПО, об­щие с дру­ги­ми при­ло­жения­ми, уста­нов­лен­ны­ми в ва­шей систе­ме, а так­же но­вые, и уста­нав­ли­ва­ет все эти за­ви­си­мо­сти на­ря­ду с за­про­шен­ны­ми па­ке­та­ми. При круп­ном об­нов­лении, та­ком как KDE с вер­сии 4.4 до 4.5, мо­гут по­тре­бо­вать­ся сотни за­ви­си­мо­стей, ты­ся­чи пе­ре­кре­ст­ных ссылок на ре­сур­сы и слож­ные по­сле­до­ва­тель­но­сти за­груз­ки па­ке­тов, раз­ре­шение за­ви­си­мо­стей, уста­нов­ка и уда­ление лишних фай­лов. И за­да­ча менед­же­ра па­ке­тов – обес­пе­чить как мож­но бо­лее плав­ную, безо­пас­ную и эф­фек­тив­ную ра­бо­ту. С уче­том всей этой слож­но­сти, не уди­ви­тель­но, что ка­кие-то ве­щи мо­гут иногда пой­ти не так. К сча­стью, ка­ж­дый из основ­ных ин­ст­ру­мен­тов управ­ления па­ке­та­ми пре­до­став­ля­ет свои ме­то­ды для ре­шения та­ких про­блем.

Но пре­ж­де чем всту­пить в борь­бу с ошиб­ка­ми, сто­ит от­ме­тить, что про­фи­лак­ти­ка все­гда луч­ше ле­чения, и прак­ти­че­ски все про­бле­мы «па­кет­но­го менедж­мен­та» бы­ва­ют у лю­дей, ис­поль­зую­щих ли­бо неофи­ци­аль­ные, ли­бо бе­та-хранили­ща, сто­ронние па­ке­ты или руч­ную уста­нов­ку. Луч­ший шанс не иметь по­доб­ных про­блем – из­бе­гать этих ме­то­дов. Боль­шин­ство ди­ст­ри­бу­ти­вов серь­ез­но за­бо­тят­ся о том, что­бы при уста­нов­ке об­нов­лений ва­ша систе­ма не ис­пор­ти­лась и что­бы па­ке­ты, доступ­ные с их соб­ствен­ных ре­по­зи­то­ри­ев, бы­ли мак­си­маль­но ста­биль­ны­ми.

Yum

Используют: Fedora, CentOS и Red Hat Enterprise Linux.

До то­го, как Ubuntu за­нял до­минирую­щие по­зи­ции, Red Hat Package Manager (RPM) был бли­же всех к стан­дарт­но­му фор­ма­ту ПО для уста­нов­ки, на ко­то­рый когда-ли­бо мог­ли рас­счи­ты­вать поль­зо­ва­те­ли Linux. Он и по-прежнему есть, ес­ли вы сле­ди­те за спе­ци­фи­ка­ци­ей Linux Standard Base или у вас один из мно­же­ства про­из­вод­ных от Red Hat ди­ст­ри­бу­ти­вов, ко­то­рые и се­го­дня придерживаются дан­ного фор­мата. Но наи­бо­лее по­пу­ляр­ным ныне яв­ля­ет­ся Fedora, ди­ст­ри­бу­тив со­об­ще­ства, от­поч­ко­ван­ный от ком­мер­че­ско­го Red Hat. Уже мно­го лет он ис­поль­зу­ет RPM, но скры­ва­ет боль­шую часть недостат­ков и слож­ность за гра­фи­че­ским ин­тер­фей­сом. В по­следних вер­си­ях при­ме­ня­ет­ся систе­ма PackageKit – это ин­тер­фейс вы­со­ко­го уров­ня для раз­лич­ных фор­ма­тов па­ке­тов, доступ­ных для боль­шин­ства ди­ст­ри­бу­ти­вов. В Kubuntu, на­при­мер, вы об­на­ру­жи­те, что управ­ление па­ке­та­ми осу­ще­ств­ля­ет­ся че­рез при­ло­жение KDE по умол­чанию – KPackageKit, хо­тя внут­ри идет уста­нов­ка Deb-фай­лов. То же са­мое и с Fedora, раз­ве что вме­сто Deb-фай­лов PackageKit ис­поль­зу­ет все тот же ста­рый RPM, вы­зы­вая дви­жок Yum для об­ра­бот­ки за­ви­си­мо­стей точ­но так же, как на про­тя­жении мно­гих лет. В ито­ге ва­ша систе­ма Fedora мо­жет стра­дать от ста­рых про­блем, и луч­ший спо­соб их ре­шения – от­кат на­зад на Yum, ста­рый ин­тер­фейс команд­ной стро­ки.

  • В Ка­кой па­кет на­до уста­нав­ли­вать?
В от­ли­чие от дру­гих менед­же­ров па­ке­тов, Yum вполне справ­ля­ет­ся с раз­ре­шением за­ви­си­мо­стей па­ке­тов для всех ви­дов за­про­сов. Од­на из наи­бо­лее по­лез­ных команд – yum provides; че­рез нее мож­но искать па­ке­ты, ко­то­рые бу­дут уста­нав­ли­вать файл или ка­та­лог. На­при­мер, yum provides /usr/lib/libaa.so.1 про­из­ве­дет по­иск па­ке­та нуж­ной биб­лио­те­ки; мож­но так­же ис­поль­зо­вать сим­во­лы под­ста­нов­ки для имен фай­лов и ка­та­ло­гов, что де­ла­ет эту коман­ду универ­саль­ной в ре­шении за­дач для руч­но­го раз­ре­шения за­ви­си­мо­стей.
  • В Как уста­но­вить про­блем­ные па­ке­ты?
Пер­вым де­лом по­про­буй­те са­мое об­щее ис­прав­ление в Yum, че­рез на­бор команд са­мо­ди­аг­но­сти­ки Yum. Сна­ча­ла по­смот­ри­те, нет ли про­блем с са­мим Yum, что мож­но сде­лать, на­брав yum check. Ес­ли на­ли­цо кон­фликт па­ке­тов, вы пой­ме­те, в чем ре­шение, да­же ес­ли это оз­на­ча­ет уда­ление про­бле­ма­тич­но­го па­ке­та до по­пыт­ки пе­реуста­но­вить нуж­ный па­кет. Рань­ше это ра­бо­та­ло; да­же по­втор­ная уста­нов­ка то­го же па­ке­та иногда по­мо­га­ет, ес­ли по­вре­ж­де­ны файл или ба­за дан­ных.


Ес­ли нет оче­вид­ных при­зна­ков про­бле­мы, на­бе­ри­те yum clean all для уда­ления кэ­ша, при­ме­няе­мо­го Yum для уско­рения уста­нов­ки па­ке­тов. Этот кэш мо­жет вы­звать про­бле­мы, ес­ли кэ­ши­ро­ван­ные фай­лы уста­ре­ли или как-то по­пор­че­ны. Без них но­вая уста­нов­ка по­лу­чит са­мые све­жие из доступ­ных фай­лов и ин­фор­ма­ции; по­сле это­го скоман­дуй­те yum update, что­бы за­од­но об­но­вить и ба­зу па­ке­тов.
Дру­гая рас­про­странен­ная про­бле­ма – невоз­мож­ность раз­ре­шения за­ви­си­мо­сти для оп­ре­де­лен­но­го па­ке­та. В вы­во­де коман­ды yum install это мо­жет быть по­ка­за­но как ошиб­ка, где уста­нов­лен­ный па­кет нель­зя об­но­вить до вер­сии, тре­буе­мой для дру­го­го па­ке­та, или до той, что счи­та­ет­ся доступ­ной в Yum.
Пре­ж­де чем пе­рей­ти к бо­лее слож­но­му ре­шению, сто­ит убе­дить­ся, что об­нов­ле­на и ва­ша систе­ма: ошиб­ка мо­жет возник­нуть, ес­ли про­изош­ли су­ще­ствен­ные из­менения па­ке­та в ре­по­зи­то­рии, а к ва­шей систе­ме они еще не под­гру­же­ны. Восполь­зуй­тесь ин­ст­ру­мен­том Software Update, скры­тым в ме­ню Ад­минист­ри­ро­вание [Administration], или на­бе­ри­те yum update в команд­ной стро­ке.
Ес­ли это не ра­бо­та­ет, бы­ва­ли при­ме­ры, когда день-дру­гой ожи­дания по­мо­га­ли ис­пра­вить непо­лад­ки с ме­та­дан­ны­ми на сер­ве­ре па­ке­тов – это спо­соб­но по­мочь ва­шей уста­нов­ке про­дол­жить ра­бо­ту без дальней­ших про­блем. Но ес­ли вы знае­те, что за­ви­си­мость не важ­на, или что вы уста­но­ви­ли но­вую вер­сию са­ми, вы мо­же­те по­про­бо­вать спря­тать го­ло­ву в пе­сок, до­ба­вив --skip-broken к коман­де yum install. Тогда про­блем­ный файл бу­дет про­сто обой­ден, а уста­нов­ка па­ке­та про­дол­же­на. Это мо­жет сра­бо­тать, а мо­жет и нет, в за­ви­си­мо­сти от важ­но­сти за­ви­си­мо­сти. Еще мож­но по­про­бо­вать за­пустить package-cleanup --problems для по­иска би­тых локаль­ных па­ке­тов, спо­соб­ных по­вли­ять на но­вый па­кет.
Ес­ли все это не по­мо­жет, мо­же­те най­ти и уста­но­вить би­тую за­ви­си­мость вруч­ную, но при­дет­ся при­бег­нуть к ин­тер­фей­су са­мо­го RPM.
  • В Мо­гу ли я обой­ти менед­жер па­ке­тов?
Да­же учи­ты­вая, что Yum управ­ля­ет все­ми за­ви­си­мо­стя­ми и об­нов­ления­ми, все-та­ки мож­но уста­но­вить свой соб­ствен­ный файл RPM-па­ке­та – коман­дой rpm. Обыч­но это необ­хо­ди­мо толь­ко ес­ли ваш па­кет не име­ет за­ви­си­мо­стей, или вы знае­те, что это об­но­вит или ис­пра­вит би­тый па­кет в те­ку­щей систе­ме. На­при­мер, при ошиб­ке об­нов­ления Yum, возник­шей по­то­му, что Yum не мо­жет най­ти доста­точ­но све­жую вер­сию кон­крет­но­го па­ке­та, мож­но по­искать этот па­кет в Ин­тернете и уста­но­вить его вруч­ную коман­дой rpm.
У нас недав­но бы­ли про­бле­мы с Fedora 12, ко­то­рая упор­но со­об­ща­ла, что не мо­жет най­ти nspr-devel-4.8.6, по­че­му и от­ка­зы­ва­лась от об­нов­ления. Ре­шение – по­искать он­лайн кор­рект­ный RPM, с уче­том но­ме­ра вер­сии ис­поль­зуе­мо­го ди­ст­ри­бу­ти­ва (в на­шем слу­чае – fc12) и ар­хи­тек­ту­ру про­цес­со­ра (i686). Мы про­сто вве­ли ‘nspr-devel-4.8.6 fc12 i686’ в стро­ку по­иска и за­гру­зи­ли по­лу­чен­ный файл. Он уста­нав­ли­ва­ет­ся ли­бо двой­ным щелч­ком по нему, или вы­зо­вом rpm -Uvh в команд­ной стро­ке. Ес­ли па­кет яв­ля­ет­ся неофи­ци­аль­ным, в команд­ной стро­ке на­до так­же до­ба­вить --nofiles --nodigest, а в худ­шем слу­чае, ес­ли RPM-па­кет от­ка­зы­ва­ет­ся уста­нав­ли­вать­ся, но вы уве­ре­ны, что па­кет пра­виль­ный – до­бавь­те --force для уста­нов­ки при­ло­жения, невзи­рая на то, счи­та­ет ли менед­жер па­ке­тов это хо­ро­шей иде­ей или нет.

Yeast  Менед­жер па­ке­тов ти­па на­ве­ди-и-щелкни, ко­то­рый ред­ко оши­ба­ет­ся

По­доб­но Fedora, OpenSUSE ис­поль­зу­ет RPM-па­ке­ты для уста­нов­ки но­во­го про­грамм­но­го обес­пе­чения. Но при­ло­жение для RPM от­ли­ча­ет­ся – оно на­зы­ва­ет­ся Zypp и скры­ва­ет­ся за все­объ­ем­лю­щей в OpenSUSE гра­фи­че­ской систе­мой на­строй­ки Yast. В ре­зуль­та­те вам да­ет­ся на­мно­го мень­ше во­ли по уст­ранению про­блем по сравнению с дру­ги­ми ди­ст­ри­бу­ти­ва­ми.

Оно бы­ва­ет и непло­хо. На­при­мер, гра­фи­че­ский ин­тер­фейс по­зво­ля­ет лег­ко до­бав­лять и уда­лять но­вые хранили­ща и GPG-клю­чи, необ­хо­ди­мые для про­вер­ки под­лин­но­сти па­ке­тов.

Са­мая частая про­бле­ма с OpenSUSE со­сто­ит в том, что хранили­ще ПО боль­ше не доступ­но. Это мо­жет про­изой­ти, ес­ли сайт недосту­пен в се­ти или ес­ли вы по­те­ряе­те свой уста­но­воч­ный диск, и тогда ре­шением бу­дет об­ра­тить­ся к Yast 2 Control Centre, что­бы уда­лить непод­хо­дя­щий ре­по­зи­то­рий из спи­ска доступ­ных источников и об­но­вить спи­сок па­ке­тов. Ес­ли нуж­но боль­ше кон­тро­ля над систе­мой, на­бе­ри­те коман­ду zypper в команд­ной стро­ке. Это ин­тер­фейс ин­ст­ру­мен­та управ­ления па­ке­та­ми, и его мож­но ис­поль­зо­вать для уста­нов­ки па­ке­тов без оп­ти­че­ских но­си­те­лей – как с --no-cd. Ес­ли уста­но­воч­ный па­кет не сра­бо­та­ет, ис­поль­зуй­те ар­гу­мент clean для очи­ст­ки локаль­но­го кэ­ша, и вы уз­нае­те боль­ше о том, по­че­му что-то не ла­дит­ся, за­гля­нув в жур­нал Zypp, ко­то­рый на­хо­дит­ся в /var/log/zipPer.log.

Ес­ли ниче­го не по­мо­га­ет, поль­зо­ва­те­ли OpenSUSE мо­гут при­менить те же коман­ды, что и поль­зо­ва­те­ли Fedora, и коман­да database rebuild долж­на ра­бо­тать.

Advanced Packaging Tool (APT)

Используют: Debian и его про­из­вод­ные, в осо­бен­но­сти Ubuntu.

Не уда­лось най­ти иско­мый па­кет? Иногда, осо­бен­но ес­ли вам неиз­вест­но точ­ное на­звание, най­ти нуж­ный па­кет бы­ва­ет непро­сто. Один из при­ме­ров – биб­лио­те­ка SDL, по­сколь­ку она по­став­ля­ет­ся как груп­па раз­лич­ных па­ке­тов, ко­то­рые тре­бу­ют уста­нов­ки, толь­ко ес­ли вы на­ме­ре­ны их ис­поль­зо­вать. Ти­пич­ная иг­ра SDL мо­жет вклю­чать пе­ре­чень тре­бо­ваний – на­при­мер, мо­дуль мик­ше­ра – и их в менед­же­ре па­ке­тов не очень-то най­дешь.

Ес­ли вы знае­те, что ище­те, на­при­мер, биб­лио­те­ку, убе­ди­тесь, что к по­иску до­бав­лен пре­фикс lib. Synaptic не очень хо­рош для по­иска по­доб­ных па­ке­тов, и вы мо­же­те об­на­ру­жить, что иско­мое на­хо­дит­ся глу­бо­ко внизу спи­ска – libsdl-mixer ред­ко по­яв­ля­ет­ся в верхней части страницы ре­зуль­та­тов. В этих слу­ча­ях мо­жет быть про­ще искать кон­крет­ный файл, не об­ра­ща­ясь к бестол­ко­во­му по­иску Synaptics. Но что­бы иметь воз­мож­ность про­де­лать этот трюк, нуж­но уста­но­вить дру­гой па­кет. Он на­зы­ва­ет­ся apt-file и за­пуска­ет­ся из команд­ной стро­ки. На­бе­ри­те apt-file search libsdl-mixer, на­при­мер, и вам бу­дут пред­став­ле­ны все па­ке­ты, вклю­чаю­щие дан­ный файл. Это так­же удоб­но при по­иске па­ке­тов для уда­ления. Ес­ли вы знае­те имя фай­ла, най­ди­те его и уда­ли­те па­кет, уста­но­вив­ший файл, ли­бо в команд­ной стро­ке, ли­бо из Synaptic.

  • В А ес­ли вы­бран­ные па­ке­ты не уста­нав­ли­ва­ют­ся?
Боль­шин­ство основ­ных систем управ­ления па­ке­та­ми ис­поль­зу­ют локаль­ную ба­зу дан­ных доступ­ных им фай­лов. Это по­мо­га­ет при рас­че­те за­ви­си­мо­стей, по­сколь­ку менед­же­ру не нуж­но при­бе­гать к оп­ти­че­ско­му диску или ин­тернет-сер­ве­ру, пре­ж­де чем он смо­жет со­об­щить поль­зо­ва­те­лю, что нуж­но уста­но­вить. На­при­мер, ес­ли вы ис­поль­зуе­те гра­фи­че­ский ин­тер­фейс Synaptic в Ubuntu, бу­дет про­ве­ре­на локаль­ная ба­за дан­ных для за­ви­си­мо­стей, за­тем от­кро­ет­ся ок­но с со­об­щением, что нуж­но уста­но­вить для ва­ше­го ис­ход­но­го па­ке­та. Ес­ли сле­дую­щий шаг не уда­ет­ся сде­лать – зна­чит, па­ке­ты, пе­ре­чис­лен­ные в локаль­ной ба­зе дан­ных, не кор­ре­ли­ру­ют с те­ми, что на­хо­дят­ся на уда­лен­ном сер­ве­ре. Ча­ще все­го это про­ис­хо­дит с ди­ст­ри­бу­ти­ва­ми вро­де Ubuntu, а не Debian, по­то­му что Ubuntu по­сто­ян­но об­нов­ля­ет­ся – ес­ли вы ис­поль­зуе­те па­ке­ты сто­ронних про­из­во­ди­те­лей лю­бо­го ро­да или по­лу­офи­ци­аль­ные об­нов­ления KDE, есть хо­ро­ший шанс, что ра­но или позд­но вы по­имее­те про­бле­мы с уста­нов­кой свя­зан­ных па­ке­тов.
Ре­шить их лег­ко: про­сто об­но­ви­те ба­зу дан­ных. Это бы­ст­ро и лег­ко де­ла­ет­ся из Synaptic – на­жа­ти­ем на кноп­ку Reload. Synaptic обыч­но об­нов­ля­ет ба­зу при за­пуске, но по ка­кой-то при­чине об­нов­ление мо­жет быть про­пу­ще­но. То же мож­но сде­лать из команд­ной стро­ки, на­брав apt-get update. Команд­ная стро­ка часто яв­ля­ет­ся луч­шим спо­со­бом для уст­ранения непо­ла­док в па­кет­ном ин­ст­ру­мен­та­рии, по­то­му что она стре­мит­ся дать луч­шую об­рат­ную связь, чем гра­фи­че­ский ин­тер­фейс, а так­же пред­ла­га­ет бо­лее ши­ро­кий диа­па­зон ва­ри­ан­тов для ре­шения про­бле­мы.
Ес­ли сбой не ис­чез или ва­ша систе­ма вы­да­ет ошиб­ку при об­нов­лении, ис­правь­те ба­зу дан­ных систе­мы apt-get. Спер­ва по­про­буй­те коман­ду apt-get -f install. Она по­пы­та­ет­ся по­чинить все па­ке­ты со сло­ман­ны­ми за­ви­си­мо­стя­ми, и это удоб­но, ес­ли что-то уста­нов­ле­но толь­ко на­по­ло­ви­ну. Кро­ме то­го, по­про­буй­те sudo dpkg --configure -a, что слу­жит при­мер­но тем же це­лям. Ес­ли кон­крет­ные па­ке­ты все еще вы­зы­ва­ют про­бле­мы, луч­шим ре­шением бу­дет уда­лить и пе­реуста­но­вить их.
  • В Что де­лать с ошиб­кой непро­ве­рен­ной GPG-подпи­си?
Иногда па­кет не уста­нав­ли­ва­ет­ся, и един­ствен­ная ошиб­ка, ко­то­рую вы ви­ди­те – жа­ло­бы на непро­ве­рен­ные подпи­си. Это, как пра­ви­ло, про­ис­хо­дит толь­ко тогда, когда вы вруч­ную до­ба­ви­ли сто­ронний ре­по­зи­то­рий – ли­бо че­рез Synaptic, ли­бо впи­сав ад­рес ре­по­зи­то­рия в /etc/apt/sources.list без со­от­вет­ствую­ще­го клю­ча. Ошиб­ка оз­на­ча­ет, что со­дер­жи­мое па­ке­та нель­зя про­ве­рить по клю­чу ре­по­зи­то­рия – дру­ги­ми сло­ва­ми, ваш ди­ст­ри­бу­тив не мо­жет быть аб­со­лют­но уве­рен, что локаль­ная ко­пия ска­чан­но­го па­ке­та та­кая же, как опуб­ли­ко­ван­ная в ре­по­зи­то­рии. В тео­рии, уда­лен­ный сайт мо­жет быть взло­ман, а его па­ке­ты за­менены вре­до­носны­ми аль­тер­на­ти­ва­ми. Имен­но по­это­му поч­ти все хранили­ща подпи­сы­ва­ют па­ке­ты сек­рет­ным клю­чом, и по­это­му ваш менед­жер па­ке­тов хо­чет и не мо­жет ис­поль­зо­вать пуб­лич­ный ключ для ве­ри­фи­ка­ции па­ке­та.
Про­бле­ма в том, что этот ключ не был до­бав­лен; про­стое ре­шение – из­менить спо­соб до­бав­ления ре­по­зи­то­ри­ев в ва­шу систе­му. На­при­мер, восполь­зуй­тесь коман­дой add-apt-repository — она обыч­но до­бав­ля­ет ин­фор­ма­цию о па­ке­тах и ключ к ва­шей локаль­ной связ­ке клю­чей (LXF137). Ввод sudo add-apt-repository ppa:chromium-daily до­ба­вит к при­ме­ру PPA-ре­по­зи­то­рий брау­зе­ра Chromium. Вы так­же мо­же­те до­ба­вить ключ, ес­ли вы уже до­ба­ви­ли ре­по­зи­то­рий, и из­ба­вить­ся от оши­бок при об­нов­лении и уста­нов­ке ва­ше­го па­ке­та. Но на­до знать имя сер­ве­ра, на ко­то­ром на­хо­дит­ся ключ, и хэш клю­ча – хо­тя имя долж­но вой­ти в со­об­щение об ошиб­ке, с ко­то­рой вы стал­ки­вае­тесь. За­тем вве­ди­те apt-key --keyserver keyserver --recv-keys keyed и apt-get update.
  • В Как уста­но­вить ска­чан­ный Deb-файл?
Для Debian-систем, эк­ви­ва­лент rpm для команд­ной стро­ки – dpkg, и он по­зво­лит вам уста­но­вить файл Deb, ес­ли вы по­лу­чи­ли па­кет в та­ком ви­де. Вам нуж­но все­го лишь до­ба­вить ар­гу­мент -i, но боль­шин­ство ди­ст­ри­бу­ти­вов сде­ла­ют это ав­то­ма­ти­че­ски, ес­ли вы на­жме­те на па­кет из ва­ше­го ок­ру­жения ра­бо­че­го сто­ла. Ес­ли на­жать кноп­ку Tab по­сле вво­да dpkg, что­бы по­лу­чить спи­сок всех команд, на­чи­наю­щих­ся с тех же букв, вы уви­ди­те, что коман­да идет с боль­шим ко­ли­че­ством ути­лит для соз­дания, ре­дак­ти­ро­вания и из­вле­чения со­дер­жи­мо­го фай­ла Deb. Хо­тя ни од­на не по­мо­жет с ва­ши­ми про­бле­ма­ми непо­сред­ствен­но, мож­но най­ти до­полнитель­ные под­сказ­ки, ес­ли вы го­то­вы раз­бить файл па­ке­та на со­став­ные части и про­ве­рить ка­ж­дый ком­понент. Это по­мо­жет не толь­ко уста­нов­ке, но и со­об­ще­ству, когда вы пе­ре­да­ди­те ему ис­прав­лен­ную вер­сию.
Управ­ление па­ке­та­ми зна­чи­тель­но улуч­ши­лось за по­следние пять лет, и сей­час яв­ля­ет­ся до­воль­но про­зрач­ным, за исклю­чением про­блем­ных слу­ча­ев. Как и мно­гие дру­гие ас­пек­ты Linux, про­бле­мы часто вы­зы­ва­ют се­бя са­ми, ли­бо из-за непод­дер­жи­вае­мых ре­по­зи­то­ри­ев или па­ке­тов, ли­бо из-за несо­вмести­мо­сти с ра­бо­чей систе­мой. Но ес­ли есть спо­соб что-то сло­мать, дол­жен быть спо­соб и ис­пра­вить это – а рост и зре­лость менед­же­ров па­ке­тов оз­на­ча­ет, что такое ста­но­вит­ся все лег­че.

Па­кет­ный аг­но­сти­цизм  Фор­ма­ты па­ке­тов для ди­ст­ри­бу­ти­вов не дог­ма

Обыч­но пред­по­ла­га­ет­ся, что поль­зо­ва­те­лям Ubuntu тре­бу­ют­ся фай­лы па­ке­тов Deb, а поль­зо­ва­те­ли Fedora при­дер­жи­ва­ют­ся RPM. Для офи­ци­аль­ных па­ке­тов это вер­но, но вполне до­пусти­мо при­менение и дру­гих фор­ма­тов па­ке­тов, от­ли­чаю­щих­ся от при­ня­то­го в ди­ст­ри­бу­ти­ве. Мож­но, на­при­мер, уста­но­вить rpm на систе­ме Ubuntu или dpkg для управ­ления Deb-фай­ла­ми на Fedora. При же­лании мож­но да­же уста­но­вить Yum на OpenSUSE.

Но луч­шие и наи­бо­лее со­стоя­тель­ные ре­зуль­та­ты вы по­лу­чи­те с по­мо­щью ин­ст­ру­мен­та под на­званием Alien. Он не до­бав­ля­ет­ся в ва­шу систе­му как но­вый ин­ст­ру­мент управ­ления па­ке­та­ми, а по­зво­лит вам обой­тись те­ку­щим, так как пре­об­ра­зу­ет фор­мат па­ке­тов в при­ня­тый в ва­шей систе­ме.

На­при­мер, вы мо­же­те быть поль­зо­ва­те­лем Ubuntu, а иг­ра, в ко­то­рую вам хо­чет­ся по­иг­рать, пред­ла­га­ет толь­ко дво­ич­ные па­ке­ты RPM. Тогда в Alien пре­об­ра­зуй­те этот файл в Deb-фор­мат, а за­тем уста­но­ви­те иг­ру на ва­шей систе­ме, в ком­плек­те с за­ви­си­мо­стя­ми, че­рез Synaptic или PackageKit. Прав­да, тут при­сут­ству­ет эле­мент проб и оши­бок, но для по­дав­ляю­ще­го боль­шин­ства обыч­ных при­ло­жений мы на­шли Alien очень удач­ным.

По­сле уста­нов­ки Alien вве­ди­те alien -d -k, а за­тем рас­по­ло­жение фай­ла RPM для соз­дания фай­ла Deb, или за­мените -d на -r для соз­дания RPM. Ито­го­вый па­кет мож­но за­тем уста­но­вить ли­бо двой­ным щелч­ком на фай­ле, ли­бо с по­мо­щью со­от­вет­ствую­щих ин­ст­ру­мен­тов команд­ной стро­ки. Ес­ли вы уве­ре­ны, что вам по­ве­зет, мож­но про­сто ис­поль­зо­вать ар­гу­мент -i, что­бы пре­об­ра­зо­вать па­кет в соб­ствен­ный фор­мат ва­ше­го ди­ст­ри­бу­ти­ва и уста­но­вить его в один за­ход.

Персональные инструменты
купить
подписаться
Яндекс.Метрика