Траблы консольного линукса – 2

by Vladekk 29. Май 2010 16:01

В прошлый раз я писал про проблемы консольного линукса.  Тема актуальная, получила целую гору  комментариев (по моим меркам никому неизвестного блогописателя).

Решил продолжить.

1. binfmt и binfmt-support

Это раньше был модуль ядра, а теперь встроенный в ядро механизм. Он позволяет ассоциировать файлы выполняющей их средой без уродских конструкций “#!/usr/bin/bash” внутри файла. Ассоциировать можно по “magic numbers” внутри файла или по расширению. Так вот  - интерфейс к этому делу очень странный (для непосвящённого). Надо делать вывод (echo) чисел 1 или 0 или настроек в “псевдофайлы” в специальном месте файловой системы. Причём после ребута это все настройки пропадают, и в каком месте на загрузке корректно вызывать, чтобы опять появлялось, без толстого тома “администрирование линукс” не разберёшься . Чтобы это решить, есть отдельный пакет binfmt-support, написанный, судя по всему, другим человеком, но об его существовании ещё догадаться надо.

2. apache “order deny,allow”

В конфигах apache есть команда “order deny,allow”, служит для определения порядка действия прав доступа. Так вот, с точки зрения парсера конфига “deny,allow” – это одно слово. С точки зрения любого нормального человека, после запятой надо ставить пробел. Но линуксоидам пофиг на правила, пофиг на то, как человек интуитивно воспринимает конструкции языка. То есть “deny,allow” даже в любом языке программирования парсилось бы отдельно. Парсер конфига апача, конечно, считает что “deny, allow” – не имеющие смысла два отдельных выражения через запятую.

3. bugzilla

Поставил я баг-трекер багзиллу. (Она оказалась неудобная и непонятная, ещё и спамит по дефолту, ну да ладно). Или я плохо искал, или в комплекте нет инструкции к дебиан. На сайте говорят “ставьте нашу, мы за дебиан не отвечаем”. С трудом нашёл какие-то левые записи несчастного, который помучился, да настроил установленную из пакета, скопировал его конфиг. “Ставьте нашу” – отличная идея. Надо поставить так и сто других софтин, подписаться на рассылку безопасности, и потом всю жизнь тратить на установку патчей и обновлений. Ну или молиться, что хакерам твой несчастный сервер не нужен. (Что вряд ли, ибо для ботнета сгодится любой). Вообще, линукс знатно разрушает мозг – даже с установленными обновлениями (ну, вернее софтом из пакета) наш админ требует закрыть доступ с левых ip. Тогда непонятен смысл волноваться об обновлениях, если удобство зайти с любого компа исчезает.

Бонус: чтобы назначить на кого-то баг, нужно на память знать емейл человека! По логину нельзя, нет списка для выбора, нет автоподсказки. Мрак и ужас, нечего больше сказать.

4. Опять bugzilla

Во время установки вылезло такое.

Software error:
Error in tempfile() using /etc/bugzilla3/sites/bugzilla.izvne.com/params.XXXXX: Parent directory (/etc/bugzilla3/sites/bugzilla.izvne.com/) is not writable
at /usr/share/perl5/Bugzilla/Config.pm line 266bugzilla add to favs

Вот скажите, нормальный софт будет писать в папку конфига /etc/ ? Я никогда такого не видел не в линуксе, не в винде. В виндоус, например, .net приложение не сможет и не захочет писать в свой app.Config, если запущено под юзером, а не под админом, что логично. app.Config редактирует либо админ, либо приложение пишет в user settings.

5. apf-firewall

Стоит у нас надстройка над файрволом apf, чтобы легче админить было. И тут мне пишут, что люди не могут зайти на сайт. Ну, у меня решения всегда простые – отключил временно файрвол, пока админ не пришёл вечером. Тут состоялся диалог.

[22:02:55] rk13: curie:~# iptables -L -n | grep 95
DROP       all  --  95.0.0.0/8           0.0.0.0/0          
DROP       all  --  0.0.0.0/0            95.0.0.0/8
[22:03:52] Vladislav Kugelevich: и что это?
[22:15:26] rk13: это наш файр считате унассигнед спейс
[22:15:32] rk13  Unassigned/reserved address space

