Online video hd

Смотреть 365 видео

Официальный сайт travelspo 24/7/365

Смотреть видео бесплатно

ava1ar 17.10.2009 03:25

ArchlinuxСледуем Arch Way при установке и обновлении ПО

Цель данной статьи - рассказать о подходах, которые приняты при установке ПО в дистрибутиве Arch Linux. Если Вам кажется, что в этой области Вы - пользователь Arch Linux со стажем - все знаете и я не открою ничего нового, думаю Вы заблуждаетесь. Будучи активным пользователем этого дистрибутива на протяжении уже почти двух лет я не перестаю открывать в нем новые и новые интересные особенности и неожиданные возможности, как например сегодня... Но об этом позже, а пока начнем с самого начала: итак, что же такое Arch Way в данном конкретном применении?

Случай первый (тривиальный) - нам нужно установить приложение из репозитория в систему. Решается, как известно, командой:

1
pacman -S application_name


или (что в данном случае приводит к аналогичному результату)

1
yaourt -S application_name


yaourt, если кто-то еще не знает, это "обертка" вокруг pacman'a с набором очень "вкусных" возможностей, некоторые из которых буду описаны ниже.
Итак, проблема решена, пользователь доволен. Идем дальше.

Случай второй: приложения в репозитории не оказалось. Как поступить в данном случае? Правильный ответ - поискать пакет в AUR (Arch Linux User Repository). AUR - это репозиторий, пополняемый сообществом пользователей Arch Linux. Содержит на на данный момент более 17000 пакетов, среди которых можно найти практически все, что может понадобится. Содержит он не бинарные пакеты, а специальные пакеты для ABS (Arch Build System). ABS это метод сборки пакетов из исходных кодов, принятый в Arch Linux. Вкратце - позволяет собрать из исходных текстов пакет, который потом инсталлируется пакетным менеджером. Кстати, одна из возможностей yaourt - поиск, сборка и установка программ из этого репозитория. Итак, пакет нашелся, собрался, ситуация разрешилась. Продолжим.

Случай третий - нужного приложения не оказалось и в AUR'е. Тогда напишем PKGBUILD самостоятельно, и, если приложение может оказаться полезным еще ком-нибудь кроме Вас, и, что более важно, Вы собираетесь его использовать и поддерживать его PKGBUILD, то его следует выложить его в AUR. Возможно Вы кому-то этим очень поможете и сэкономите время:)

Итак, с установкой программ в стиле Arch Way вроде бы разобрались. Теперь перейдем к более редким, но не менее интересным ситуациям - решению проблем с уже установленными приложениями.

Проблема первая. У нас установлены пакет-библиотека LibA и зависящий от него пакет-приложение AppB. Оба установлены из официального репозитория и прекрасно работают. Потом происходит следующее - пакет LibА обновляется до новой версии, и приложение AppB перестает работать. Почему? Дело в том, что AppB собиралось еще со старой версией LibA, и, статически слинковано с ним. Решение - пересборка приложения AppB c новой версией LibА. Это задача для мэйнтейнера пакета AppB, которая иногда решается им быстр (в течении дней, и даже часов), а иногда (к счастью, редко) остается висеть на недели... Если вы думаете, что Вам придется ждать новой версии AppB в репозитории, Вы ... отчасти правы, но, следуя Arch Way следует просто пересобрать данное приложение самостоятельно, у себя на машине. И для этого совсем не нужно скачивать из SVN последний PKGBUILD и собирать пакет на его основе (как я поступал будучи новичком в Арче), а всего-лишь использовав команду

1
yaourt -Sb Application_B


которая выполнит все самостоятельно. Вот такой вот Arch Way.

Закончить же статью мне бы хотелось описанием еще более интересного и сложного случая, с которым я впервые столкнулся сегодня, и который тоже удалось решить в таком-же элегантном стиле :) К тому же, позволю себе быть более конкретным, так как проблема актуальна и в данный момент, а шаги все пока свежи в памяти. Итак, проблема вторая начиналась так же, как и предыдущая: во время очередного обновления системы, до последней актуальной версии в том числе был обновлен и пакет gdl (до 2.28.0-1). Этот пакет имеется в зависимостях у Python Machine - PyGTK IDE, которую я частенько использую и собираю из AUR. Python Machine, как Python -приложение, работает с gdl посредством "биндингов" из пакета gnome-python-extras, который не обновился вместе в gdl, и перестал с ней работать. Попытка пересборки gnome-python-extras из исходников посредством

