Собственно, установка Debian и побудила меня завести ЖЖ. Вот моя история:
Года полтора назад, работал я на Fedora Core 6. Но потом что-то меня заклинило, и я еще около полугода работал в Мастдае. Но, глюки сего несравненного творения мелкомягких сделали свое дело – было очень некомфортно. Последней каплей стало неадекватное поведение при работе с флешкой – винда ее тупо потеряла на середине процесса копирования.
Нет, дань Дяде Билу все-таки нужно отдать. Я хочу сказать, что заметил много положительных сдвигов в их виндузятнике. Например MS Office 2007 – на самом деле достаточно удобный пакет, не взирая на непривычный поначалу интерфейс. Они на самом деле делают много хорошего софта, но вот почему-то никак не могут осилить хорошее ядро. Поэтому винда так и остается системой для домохозяек.
Так вот, надоело мне это мелкое и мягкое безобразие и решил я отказаться от него. Надеюсь, что уже в последний раз. Стала проблема с выбором дистрибутива. Долго не думая, попробовал поставить Fedora, но увы – не подошла. Однако, первый раз видел как линукс виснет и нестабильно работает... Много думал...
Я так и не смог вылечить эту проблему, поэтому продолжил свои скитания по паутине в поисках наилучшего дистрибутива. Смотрел Suse, не понравилось. Как-то тяжело она работает. Решение подсказал случай – нужно нам было сделать машины (несколько серверов) под тестирование сайта на скорость. Туда поставили Debian Etch amd64 (а у нас в конторе почти все машины на 64-й архитектуре). Посмотрел я его и мне понравилось – работает стабильно, понимает оборудование, более-менее свеж по софту. На нем я и остановился.
Итак, поставил я себе Debian на машину и понял, что на самом деле, когда он ставился как сервер – особо никаких проблем не было, а вот для настройки его под клиентскую машину пришлось поиметь много «любви». Вот, собственно, об этой оргии я и хочу поведать, дабы у тех, кто тоже решил поставить себе Etch было меньше проблем.
Хочу предупредить, что в целом я потратил около недели на то, чтобы довести систему до ума. Но здесь я не буду описывать все терновники, через которые пришлось проползти на брюхе в пути к цели, а приведу лишь необходимые сведения о решении проблем, с которыми столкнулся я. Надеюсь, что это поможет кому-нибудь обойти хоть часть граблей, заботливо разложенных по этому не вспаханому полю в шахматном порядке и прикрытых опавшими листьями.
Начну с того, что стал он достаточно хорошо, сразу настроил видеокарту на нормальное разрешение (в моем случае 1280х1024), но не распознал вмонтированный в мать GeForce 6100. Debian сделал наглую морду и обозвал его «Универсальная видеокарта» с драйвером vesa. В целом, все выглядело нормально, и я отложил установку дров до поры до времени. Также не поставил он «по умолчанию» и KDE. Пришлось ставить кеды отдельно. Проблем не возникло.
Тем не менее, я не услышал звук. Огорчился. Сходил к Дедушке Гуглу за советом. Он покачал головой, узнав, что у меня Realtek High Definition Audio (HDA), да еще и встроенный в мать на nForce чипсете, но посоветовл обратиться сюда: http://www.opendrivers.com/freedownload/240188/realtek-ac97-audio-codecs-driver-4.06a-linux-2.4-or-2.6-download.html (хотя я запамятовал откуда именно взял файл, но тут он есть). Попытался собрать – не вышло. Выяснилось, что у меня нет ни одного компилятора. Поставив gcc, g++ и (как позже понадобилось) все kernel headers для своего ядра, я таки смог собрать дрова. О чудо – я могу слышать!
В силу того, что я занимаюсь веб-разработками (преимущественно PHP+MySQL), мне необходимо иметь нормальную и удобную среду. Первое, что бросилось в глаза – браузер. В Debian нет больше Firefox'а. Его переименовали в Iceweasel. Тем не менее, по сути, это все равно Огненный Лис. Версия «по умолчанию» - 2.0.0.8. В общем, вполне удовлетворительно, хотя с оговоркой, что похоже он и определяется как Iceweasel. Это делает невозможным, например, установку панели Google, которою я активно использую, путем мастера, представленного на странице http://www.google.com/tools/firefox/toolbar/FT3/intl/ru/index.html?utm_source=ru-et-more&utm_medium=et&utm_campaign=ru. Он мне сказал, что мне нужен Firefox и отправил меня на страницу Mozilla. Нахал!
Но не тут-то было! Я полазил в исходном коде страницы (я надеюсь, что не совершил ничего противозаконного) и нашел там прямую ссылку на плагин. Вот она - http://dl.google.com/firefox/google-toolbar.xpi . Плагин отлично работает, а, собственно, с чего бы ему не трудится на благо человечества, коли на самом деле он стоит на FF?
С браузером все вроде срослось, окромя флеша. Но, на первый взгляд, это обычная ситуация – флеш плагин ставится отдельно. А не тут-то было! Фигли вам! Не выпускает Adobe свой проигрыватель под x86_64. Только под x86. Как же быть?
Пошел за советом к Дедушке Гуглу. Дедушка Гугль посадил меня к себе на коленки и начал рыться в своих записях, пока я пил чай с печеньем.
Решение нашлось - http://kalasy.wordpress.com/2007/10/13/adobe-flash-player-en-firefox-iceweasel-amd-64-bits/ (это то, от чего я отталкивался). Не взирая на языковой барьер, последовательность действий понятна. Опишу ее здесь еще раз вкратце на русском языке:
В репозиториях я вроде находил эти пакеты, но не в родных. Итак:
Качаем плагин: wget http://gwenole.beauchesne.info/projects/nspluginwrapper/files/nspluginwrapper-0.9.91.4-1.x86_64.rpm
Качаем визуализатор: wget http://gwenole.beauchesne.info/projects/nspluginwrapper/files/nspluginwrapper-i386-0.9.91.4-1.x86_64.rpm
От рута делаем: apt-get install ia32-libs ia32-libs-* alien linux32
Далее делаем alien -d ИМЯ_ФАЙЛА.rpm для обоих файлов
dpkg -i ИМЯ_ФАЙЛА.deb для полученных deb'ов.
Теперь качаем сам флеш-плагин отсюда: http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_9_linux.tar.gz
Распаковываем куда-нибудь в темпы
Копируем libflashplayer.so в /usr/lib/mozilla/plugins/
Делаем /usr/lib/nspluginwrapper/x86_64/linux/npconfig -i /usr/lib/mozilla/plugins/libflashplayer.so
Делаем nspluginwrapper -i /usr/lib/mozilla/plugins/libflashplayer.so
Теперь делаем симлинк для npwrapper.libflashplayer.so: ln -s /usr/lib/mozilla/plugins/npwrapper.libflashplayer.so /usr/lib/iceweasel/plugins/npwrapper.libflashplayer.so
Теперь перезапускаем Iceweasel'а и наслаждаемся...
Заработало. Был очень рад. Теперь есть возможность адекватно смотреть страницы. Но надо ж и сайты на чем-то писать...
Взгляд упал на Eclipse. Судя по отзывам очень хорошая среда, да еще и бесплатная и с открытым кодом. Что еще может быть лучше?! В репозитории оказалась только версия 3.2. Насколько мне известно, в 3.3 версии было очень много существенных изменений, поэтому захотелось поставить именно ее. Не буду вдаваться в подробности тех удовольствий, которые я испытывал пытаясь все-таки запустить 3.3. Но у меня ничего не вышло.
Было принято волевое решение наплевать на прогресс и поставить 3.2. Eclipse 3.2 установился без проблем, но запускаться отказался – не нашел ява-машину (JRE). Для меня, конечно, было очень удивительно, как этот монстр, построенный на яве, не имел в наличии соответствующих зависимостей. Но ничего – сходил на сайт http://java.sun.com/javase/downloads/index_jdk5.jsp и закачал Java Runtime Environment (JRE) 5.0 Update 14 в бинарнике. Под линукс, естественно. Запустил, он в текущей папке создал мне папку с JRE. И все. В систему он его не ставил. Но и тут не страшно. Копируем JRE куда-нибудь, например в /usr/local/jre. Теперь идем в /etc/eclipse/ и там правим файлик java_home. В него первым путем прописываем путь к JRE (которая где-то в /usr/local/). Сохраняем, идем запускаем Eclipse, и (о, чудо!) он работает.
Но помимо самого Eclipse, надо ж его обвесить плагинами – в частности PDT (PHP Development Tools). Долго мучился, пока понял, что скачанный с сайта релиз PDT никак не станет на 3.2. Пришлось взять бубен и бить в него головой (отмечу, что с самим Eclipse ранее знаком не был, только по наслышке).
Помогло. Пришло решение – пошел в Справка -> Обновления -> Найти и установить. Добавил удаленный сайт со следующим урлом - http://download.eclipse.org/tools/pdt/updates/. Просканировал на наличе софта – нашел PDT. Сняв галочку «Показывать только свежие релизы» смог увидеть PDT 0.7.0. Пару пакетов не захотели ставиться, но один из них стал.
О счастье! Я могу работать в PHP среде! Радости не было предела. Но, на самом деле, он был. И назывался этот предел «Отладка».
Долго пытался запустить дебагер. Я знал, что Eclipse поддерживает Xdebug, поэтому предварительно поставил и настроил оного. К слову сказать, Debian, по моей просьбе, поставил Apache 2.2.3, а за одно и PHP 5.2.0-8 (сам догадался). MySQL ставил отдельно из репозиториев. Проблем не возникло. По поводу Xdebug всегда можно почитать на http://xdebug.org/. Я собирал и ставил экстеншн вручную.
Так вот, как выяснилось (опять таки у Дедушки Гугла), что Eclipse требует наличия соответствующего плагина для отладки с помощью Xdebug. Искал. Нашел здесь: https://bugs.eclipse.org/bugs/show_bug.cgi?id=169408. XdebugBinContrib_0.2.3 вполне подошел к Eclipse 3.2. Немного поразбиравшись с настройкой, я таки его запустил и смог отлаживаться.
Скажу сразу – работает это все творение неприлично медленно. Судя по форумам и отзывам – из-за памяти (на данный момент я являюсь счастливым обладателем всего лишь 512 Мб мозгов). Ну и из-за ява-машины, конечно.
Для работы с SVN мне тоже понадобился плагин. Его можно закачать тем же методом, что и PDT отсюда: http://www.polarion.org/projects/subversive/download/1.1/update-site/. В целом я все-таки настроил этого монстра и заставил его работать как мне надо. Одна незадача – скорость работы сделала работу невозможной. Пока память не увеличу – не смогу сказать в ее ли недостатке дело.
Посему, настроив Eclipse, я благополучно от нее отказался. По крайней мере на время. Решил поискать альтернативу. Раньше я работал на Quanta+ из пакета kdewebdevelop. Но, в силу сложности проектов, она перестала меня устраивать. остановился на Kdevelop. Отличное приложение, работает быстро, есть мало памяти (в отличие от некоторых). Есть и минусы – PHP мы поддерживаем, но отлаживаться не умеем. Также периодически страдает Code Insight. Но это меня не испугало. В целом отличный пакет.
Настроив таки среду для работы, озаботился средствами связи – как никак, а общаться ж надо...
ICQ и MSN настроились без проблем на Kopete. Очень понравился этот мессенджер. Красиво, достаточно стабильно работает, поддерживает много протоколов. Google Talk настроить пока не смог – изучаю вопрос.
Начал ставить Skype и столкнулся опять со 64-разрядной стеной – нет дистрибутива для x86_64. Сходил в гости к Дедушке Гуглу. Дедушка Гугл, конечно был рад меня видеть, но был немного уставший – пришлось некоторое время его уговаривать дать совет.
Выудил из него, что Skype можно таки запустить на 64-й архитектуре. Для этого надо было скачать сначала сам Skype в статической сборке (на их официальном сайте есть такой дистрибутив), а потом еще кучу библиотек для i386 архитектуры с http://packages.debian.org/. Потом надо было все это поставить. Список библиотек можно получить с помощью команды ldd /PATH/WHERE/SKYPE/UNPACKED/skype. Оно выведет список зависимостей приложения. В моем случае это были следующие библиотеки:
linux-gate.so.1
libasound.so.2
libSM.so.6
libICE.so.6
libXi.so.6
libXrender.so.1
libXrandr.so.2
libXfixes.so.3
libXcursor.so.1
libXinerama.so.1
libfreetype.so.6
libfontconfig.so.1
libXext.so.6
libX11.so.6
librt.so.1
libdl.so.2
libpthread.so.0
libsigc-2.0.so.0
libstdc++.so.6
libm.so.6
libgcc_s.so.1
libc.so.6
libz.so.1
libexpat.so.1
libXau.so.6
libXdmcp.so.6
Пришлось сходить за всеми этими пакетами. Ставятся они вот как:
dpkg -X LIBRARY_PACKAGE_NAME /emul/ia32-linux
Когда все библиотеки установлены, необходимо сделать еще пару шагов – закачать еще одну библиотеку, удалить в мусорку старую либу и поставить новую. Библиотека называется lib32asound2_1.0.13-2_amd64.deb. Ставится все вот как:
dpkg -P --force all lib32asound2 libasound2
apt-get install libasound2
dpkg -i lib32asound2_1.0.13-2_amd64.deb lib32asound2_1.0.13-2_amd64.deb
И вот только после этого Skype начал свою 64-х разрядную жизнь с поддержкой звука, чему я несказанно обрадовался.
С IRC проблем не было – поставил KVIrc из репозиториев и все заработало сразу и как положено. Кстати, маленький трюк для любителей этого клиента – я думаю многим не нравится, что он не делает человеческих уведомлений о новом сообщении в канале. Так вот это решаемо. На уровне программирования самого KVIrc. Итак, вот как можно сделать уведомление на сообщение с таким же окошком как для приватных и поведение а-ля QIP:
Заходим в «Сценарии» -> «Редактировать события»
Находим «OnChannelMessage»
По правой кнопке создаем обработчик
Вставляем следующий код:
if ($istimer(myTimer)) killtimer myTimer
if (!$window.hasUserFocus)
{
notifier.message "$0 - $3"
timer (myTimer,3000)
{
notifier.hide
}
}
Нажимаем «Применить» и «ОК»
После этого, когда будет принято сообщение в канале, Вы будете видеть всплывающее окошко с текстом сообщения. Окошко показывается на 3 сек. Если будет мало – можно увеличить значение параметра 3000 на (СЕК*1000).
После того как средства коммуникации были в порядке, стала проблема – а как же на русском из KDE-то писать? Вернее это не проблема – в кедах настраиваются раскладки без проблем. Но вот переключение по Ctrl-Shift пока еще проблема. Чтобы заставить это работать понадобилось вот что:
Настраиваем раскладки и переключение как обычно. При этом появляется индикатор раскладок, который можно использовать мышью, что есть совсем неудобно. Кстати, для переходящих с винды – при добавлении русского, есть вариант раскладки. Так вот его лучше поставить в winkeys, чтобы поведение клавиатуры не отличалось от виндозного.
Теперь идем в /home/YOUR_NAME/.kde/share/config
Открываем на редактирование файл kdeglobals
Находим там строку Switch to Next Keyboard Layout
Приводим ее к виду «Switch to Next Keyboard Layout=Ctrl+Shift_L» (можно и Shift_R написать, кому как удобней).
Сохраняем, закрываем сеанс KDE и заходим заново.
Теперь все отлично переключается.
Единственное что, что переключаться надо именно так как написали – Ctrl + Shift. Странно, но Shift + Ctrl не работает. Но на самом деле, быстро привыкается, т.к. очень сходно с виндой.
Когда немного поулеглись страсти с настройкой, и началась работа, потребовалось тестировать сайты под IE (а, как всем известно, сей продукт достаточно криво рендерит многие вещи). Возник вопрос – как же его поставить? Собственно ясно, что только на Wine, но ведь библиотек же не хватит для его нормальной работы...
Сходил в очередной раз к Дедушке Гуглу. Он посоветовал мне воспользоваться вот такой вот штукой - http://www.tatanka.com.br/ies4linux/page/Installation. Отлично все заработало. Только есть нюанс - http://www.tatanka.com.br/ies4linux/page/Legal_notices. Но тем не менее все работает и даже с флешем.
После всего этого, я задался целью все-таки установить дрова на видео. Мне повезло – на сайте nVidia вполне можно скачать дрова для карт под linux64. Официальные, нормальные дрова. Инсталлер вполне неплохо справился. И, в качестве бонуса, скажу еще вот о чем – потеребив Дедушку Гугла за бороду, я выведал из него один секрет – оказывается, OpenOffice можно заставить читать .docx файлы (в формате MS Office 2007). Делается это как описано тут: http://blog.mypapit.net/2007/09/how-to-open-microsoft-openxml-docx-documents-in-openoffice.html. В целом, на этом и закончилось набивание особо крупных шишек. Дедушка Гугл не скрывая своего восхищения тем, что я, наконец, от него отстал, отправился отдыхать. А я, тем временем, с большим удовольствием продолжаю работать в Debian'е и не нарадуюсь на то, как грамотно люди умеют делать системы и софт для них.