Оказалось, что определённый диапазон ip адресов заблокирован, потому что записан как “неназначенный”. В теории, список сам автообновляется, но линуксоиды же автообновление презирают, так что понятно, почему отключено было. Причина, по которой надо unassigned подсеть вообще блокировать, остаётся туманной.

4. ncftp

Вроде как считается хорошим (вернее, лучшим) ftp клиентом командной строки. Если параметры в команде ncftpput  сделать не в том порядке, она соединиться не может. Таймаут по умолчанию очень большой, сообщений об ошибках до его истечения никаких не выводит. Почему не работает – догадаться невозможно. Где вы вообще видели нормальную программу, которой важен порядок ключей в командной строке?

5. Trac

После неудач с мозиллой решил поставить багтрекер trac. На официальном сайте написано, что “настройка простая”. Это является несколько ироническим замечанием. Настройка не очень-то сложная, это правда. Но, чтобы добавить новый проект, надо давать команду из консоли!

То есть когда весь прогрессивный мир стремится к веб-интерфейсам, у линуксоидов по-прежнему всё как встарь: консоль, и не смейте выпендриваться! Хотя бы даже и не ажаксовый веб-UI? Ишь чего выдумали, обойдётесь!

6. Midnight Commander

Попытка приделать консоли человеческое лицо так и осталась попыткой. Рекурсивно делать chmod и chown не умеет. Пытаешься посчитать размер директорий – никакого прогресс бара, просто подвисает и всё, пока не доделает. Вводишь ftp адрес – не понимает префикс протокола ftp://. Если не смог соединится, закрывает окно и надо заново открывать пункт меню, заново вводить адрес. Чтобы отредактировать пункты меню, надо искать специальный файл со своим форматом, вместо того, чтобы нажать “edit”, как, например, сделано в far manager (думаю что и в norton commander было так же).

Хороший пример, кстати, для тех, кто любит язык C где надо и где не надо. Скорость работы файлового менеджера на языке высокого уровня бы не отличалась бы от скорости на C. Зато благодаря использованию C, можно писать так медленно и глючно, что элементарных функций годами не добавляют.

7. Mono

Не хочется ругать лучик света в тёмном царстве линукса, но приходится. Способа отключить warnings, которые Моно выводит в лог апача, я не нашёл. Ладно бы они редко были, но у меня такая ситуация, что warning каждую минуту, и не один. В итоге лог нечитаем, админ пишет гневные письма (багтрекеру, к счастью, а не мне)


Игра Portal

by Vladekk 18. Май 2010 14:39

portal 03 resized 

Я вчера увлёкся и прошёл  до конца игру Portal. До того уже и не помню, когда на PC игры запускал. А тут её раздают бесплатно, и на реддите заплюсовали, так что решил посмотреть.

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

Сюжет состоит в том, что ты выступаешь в роли подопытного кролика в экспериментах по использованию портативного устройства,(“пушки”) позволяющего открывать телепорты (“порталы”). Указания из динамиков тебе даёт приятный женский, слегка специально “компьютерный” голос искусственного интеллекта, обладающего к тому же отличным “бюрократическим” чувством юмора.

Игровая механика незамысловата, но затягивает. Объяснять бессмысленно, надо самому испытать. Если первые несколько уровней покажутся скучными, попробуйте пройти чуть дальше. Portal не совсем шутер, и особых навыков/реакции не требует, да и Save/Load работает.

Чтобы скачать игру, нужно поставить приложение Steam, сделать это можно на оф. сайте.

Ещё можно посмотреть вводное видео:

http://store.steampowered.com/video/400


Использование Windows Search на C# / в .NET приложении

by Vladekk 8. Апрель 2010 14:36

По работе нужно программно вызывать Windows Search для поиска инфы в произвольных документах на диске.

Вот эта ссылка очень помогла - Using Windows Search in your applications

Ещё тут ничего примеры  - Windows Search Sample Code

Делаю ссылки, потому что мне было труднее чем обычно в гугле найти это всё – пусть будет рейтинг повыше у них :-)

SDK, кстати, найти легко - Microsoft Windows Search SDK


Траблы консольного Линукса

