Наконец озаботился освоением Линукса. Частично я сталкиваюсь с ним на работе, когда пишу под iOS. Терминал, как известно, и в Африке терминал, и в Мак Оси терминал, и оказался очень полезным, когда надо было поубивать все процессы iTunes 10.5 BETA и удалить его из директорий. Мышиная возня привела лишь к увеличению громкости матерных звуков, а пара команд – “kill” и “sudo rm” навсегда уничтожила Б-гомерзкий дистрибутив.

Тем не менее, в Линуксе я не в зуб ногой. Знаю только ls и cd, ну еще ifconfig.

Первые мои эксперименты с Ubuntu (ну что еще может поставить начинающий линуксоид? не дебиан же) закончились достаточно быстро. Я поставил дистрибутив, подивился убогости отрисовки шрифтов (последнее время мне все больше в этом плане нравится Мак, Винда на втором месте, а Линукс далеко в ж…), посмотрел на GNOME, залез в пакетный менеджер, удалил Python 2, поставил Python 3, перезагрузился… на этом мое общение с Линуксом завершилось – восстановить его я так и не смог, а переустанавливать не было особого желания.

Однако, как известно, настоящий профессионал должен уметь делать все, в том числе чесать пяткой за ухом. Кроме того, есть часть работ, где я так или иначе сталкиваюсь с творением господина Торвальдса, поэтому я приступил ко второй попытке.

Скачав самый свежий дистрибутив, я установил его в виртуальную машину. Проблем, естественно, не возникло – какие могут быть проблемы в 2011 году? Загрузился, нашел мануал по установке PHP+MySQL+Apache. Установил. Заодно выучил команду apt-get и понял, что без консоли здесь делать нечего – даже выделив виртуальной машине два ядра и гигабайт оперативной памяти (я еще помню, как линуксоиды хвастались тем, что Ubuntu работает там, где Windows 7 показывает 1,5 кадра в секунду), с учетом того, что мой процессор поддерживает аппаратную виртуализацию, Ubuntu умудрялась феерически тормозить даже если я просто ползал по папкам в местном аналоге проводника. Мне довольно быстро надоело смотреть на постоянные значки “загрузки”, и я перешел на консоль. В конце концов, я все равно все делаю по мануалам.

Окей, поставил сервер, перезагрузился, проверил – прекрасно, все работает. Проще простого, и даже ничего знать не надо – справится и обезьяна, если она умеет пользоваться гуглом. Поставил phpMyAdmin, сделал базку, накатил на нее vBulletin – все как дома на Винде (я пользовался Денвером, так как настраивать IIS для работы с PHP мне до сих пор кажется диким, да и окружение все-таки ближе к “боевой” конфигурации LAMP). На этом простая часть закончилась.

Следующим шла часть посложнее – для разработок мне надо было поставить Sphinx. Для начала хотя бы поставить. Мануал был найден в сети, решено было для начала поставить версию 0.99, заявленную как release (хотя мы все все понимаем).

Выучил еще несколько команд – curl и tar. Далее началось то, что всегда линуксоиды описывали как нирвану – configure и make. Наверное, на боевой системе, на которой все настроено, это действительно прекрасно – компилировать все из исходников, но на моей чистой убунте это превратилось в очередной квест.

./configure. Fail. Окей, мы все-таки не нубы, смотрим логи, глядишь, что-нибудь понятнее станет. Ах, cannot create executable, потому что crt1 не нашли. Прицельным гуглингом выясняем, что в системе не хватает пакета libc6-dev (или вроде того). Apt-get, пакет появился, конфигурь еще раз. Бум – не хватает dev пакета для MySQL. Прицельный гуглинг, выясняется, что нужен не просто mysql-client, а mysqlclient15-dev, там хедеры, а без хедеров ничего не выйдет. Окей, apt-get, все прекрасно. Конфигурь снова – и это победа, you can use make.

Навел справки на make. Замечательно, make! Хрен там было – в системе отсутствует компилятор c++ под названием g++. Гуглим название пакета, ставим некие build-essentials, которые массово рекомендуют на форумах, делаем make еще раз. Ура, выдав кучу варнингов, все скопилировалось успешно (несмотря на то, что, судя по логам, используется режим компиляции -Wall). Sudo make install – все поставилось по своим папочкам и стало хорошо.

Теперь, как написано в мануале, нужно было настроить конфиурацию и запихнуть демон searchd в автозагрузку через команду insserv (если моя система поддерживает init.d, а Ubuntu, насколько я понял, поддерживает). Именно здесь и произошел затык – вместо ожидаемой информации, insserv выдавал кучу флуда с неизменным “не было внесено никаких изменений” в конце. Я даже догадался поставить на скрипт запуска демона права на исполнение с помощью chmod +x – все равно, прямой запуск скрипта через /etc/init.d/searchd выдавал успех, а insserv продолжал выдавать в консоли мусор.

Самое интересное, что в скрипте searchd встретилась волшебная команда killproc, которая как-то хитро убивает процесс так, как надо было автору скрипта. Ее не было в стандартной поставки и я не смог найти пакета, который бы мне ее давал. Вроде как это что-то питонье.

Ну и, естественно, проверить, работает ли Sphinx мне не удалось, потому что непонятно, как и что ему отправить, чтобы провести диагностику.

В общем, буду признателен, если кто-нибудь поможет мне ликвидировать мою безграмотность.

Share →

3 Responses to Inside Linux, часть 1

  1. > Ubuntu умудрялась феерически тормозить даже если я просто ползал по папкам в местном аналоге проводника

    Скорее всего тормозит не ось (ядро), а оболочка Unity, которая, на мой взгляд, является редкостным калом. В любом случае, для твоих целей больше подходит НЕ desktop-ориентированный дистрибутив. Обрати внимание на Ubuntu Server Edition . По причине отсутствия GUI и других десктопно-специфичных вещей, он будет легче работать в виртуалке. Настрой виртуальный нетворкинг, подними SSH и цепляйся к виртуальной машине через PuTTY, а то консоль в самой виртуалке крайне неудобная (и в нее ничего не скопипастишь из хост-системы).

    • bober_maniac says:

      Да, я именно так и поступил – настроил SSH и работаю из винды через PuTTY.

      Касательно же самой оболочки – я использовал Гном, потому что Юнити по слухам сильно охоча до ресурсов.

  2. Да, и еще. Использовать метод “./configure && make && make install” в package-based системах (которыми являются на сегодняшний день все более-менее вменяемые дистрибутивы) не рекомендуется. См. http://habrahabr.ru/blogs/linux/130868/

Leave a Reply

Войти с помощью: 

Your email address will not be published. Required fields are marked *

PageLines