1
yaourt -Sb gnome-python-extras


не увенчалась успехом, т.к. gdl значительно изменился в версии 2.28 и gnome-python-extras нужно пропатчить для успешной сборки и использования. Я задумался: как же поступить в такой ситуации? Неужели придется отказаться от Arch Way и все же скачивать и править PKGBUILD, пересобирать пакет и заменять им пакет из репозитория? Согласитесь, не очень красивый метод. Однако выход был найден - customizepkg. Этот скрипт, работая в паре с yaourt позволяет на лету модифицировать PKGBUILD, который использует yaourt при пересборке пакета из репозитория из исходников. Используя customizepkg мне удалось решить и эту проблему, сохраняя элегантность и не отступая от Arch Way.

P.S. Статья получилась несколько громоздкой, надеюсь хотя бы кто-то из читателей найдет в ней что-то интересное и полезное для себя.
P.P.S. Подробнее о customizepkg в моей следующей статье - пока еще сам с ним разбираюсь, а информации в сети об этой утилите совсем немного.


Тэги: ArchLinux ArchWay pacman yaourt
+ 18 -
Похожие Поделиться

ava1ar 17.10.2009 03:41 #
+ 1 -
Кстати, немного оффтопик, но режет глаза - разработчики пишут Arch Linux в два слова. Если можно, исправьте название блога со слитного написание на раздельное, думаю так будет правильнее.
betruger72 17.10.2009 05:19 #
+ 2 -
спасибо, про -Sb как-то не знал )
Username 17.10.2009 10:07 #
+ 0 -
пост хорош.
ИМХО, стали раздражать всякие Arch-way, Gentoo-way и др. Мне кажется, это не более чем пеар.
digiwhite 17.10.2009 10:44 #
+ 1 -
С одной стороны это не более чем действительность при использовании того или иного дистрибутива. С другой - это всего лишь короткое обозначение того, по каким принципам и правилам происходит контроль установки/обновления/удаления софта в том или ином дистрибутиве. И обозначать все это коротким, "дистрибутиво-зависимым" словосочетанием вполне естественно.
ava1ar 17.10.2009 12:44 #
+ 0 -
Да, Вы правы, именно это и имелось в виду
ava1ar 17.10.2009 12:43 #
+ 2 -
Мне кажется, это не более чем пеар

Не согласен. Я бы назвал это "Культурой использования дистрибутива" - может немного пафосно, но зато отражает суть. Можно выберать путь configure && make && make install, а можно потратить еще немного времени на изучение лбимого дистрибутива и поступать так, как в нем принято - будь то pacman/yaourt/abs в арче или dpatch/dpkg-buildpackage в убунту\дебиане и наверняка что-то подобное в rpm-based системах (с ними знаком меньше). Мой принцип - если использовать дистрибутив - то делать это в стиле , который предлагает этот дистрибутив - ведь это наиболее простой и удобный подход.
Username 17.10.2009 13:22 #
+ -3 -
ну знаешь, почему-то другие дистрибутивы пафосом по использованию его именно "культурно" - не страдают. Нигде не видел opensuse-way slackware-way, ubuntu-way и пр.
ЗЫ в рпм - yum.
ava1ar 17.10.2009 13:42 #
+ 3 -
Да, не пафос это, а просто набор практик, принятых в данном конкретном дистрибутиве. Если Arch Way режет слух, пускай будут Arch Linux Best Practices. Идея - просто рассказать о том, как те или иные вещи делаются в конкретном дистрибутиве с применением его инструментов.
ner_uto 17.10.2009 13:58 #
+ 0 -
О... целиком и полностью согласен:)
zwey 21.10.2009 10:39 #
+ 0 -
zypper в opensuse
zivot_je_cudo 21.10.2009 11:04 #
+ 0 -
Гугель говорит "Slackware way: creating packages from source and use installpkg for install."
"Вей" рождается, когда у кого-то своя дорога.
Арч-вей, генту-вей, слака-вей существуют, так как используются, в основном, красноглазиками и прочими фанатично настроенными пользователями. Красноглазие рождается не только, может быть, из-за неких трудностей в личной жизни, а прежде всего из-за тяги к знаниям. Что ни говори, а пафос осилившего даже мало-мальски красноглазые дистры оправдан, особенно на фоне убунту-сусе-мандривоюзеров. Когда красноглазик лезет в код, пишет метровые конфиги для вим, шарится в tcp/ip, убунту-сусе-юзер не может прописать прокси в синаптике и просит скрины. Так уж сложилось.
А у остальных есть только "остальные-вей".
digiwhite 17.10.2009 10:36 #
+ 0 -
P.S. Статья получилась несколько громоздкой, надеюсь хотя бы кто-то из читателей найдет в ней что-то интересное и полезное для себя.


