Подписаться на наше издание быстро и дешевле чем где-либо Вы можете прямо сейчас! Подписаться!
Известно, что Unix-системы — это своего рода микс из различных библиотек, программ, утилит и модулей. Все эти компоненты так тесно переплетены, что уже трудно представить себе чистую KDE- (или GNOME-) систему.
СЕГОДНЯ ПРОГРАММЫ ПИШУТСЯ в интересах среднестатистического пользователя — многие инструменты часто исчезают, уступая место более понятным и совершенным аналогам. Таким образом, среди графических оболочек для XFree остались только две — GNOME и KDE.
С этими оболочками связан вялотекущий процесс: ничто не занимает пользователей Linux так долго, как выбор одной из них. Притом некоторые так и живут в режиме "переключения".
Многие известные американские дистрибутивы (Fedora, RedHat), которые пытаются удержать корпоративный рынок, в последнее время выбирают GNOME как более "дружественную среду". Возможно, дело еще и в лицензии на Qt, инструмент разработки KDE: этот "тулкит" Trolltech распространяется бесплатно с бесплатными продуктами, а за деньги — с коммерческими. Естественно, можно самим продавать Linux, поэтому и выбирают GNOME.
С другой стороны, в Европе процветает культура Qt и KDE — в основном, на их "исторических родинах", то есть в Голландии и Германии. Кстати, в Европе более развита и культура "донации": заинтересованные компании, а их немало, в том числе государственные, напрямую спонсируют разработку необходимых свойств в нужном им продукте. Это напоминает гидропонику, когда через тоненькую трубочку поливают корень, а не весь сад из дождевальной установки. По этой же причине европейский Linux часто бесплатный: компании, получив нужный продукт, делятся кодом со всеми остальными.
В принципе, если не смотреть в код, то можно много лет пользоваться GNOME и думать, что так и надо. Но если посмотреть, то можно придти ко вполне определенным выводам: более страшного псевдообъектного метода не знала ни однa Windows ни в одной своей версии. Конечно, там тоже есть определенная логика, но все-таки это нагромождение абсолютно ненужного кода. По крайней мере, в MS Windows GUI API был всегда компактным и функциональным, не говоря уже о внутреннем "храме" Qt.
Безусловно, если вы хотите написать GIMP, то вам понадобится что-то вроде GTK, но от того, что начинает твориться в GTK+, вам уже станет плохо. Кстати, почему даже сам "прародитель" GIMP – такой тяжелый по сравнению с чем угодно – Photoshop, Photoimpact, любым продуктом Corel, Macromedia?
Но таков уж мир Open Source – никто никому не указ, в результате многие программы написаны под GTK/gnome, где gnome с маленькой буквы обозначает не саму среду, а множество библиотек ее поддержки.
В общем, в последнее время предлагается вариант GNOME, ну и, если захочется, KDE, который еще надо поискать при инсталляции. Конечно, существуют и такие славные дистро, как Slackware или BSD, где установлен как раз KDE: характерно, что эти системы рассчитаны на профессионалов, а не на "чайников".
Что касается GNOME, то к нему прилагается такой набор, как Eudora, Open Office и другой "виндоузный" стафф. Из-за этого система работает тяжело, программы грузятся долго, и пользователи испытывают странное чувство, что их где-то развели с Linux'ом, но не ясно, где. Выход прост – использовать лучшее из мира Linux, а не самые большие по размеру программы в надежде, что они являются и самыми лучшими.
Вы можете, конечно, запускать под GNOME что-то вроде AbiWord, как делают некоторые пользователи, но наш совет – полностью удалить все, что начинается на gnom*, openoffice* и eudora. Правда, удалить GTK+ полностью не удастся по причине наличия других приложений. Не xcdroast, конечно, а, например, такой полезной утилиты, как Freeciv. Да, тот же GIMP при отсутствии достойных конкурентов остается лучшим. Вместо ОО мы используем KWrite, другие компоненты KOffice тоже вполне приличны. В частности, вроде неброский KMail демонстрирует огромное множество путей "убийства" спама. При правильной сборке приложения KOffice поддерживают все нужные форматы MS Office, а также, например, весьма полезный в последнее время OpenDocument, или наш преферабельный RTF. Стартует KWord в три раза быстрее, чем AbiWord, и в десять раз быстрее, чем OpenOffice Writer, не говоря уже об отсутствии неприятного эффекта перерисовки меню в OOWriter'е и страшных глюков с фонтами в AbiWord.
Большая чистка, или Федорино горе
Давайте проведем небольшое исследование, чтобы узнать, как далеко можно продвинуться без "гномов"? Условно назовем наш проект "Вытрушиваем "гномов" и прочий хлам из KDE". В качестве игровой площадки выберем Fedora Core 4, поскольку это наиболее стандартный дистрибутив по удобству работы (не считая, может быть, Suse 10 или нового Mandrake 2006).
Предполагается, что мы установили FC с конфигурацией KDE, но, как окажется, "красные шапки" уже не могут без GNOME. В качестве "скальпеля" ничего, кроме rpm, нам не понадобится – yum является какой-то "кривоугольной" сетевой надстройкой, а графический инсталлятор в FC служит иллюстрацией лозунга "Сегодня могут программировать все, кому не лень".
Итак, нам понадобится только два ключа: rpm -qa для просмотра нужных пакетов и rpm -e для удаления. Также иногда пригодится - - nodeps для удаления циклически зависимых пакетов. Для разминки удалим все, что ищется по rpm -qa openoffice*, кроме Writer'а – он еще может пригодиться:
#>for i in impress draw math calc filter; do rpm -e `rpm -qa openofice | grep $i`; done
Теперь выбрасываем Evolution 2.2 – не волнуйтесь, KMail умеет импортировать почту и адресные книги из 12-ти различных форматов, в том числе из Eudora версий 1 и 2. И конечно же, удаление приложения не повлечет за собой удаление файлов данных, которые находятся в вашем домашнем каталоге. Важный момент: при импорте будьте готовы к тому, что процесс может притормозиться. Вовремя нажатая отмена приведет к удовлетворительному результату, не считая того, что все сообщения попадут в одну папку.
Теперь настал черед важного открытия: даже в FC-KDE есть не только библиотеки и пакты gnome, но и полнометражный Nautilus! В меню его не видно, но его легко запустить с консоли, и по -qa видны и nautilus, и nautilus-cd-burner. Первая идея – удалять все с - - nodeps – не самая лучшая, поскольку у вас останется много нерабочего кода.
Наблюдаемый Nau установился как циклическая зависимость от установки некоторых мультимедийных пакетов, а именно плеера Totem и утилиты Sound Juicer (в русской версии меню – "Звуковыжималка"), посредством gnome-media. После этого можно "убить" Nau – здесь как раз пригодится - -nodeps, потому что nautilus зависит от cd-burner, и наоборот.
Зависимость следующая:
nautilus <-> nautilus-cd-burner -> gnome-media -> sound-juicer -> totem Общий мультимедийный клин-ап выглядит так: #>for i in totem sound-juicer gnome-media; do rpm -e `rpm -qa | grep $i`;done #>rpm -e --nodeps nautilus-cd-burner #>rpm -e nautilus
Теперь Konqueror может чувствовать себя в безопасности, если, конечно, вы не испытываете тяги к Firefox, Opera или Netscape. В дальнейшем будем только показывать зависимости, чтобы вы могли сэкономить время, не растрачивая время на лишние разрешения зависимостей.
Не держите питона в неволе
Важным аспектом "гномизации" является наличие большого количества биндов, то есть привязок GTK к различным языкам программирования. В результате, когда программист на каком-то из изначально консольных языков начинает программировать для X, то GTK – часто первый и последний его выбор. В частности, есть такой популярный бинд, как gnome-python2-canvas, который дает GTK-инетрфейс программам на Python. Вот как получить эту, весьма важную в FC, но для нас бесполезную, вещь.
Как видите, мы задели весьма важные аспекты Fedor'ы – gnome-python2 оказался в самом сердце этой системы. После таких действий можно говорить о "бывшей Федоре". Для беглых инсталляций есть yum или rpm. Дальнейшее разрушение системы, или, вернее, ее восстановление до уровня LFS, происходит по такой схеме (опять все удаляется справа налево):
Таким образом, последние три пакета – сам python2, gnomevfs и bonobo – снова образуют dead lock: для начала удалите главный с - -nodeps, а два остальные "отвалятся" легко. Вообще-то не совсем понятно, зачем создавать взаимно зависимые пакеты, если их инсталляция по одному не имеет смысла. Например, без bonobo весь GNOME2 вообще не может работать, но это все секреты разработчиков.
По тонкому льду: GNOME-VFS2
Если до сих пор мы удаляли вполне бесполезные вещи, такие, как RHN, то теперь погрузимся в мир базовой функциональности, от которой зависят многие приложения. Основными в этом плане, как ни странно, являются отнюдь не графические элементы управления, как можно подумать: более всего разработчикам пришелся по душе бинд gnome-vfs2 – библиотека, осуществляющая унифицированный доступ к файлам в различных файловых системах. Конечно, ни одно приложение KDE не опирается на gnome-vfs2, но, возможно, мы бы хотели сохранить жизнь какой-то полезной программе. Хорошо, что libgnomeui удается удалить, но это не касается gnome-vfs2:
Здесь не показаны еще некоторые связи. Через запятую подаются независимые пакеты одного уровня, а через точку с запятой – отдельный, но тоже ассоциированный бренч. Теперь придется уже более серьезно относиться к тому, готовы ли мы удалять то или иное приложение. Например, мы не пользуемся "планером", готовы полностью отказаться от ОО, а также не использовать Eazel Extensions Library для своих разработок. Обратите внимание, что не все пункты главного меню "торопятся" исчезать по мере удаления пакетов, хотя, конечно, уже ничего не вызывают – при следующем логоне они исчезнут.
При удалении пакетов вы можете узнать многие вещи, на которые не обратили бы внимания при установке. Например, то, что AbiWord серьезно зависит от интерфейса GTK, и в то же время Xine совершенно безразличен к gstreamer. Достаточно неожиданное открытие: GIMP зависит от gtkhtml2, но не от gtkhtml3. Словом, если смириться с мыслью, что без GIMP вам никуда, а все остальное не так важно, то вы можете удалить все показанные пакеты и оставить только те, что выделены.
Конечно, со временем вы опять закачаете приложение, которое потребует libgnome. Но пока этого не произошло, можно удалить многие вспомогательные средства компиляции: все равно потом понадобятся новые. Это тоже можно сократить:
Таким образом, около шестидесяти пакетов удалено, в том числе около двадцати приложений, и это без малейшего ущерба для системы. Освобождено полгигабайта памяти. Изучены тайные зависимости пакетов, порой неожиданные. А если вам все это не нравится, то читайте эту начиная с конца, и таким образом вы соберете из LFS вполне работоспособную GNOME-систему. Не забудьте поставить сам GNOME – у нас его не было. В качестве подарка: последний KDE в исходниках лежит на диске. А в качестве бонуса – Freeciv, Duke3D для Linux там же, а также нужные библиотеки SDL. Кстати, если Duke3D не будет компилироваться, то так и должно быть, это специально для хакеров – упражнение в одну строку.