by Vladekk 26. Март 2010 13:33

Так меня задолбали постоянные траблы во время настройки линуксового сервера из консоли, что я решил все их записать. А вы прочитаете и решите, зря я жалуюсь, или нет. У меня Debian, к другим дистрибутивам это может не относится.

1. Если из putty вставлять в редактор midnight commander, тот автоматом пытается добавлять лишние пробелы в начале строки (т.н. autoindent) и форматирование летит к чёрту. Это можно отключить, но я с большим трудом нашёл, как вызвать опции редактора mc.

Ещё вроде бы можно это отключить с помощью удерживания shift, но похоже, что шифт перехватывает сам putty когда используешь shift+insert для вставки текста и до mc он не доходит.

2. Если записать просто в содержимое файла /etc/motd приветствие, которые выводится при входе в консоль, оно перезапишется при следующей перезагрузке. Я его больше часа рисовал, а теперь всё потерялось (бэкап ещё не успели наладить). Чтобы этого избежать, сделайте, чтобы симлинк /etc/motd указывал на ваш файл с текстом, а не на тот, что по умолчанию.

3. Если ошибёшься в каком-нибудь системном настроечном файле, сервер просто не загрузится. И всё тут. Я ошибся в /etc/network/interfaces. Естественно, все файлы имеют свой формат, ошибиться – проще простого. Как проверить валидность такого файла заранее, мне неизвестно.

4. Скопировал phpbb (уже настроенную). Не работает, но сообщений об ошибках не выводит. Опции не помогают. В чём дело – понять невозможно. Попытался установить заново, инсталляция показала – плагин php-mysql не стоит (сервер был свежий). Понятно, что отчасти я сам виноват, но блин можно же сообщения об ошибках нормальные выводить.

5. Поставил в php.ini опцию upload_max_filesize в один гигабайт, всё работает. Ну, думаю, чего мелочится – поставил в 4 и забыл. Выяснилось, что если стоит 4, то вообще перестаёт работать – не даёт закачать даже крошечные файлы. Это к вопросу “Ещё один повод ненавидеть php” (как и предыдущий пункт, впрочем).

6. В текущей версии дебиан (stable) пакеты очень старые, моно вообще древний, например, а nginx версии 6, при том, что 7 версия его считается stable, а 8 – beta.

Если подключить репозитории от версий testing/unstable, то поставить ничего становится невозможно – apt-get вечно ругается на зависимости. Единственное, что помогает – aptitude, который их сам выясняет и ставит как ему кажется разумно. Не знал бы – так бы и компилировал из исходников свежии версии дальше.

7. Про компилирование я вообще не говорю. Никогда ничего с первого раза не компилируется (мало-мальски сложное), надо ставить кучу всяких –dev пакетов, каких именно – угадать далеко не всегда легко. Часто сообщения об ошибках странные и запутанные. Например, при сборке mono у меня был пробел в имени папки – а ругалось на отсутствие какого-то файла внутри, причём далеко не сразу. Если берёте старую версию софта или просто старый софт, который давно не обновлялся – будьте уверены, на новой версии компилятора gcc вам ничего не светит – будете до посинения исходник ковырять (пытался скомпилить SETedit, плюнул).

В целом – разница с Windows разительная. Тут обычно так: нашёл софт (пиратский), скачал с торрентов, установил и пользуешься, тыкая мышкой.

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


I'm back!

by Vladekk 21. Март 2010 12:43

Мы подняли новый сервер в Германии. Постепенно всё переедет туда. Картинки наконец починил, должны работать нормально. Надеюсь, больше мой блог (который я дико забросил в пользу твиттера) исчезать не будет.

Если нужен хостинг (за деньги), обращайтесь - сервер совсем неслабый, потянет что угодно. (8 GB RAM,4-ядерный Core I7)

Скорость до него обычно очень большая со всего мира. (Из дома у меня было 700 КБсек, из США - 7 мегабайт в секунду)


Powered by BlogEngine.NET 1.6.0.0
Theme by Vladekk

Автор

Меня зовут Vladekk. Я разработчик на .NET, блоггер, меломан и живу в Латвии. В интернетe делаю этот блог и проект Радиоархив. Твиттер - vladekk