Не-не-не :) Все отлично. Коротко и по делу. Прочитал с интересом. Спасибо!
ava1ar 17.10.2009 12:22 #
+ 1 -
:) Рад что понравилось. Буду писать еще.
m0nhawk 17.10.2009 11:44 #
+ 1 -
А вот про -Sb не знал :)
А за статью отдельное спасибо, хоть букв и много, но легко читается.
ner_uto 17.10.2009 13:16 #
+ -1 -
Познавательно конечно...
Но я вот не понял, в чем же тут Way Arch'а. Это - не более, чем мануал по установке программ и называть так громко пост...
pacman -S application_name ничем не лучше и не хуже apt-get install application_name и других команд для установки пакетов. Я бы даже сказал... не холивара ради, а просто так думаю, что команды apt-get проще запомнить, чем ключи pacman
lockie 17.10.2009 13:48 #
+ 1 -
На самом деле, если долго сидишь под опр. дистрибутивом, часто используемые специфичные команды въедаются не то что в мозг, а непосредственно в пальцы :)
И да, у yaourt один из вариантов синтаксиса даже проще, чем у aptitude/apt-get:
debian# apt-get install package
arch$ yaourt package
Username 17.10.2009 18:56 #
+ 0 -
вообще-то различие в отсутствии слова - просто смешно. Нашел, чем аргументировать. Алсо, yaourt - не основной пакетный менеджер в арче.
lockie 17.10.2009 19:02 #
+ 0 -
Соль какбэ в том, что
>проще запомнить
Username 17.10.2009 19:05 #
+ 0 -
по-моему, только дурачок не запомнит apt-get install, zypper install, yum install, aptitude install.......
exelens 17.10.2009 19:36 #
+ -2 -
Полностью согласен
digiwhite 17.10.2009 20:12 #
+ 0 -
По моему welinux была не фанатично настроена.
exelens 17.10.2009 20:18 #
+ 0 -
Причём тут фанатична или нет если обсуждается установка пакетов?
Kraplax 20.10.2009 13:21 #
+ 1 -
С другой стороны, это же обычно sudo apt-get install package, не так ли? То есть, мало того что это на два слова больше, чем в yaourt package, так еще
  • apt-get - слово с дефисом, что не очень удобно набирать (не в том плане что фиг запомнишь, а просто лишних полдвижения пальцами). Кроме того пользуясь табом для автозаполнения после дефиса оно спотыкается, ибо есть еще apt-cache и что-то еще. Опять же лишние теложвижения, которые очень меня раздражали в свое время.
  • если вы забыли написать sudo, то приходится опять-таки делать лишние телодвижения
  • Слово install на самом деле как-то лишнее. Хотя да, с точки зрения обычного пользователя это больше соответствует естественному языку (мол, товарищь Apt-get, установи мне вот этот пакет). Однако опять же естественный язык неплох для новичков, тогда как уверенные пользователи консоли предпочтут ключ длиной в 1 символ
  • Для того чтобы не устанавливать пакет, а для начала найти какой-то пакет содержащий указанное слово нужно изменять два слова в команде. Если опять же ссылаться на естественные языковые конструкции, то совершенно непонятно почему apt-get может устанавливать, но его нельзя попросить искать.

Сложите все эти аспекты и получите то, что действительно отличает yaourt от apt-get install и то, за что и ценят yaourt.
А запомнил-не запомнил - тоже важно. Да, как новичок линукса я мог не знать разницы между apt-get и apt-install, мог не запомнить или попросту не знать их. Это вы сейчас матерый пользователь, но все мы начинали с удивления от способа устанавливать программы в Linux дистрибутивах (уже не говоря о том, что удивления было от GUI, а консольные варианты вообще некоторых в шок вводят)
ava1ar 17.10.2009 13:56 #
+ 1 -
Way арча, да и любого другого дистрибутива, как-раз начинается там, где pacman -S / apt-get install/ yum install заканчивается, т.е в тех случаях когда пакетный менеджер ожой командой нам помочь не может. В этом случае возможны несколько вариантов:
1) не ставить данную программу
2) поставить ее через configure && make && make install
3) (правильный) собрать пакет, специфичным для данного дистрибутива способом и устновить его в систему пакетным менеджером
pacman -S application_name ничем не лучше и не хуже apt-get install application_name и других команд для установки пакетов

