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

LXF141:yast

Материал из Linuxformat
Версия от 14:22, 24 апреля 2012; Crazy Rebel (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
YaST

Содержание

YaST Дер­жи под кон­тро­лем

По­жа­луй, клю­че­вой осо­бен­но­стью ди­ст­ри­бу­ти­ва openSUSE яв­ля­ет­ся его фир­мен­ный ин­ст­ру­мент ус­та­нов­ки и на­строй­ки сис­те­мы – YaST. Хо­ти­те уз­нать боль­ше? Ан­тон Рез­ник рас­ска­жет.


Строч­ка за строч­кой YaST на­чи­нал по­яв­лять­ся на свет в ян­ва­ре 1995 го­да. Тогда, си­дя зимними ве­че­ра­ми, раз­ра­бот­чи­ки мо­ло­дой ком­пании S.u.S.E занима­лись раз­ра­бот­кой удоб­ной про­грам­мы управ­ления сис­те­мой. Они по­ду­ма­ли, что на­строй­ка сис­те­мы с по­мо­щью мно­же­ст­ва скрип­тов слож­на, да и на­ли­чие ком­плекс­ной и спе­ци­аль­ной про­грам­мы придаст их ди­ст­ри­бу­тиву уникаль­ность. Пер­вые ре­ли­зы YaST поя­ви­лись в со­би­рае­мом тогда ди­ст­ри­бу­ти­ве на осно­ве Slackware. Но уже в но­яб­ре де­вя­но­сто пя­то­го вер­сия 0.43 вы­шла в со­ста­ве пер­во­го ди­ст­ри­бу­ти­ва S.u.S.E Linux. Так YaST стал стан­дарт­ной про­грам­мой управ­ления сис­те­мой в ди­ст­ри­бу­ти­вах SUSE.

В но­яб­ре 1999 го­да раз­ра­бот­ка YaST пе­ре­шла на но­вый уро­вень. Раз­ра­бот­чи­ки анон­си­ро­ва­ли YaST2, раз­ви­тый дви­жок ко­то­ро­го все еще ис­поль­зу­ет­ся. Мо­дуль­ная сис­те­ма по­зво­ли­ла про­грам­ме раз­ви­вать­ся очень бы­ст­ро. Так, к 2004 го­ду в YaST бы­ло уже 75 от­дель­ных мо­ду­лей, для на­строй­ки прак­ти­че­­ски ка­ж­дой час­ти сис­те­мы. Но в этом же го­ду слу­чи­лось дру­гое, бо­лее ин­те­рес­ное со­бы­тие. Как мы зна­ем, в ян­ва­ре 2004 за­вер­ши­лась сдел­ка по по­куп­ке ком­панией Novell ком­пании SuSE Linux AG. Пре­ж­де чем за­пустить сво­бод­ный про­ект openSUSE, Novell ре­ши­ла опуб­ли­ко­вать ис­ход­ный код YaST под ли­цен­зи­ей GPL. Ска­зать, что раз­ра­бот­ка по­шла бы­ст­рее – не ска­зать ниче­го.

К раз­ра­бот­ке сис­те­мы под­клю­чи­лись эн­ту­зиа­сты-ха­ке­ры со все­го ми­ра, и скром­ная ко­ман­да раз­ра­бот­чи­ков по­полнилась. боль­шим ко­ли­че­­ст­вом доб­ро­воль­ных тес­те­ров. По­лу­чая за­плат­ки и пред­ло­жения, от­зы­вы и за­ме­чания, раз­ра­бот­чи­ки про­дол­жа­ют соз­да­вать и раз­ви­вать YaST, де­лая его луч­ше и удобнее.

Еще один...

Есть идея пред­ло­жить ко­ман­де раз­ра­бот­чи­ков по­ме­нять офи­ци­аль­ную рас­шиф­ров­ку аб­бре­виа­ту­ры YaST. Сей­час она зна­чит Yet another Setup Tool (Еще один Ин­ст­ру­мент На­строй­ки). Но те, кто зна­ет мощь этой про­грам­мы, пре­крас­но понима­ют, что это не про­сто «еще один»...

Как от­ме­ча­лось вы­ше, YaST обладает мо­дуль­ной струк­ту­рой, то есть по сути яв­ля­ет­ся про­сто стар­те­ром от­дель­ных от­ве­чаю­щих за что-ли­бо мо­ду­лей. Мо­ду­ли по­де­ле­ны на груп­пы: Про­грамм­ное обес­пе­чение, Обо­ру­до­вание, Поль­зо­ва­те­ли и безо­пас­ность, Се­тевые служ­бы, Се­те­вые уст­рой­ст­ва, Сис­те­ма, Вир­туа­ли­за­ция и дру­гие. И это толь­ко на­звания групп; в груп­пе – на­бор мо­ду­лей, ка­ж­дый из ко­то­рых «де­ла­ет что-то од­но и де­ла­ет это хо­ро­шо».

За­пустить центр управ­ления YaST мож­но из кон­со­ли, на­брав от имени су­пер­поль­зо­ва­те­ля-root ко­ман­ду yast. Доб­ро по­жа­ло­вать в YaST с ин­тер­фей­сом Ncurses. Для за­пуска про­грам­мы в те­ку­щем гра­фи­че­­ском ок­ру­жении мож­но ис­поль­зо­вать yast2. В ка­че­­ст­ве оп­ций за­пуска YaST мож­но пе­ре­да­вать неко­то­рые па­ра­мет­ры: -gtk – для за­пуска YaST в гра­фи­че­­ской обо­лоч­ке GTK, -qt – для за­пуска в обо­лоч­ке Qt, -ncurses – для за­пуска в кон­со­ли. Ос­таль­ное опи­са­но на страницах справ­ки man yast2.

Воз­мож­но­сти YaST на­чи­на­ют де­мон­ст­ри­ро­вать­ся с мо­мен­та за­груз­ки уста­но­воч­но­го дис­ка с openSUSE. Соб­ст­вен­но, за­гру­жае­мый тогда мо­дуль YaST (yast2‑installation) уста­нов­кой и занима­ет­ся. Он про­во­дит поль­зо­ва­те­ля че­рез весь про­цесс ин­стал­ля­ции сис­те­мы: от оз­на­ком­ления с при­ме­чания­ми и вы­бо­ра ок­ру­жения ра­бо­че­го сто­ла, до раз­биения раз­де­лов на же­ст­ком дис­ке и ав­то­ма­ти­че­­ско­­го об­нов­ления па­ке­тов че­рез Ин­тернет. По­сле ра­бо­ты yast2‑installation поль­зо­ва­тель по­лу­ча­ет на­стро­ен­ную по сво­им тре­бо­ваниям, пол­но­стью го­то­вую к ра­бо­те сис­те­му.

Хле­ба и... при­ме­ров!

Опустим про­стые на­строй­ки сис­те­мы с по­мо­щью YaST и возь­мем для по­ка­за воз­мож­но­стей кон­крет­ный при­мер. Пред­по­ло­жим, вы уста­но­ви­ли openSUSE на ма­ши­ну, для ко­то­рой планиру­ет­ся роль скром­но­го web-сер­ве­ра. Такое вполне мо­жет быть. Что­бы осу­ще­ст­вить за­ду­ман­ное, нам по­на­до­бят­ся два па­ке­та apache2 (пре­достав­ля­ет httpd) и yast2‑http-server (мо­дуль для на­строй­ки сер­ве­ра). В openSUSE есть мно­го спо­со­бов уста­нав­ли­вать про­грам­мы: мож­но восполь­ зо­вать­ся менед­же­ром zypper (zypper in apache2 yast2‑http-server), мож­но най­ти в Се­ти RPM-па­ке­ты и уста­но­вить их, мож­но уста­но­вить па­ке­ты с по­мо­щью тех­но­ло­гии OneClick-install, и, конеч­но, кто-то най­дет и дру­гие спо­со­бы. Мы же восполь­зуем­ся YaST.

Итак, нам нуж­но за­пустить мо­дуль Управ­ление про­грамм­ным обес­пе­чением из груп­пы Про­грамм­ное обес­пе­чение. Даль­ше (в за­ви­си­мо­сти от то­го, в ка­кой гра­фи­че­­ской обо­лоч­ке за­пу­щен YaST) в по­ле по­ис­ка вво­дим пер­вый нуж­ный нам па­кет apache2. По­ме­ча­ем на уста­нов­ку. Так же де­ла­ем и с yast2‑http-server. Все за­ви­си­мо­сти от­ме­тят­ся ав­то­ма­ти­че­­ски. Де­ло сде­ла­но; на­жи­ма­ем При­менить, ждем окон­чания уста­нов­ки и за­кры­ва­ем мо­дуль.

Воз­мож­но, ко­му-то по­ка­жет­ся дол­гим та­кой про­цесс уста­нов­ки про­грамм. Тем не менее, это, соб­ст­вен­но, один из пу­тей ре­шения за­да­чи. Для тех, кто уве­рен­но чув­ст­ву­ет се­бя в кон­со­ли, раз­ра­бот­чи­ки YaST до­ба­ви­ли оп­цию -i, с по­мо­щью ко­то­рой все вы­ше­пе­ре­чис­лен­ные дей­ст­вия ре­ша­ют­ся ав­то­ма­ти­че­­ски. Итак,

yast -i apache2 yast2‑http-server

Все необ­хо­ди­мые за­ви­си­мо­сти уста­но­ви­лись, сер­вер обосно­вал­ся на ма­шине, и мо­дуль YaST для его на­строй­ки и управ­ления го­тов ра­бо­тать. За­гру­зим HTML-фай­лы в нуж­ную ди­рек­то­рию (/srv/www/htdocs) и при­сту­пим к ра­бо­те с сер­ве­ром. Воз­мож­но, вы по­ду­мае­те, что непло­хо бы­ло бы от­крыть порт в бранд­мау­эре, что­бы раз­ре­шить вхо­дя­щие со­единения на порт сер­ве­ра. Разуме­ется, для это­го предусмотрен специальный мо­дуль – Бранд­мау­эр из груп­пы Поль­зо­ва­те­ли и безо­пас­ность. Вы­брав в нем пункт Раз­ре­шен­ные служ­бы, уста­но­вим но­вую раз­ре­шен­ную служ­бу «Сер­вер HTTP» и на­жмем «До­ба­вить». Го­то­во. Прав­да, это­го мож­но бы­ло и не де­лать, ведь раз­ра­бот­чи­ки yast2‑http-server по­за­бо­ти­лись о на­строй­ке пор­та для бранд­мау­эра пря­мо в сво­ем мо­ду­ле.

При за­пуске мо­дуль на­строй­ки HTTP-сер­ве­ра про­ве­рит, уста­нов­ле­ны ли все нуж­ные па­ке­ты (apache2 и apache2‑prefork), про­смот­рит кон­фи­гу­ра­ци­он­ные фай­лы на пред­мет руч­ных пра­вок и, в слу­чае че­го, со­об­щит, что мо­жет из­менить эти прав­ки. Когда все про­вер­ки за­вер­ше­ны, в глав­ном окне мо­ду­ля мож­но за­нять­ся на­строй­кой сер­ве­ра: вклю­чен или вы­клю­чен сер­вер, на ка­ких пор­тах и с ка­ких ад­ре­сов ему слу­шать и ка­кой жур­нал сер­ве­ра по­смот­реть. Га­лоч­ка на­про­тив пунк­та «От­крыть порт в бранд­мау­эре» – то, о чем бы­ло ска­за­но вы­ше, кста­ти.

Пре­крас­ный пе­ре­вод мо­ду­лей от ко­ман­ды эн­ту­зиа­стов и пол­ная до­ку­мен­та­ция по­зво­ля­ют ре­шить про­бле­мы, ко­то­рые мо­гут возник­нуть, и по­мо­га­ют до­бить­ся нуж­ных ре­зуль­та­тов.

Я — раз­ра­бот­чик!

YaST по­мо­жет вам дер­жать под кон­тро­лем всю сис­те­му и от­дель­ные ее час­ти. Но что де­лать, ес­ли для ка­ко­го-ли­бо ком­понен­та нет сво­его мо­ду­ля? На­вер­ня­ка он бы вам очень не по­ме­шал: ведь с по­мо­щью YaST управ­лять удобнее.

Убе­ди­тесь, что мо­ду­ля дей­ст­ви­тель­но не су­ще­ст­ву­ет. Ведь бывает, что раз­ра­бот­чи­ки-лю­би­те­ли на­пи­са­ли нуж­ный мо­дуль, а рас­ска­зать о нем все­му све­ту стес­ня­ют­ся. Вот так и ле­жит ис­ход­ный код, ску­ча­ет на страни­цах се­рень­ко­го бло­га. Од­на­ко, ес­ли по­ис­ко­вая сис­те­ма три­ж­ды перешерсти­ла весь Ин­тернет и со­об­щи­ла об отсутствии того, что вам на­до, при­дет­ся дей­ст­во­вать по-дру­го­му.

Ка­ж­дый мо­жет стать раз­ра­бот­чи­ком мо­ду­лей для YaST – бла­го, ин­фор­ма­ция об этом от­кры­та. Linux Format по­ка­жет вам путь, что­бы по­том вы смог­ли дви­гать­ся даль­ше. А с че­го на­чи­на­ет­ся путь про­грам­ми­ста? Пра­виль­но, с hello world!

 {
 string message = “При­вет Linux Format!;
 UI::OpenDialog(
  `VBox(
  `Label( message ),
  `PushButton(&OK”)
  )
 );
 UI::UserInput();
 UI::CloseDialog();
 }

Со­хра­ним код в фай­ле hello.ycp (YCP – рас­ши­ре­ние фай­ла язы­ка про­гра­ми­ро­ва­ния YaST Control Language). Мо­жем про­ве­рить то, что мы на­пи­са­ли, про­сто за­пус­тив мо­дуль ко­ман­дой

/sbin/yast2 ./hello.ycp

Дополнительную ин­фор­ма­цию по раз­ра­бот­ке мож­но по­лу­чить на сай­те Novell Cool Solutions (http://www.novell.com/coolsolutions/feature/15269.html) и в wiki openSUSE (http://en.opensuse.org/openSUSE:YaST_development).

Вот так за 16 лет сво­его су­ще­ст­во­вания YaST вы­рос из скром­но­го ин­ст­ру­мен­та управ­ления сис­те­мой до мощ­ной про­грам­мы уста­нов­ки и на­строй­ки. И успех этот не да­ет по­коя ос­тальным: эн­ту­зиа­сты из других со­об­ществ не раз пред­при­ни­ма­ли по­пыт­ки пор­ти­ро­вать YaST на свои ди­ст­ри­бу­ти­вы. Очевид­но, немало ад­ми­ни­ст­ра­то­ров ви­дят в YaST сво­его верного на­пар­ни­ка по управ­ле­нию сис­те­мой.

Со­кра­ща­ем вре­мя

Мо­ду­ли YaST мож­но за­пус­кать бы­ст­рее пря­мо из кон­со­ли. Для это­го в ка­че­ст­ве па­ра­мет­ра за­пус­ка укажите имя мо­ду­ля – на­при­мер, вот так: yast2 proxy. Бу­дет за­пу­щен мо­дуль на­строй­ки про­кси. Спи­сок всех ус­та­нов­лен­ных мо­ду­лей доставит ко­ман­да yast -l.

Спа­си­бо, кол­ле­ги!

Ав­тор ста­тьи бла­го­да­рит лю­дей, ко­то­рые на­ча­ли раз­ра­бот­ку сис­те­мы управ­ле­ния YaST – То­ма­са Фе­ра [Thomas Fehr] и Ми­ха­эля Ан­д­ре­са [Michael Andres]. Так­же, бла­го­дар­ность всем тем, кто под­дер­жи­вал этот про­ект от на­ча­ла его раз­ви­тия и про­дол­жа­ет это де­лать.

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