да не хотел я ни с кем мерится в этом посте, просто хотел рассказать о Вот как-раз о том, как в Арче реализован третий (правильный) метод установки ПО не из репозитория. Для Debian/Ubuntu можно написать такую же статью про Debian Way, где было бы написано про dpatch и dpkg-buildpackage (наподобие этой) - прочитал бы с удовольствием.
Username 17.10.2009 18:57 #
+ -2 -
по-моему ты просто херово знаешь возможности других менеджеров. Разруливать депенденсы - это стандартная задача каждого, вариантов ты че-т маловато предложил.
ava1ar 17.10.2009 20:47 #
+ 1 -
Так я и не рассматривал случай, когда пакетный менеджер может справится с задачей - поставить пакет одной командой может любой мало-мальски знающий человек. В посте говорится о том что делать, если нужной программы в репозитории не оказалось и как ее правильно собрать и поставить в дистрибутиве arch linux
Username 17.10.2009 21:24 #
+ -4 -
я прошу прощения, но ОЛОЛО.
В посте говорится о том что делать, если нужной программы в репозитории не оказалось

т.е. ставить через yaourt - это не из репов? И собирать pkgbuild - действительно простое и нужное решение. Вот что я скажу. Во-первых, AUR - это не дистрибутив арч линукс. Арч - это только репозитарий pacman'a, составляемый мейнтенерами арча, которые тщательно подбирают софт и как-никак за ним следят.
AUR - это своего рода launchpad в убунтах, только хуже. Почему? Потому что никто не мешает построить запихать скрипт rm -Rf в пакет, залить в реп и смотреть, сколько его раз его скачают. И не надо мне говорить, что "я каждый раз просматриваю содержимое пакета, прежде чем поставить его из AUR'a" - понятно, что ты просто тыкаешь y побыстрее.
Прошу прощения, но я чувствую, что поторопился с плюсом за пост в стиле "все дерьмо, а yaourt Д'Артаньян"

ЗЫ предрекаю уже вой арчеводов. Надоели флеймы по поводу Arch-way
ava1ar 17.10.2009 21:57 #
+ 3 -
Пост был от арчевода для арчеводов. Если Вам не нравится арчлинукс - не читайте постов из соответствующего блога.
И еще - неужели я где-то в посте как-то ущемил плохо охарактеризовал другие пакетных менеджеры и дистрибутивы? Данным постом я делюсь опытом с другими арчеводами, а не меряюсь длиной пакетных менеджеров в разных дистрибутивах.
На будущее - все мои посты в блоге Archlinux будут адресованы арчеводам или тем, кто интертесуется Арчем. Арчененавистники могут не тратить свое время на чтение и обсуждение.
Далее буду отвечать на комментарии только по теме статьи.
digiwhite 18.10.2009 02:00 #
+ 1 -
Вот смотрю в последние несколько дней на ваши комментарии. Вы как-то все более и более неадекватны.

Вы как бы чем голословно утверждать, запихайте в AUR скрипт типа rm -Rf. А не голословно утверждайте.

Вообще складывается впечатление, что вы прямо-таки арче-ненавистник какой-то.
Kraplax 20.10.2009 13:25 #
+ 1 -
Вот смотрю в последние несколько дней на ваши комментарии. Вы как-то все более и более неадекватны.
Складывается скорее впечатление, что учетку увели >.>
avr 30.10.2009 02:36 #
+ 0 -
Хорошая статья, особенно для новичков Arch Linux
Пока я не сталкивался с такой ситуацией, но думаю, что все впереди
wilful 29.05.2010 09:39 #
+ 1 -
Не было подобных ситуаций, не забывайте -Sy и будет у вас всё нормально, пакетная база обновляется синхронно, вы видимо с другой планеты. АУР для девочек и труъ со специфическими требованиями, а также для поддержки x64, если лень либы 32 рыть.
man pacman, однако.

Смотреть видео онлайн

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн