среда, 29 апреля 2009 г.

Bash скрипты (Linux)

Полезные ссылки:
http://www.arachnoid.com/linux/shell_programming.html
http://www.panix.com/~elflord/unix/bash-tute.html
http://www.tldp.org/LDP/abs/html/
http://www.gnu.org/software/bash/manual/bash.html

очень полезной оказалась задача вывода сообщения об ошибке прямо в файл (без if-ов):
mkdir /var/log/apache2 2>> /home/user/log.log
решение подсказано этой статьёй:
http://ubuntuforums.org/showthread.php?t=689289

LAMP Linux (Ubuntu 8.04) Apache (2) MySQL PHP (5)

Устанавливаю по статье:
http://ubuntueasy.com/servery/kak-ustanovit-lamp-wordpress-na-ubuntu-804
Сразу отпишусь что инструкции выполняются в терминале (alt-f2->gnome-terminal->Enter)
Устанавливаем Apache
#sudo apt-get install apache2

Тестируем сервера гипертекстового транспортного протокола, открываем web-браузер и вводим
http://localhost

Работает (http://localhost пишет It works!), но при перезагрузке в коммандной строке пишет

Could not reliably determine the server's fully qualified domain name, using
127.0.0.1 for ServerName

чтобы не писал предлагаю:

sudo gedit /etc/apache2/apache2.conf
где нибудь в начале добавить строчку ServerName localhost и сохранить

теперь пробуем sudo /etc/init.d/apache2 restart - этой ошибки уже нет)

(решение подсмотрено здесь)

Устанавливаем PHP5
#sudo apt-get install php5 libapache2-mod-php5

Рестартуем Apache
#sudo /etc/init.d/apache2 restart

Проверяем всё ли прошло успешно.
#sudo gedit /var/www/testphp.php

Вставьте следующий тэг в testphp.php файл:

(в исходной статье тут пробел - видимо копипастили от куда то тоже, я предлагаю такой скрипт - т.к. одним махом двух зайцев)

Сохраните этот новый файл. Откройте web-браузер и введите, http://localhost/testphp.php
Убедитесь, что удалили файл, в последствии это может представлять угрозу безопасности.
#sudo rm /var/www/testphp.php

Во время перезагрузки вывалились такие ошибки:

httpd (no pid file) not running (2)No such file or directory: apache2: could not open error log file /var/log/apache2/error.log. Unable to open logs

По первому сообщению нашёл такую мысль:
> httpd (no pid file) not running
Вот тут он хочет остановить сервер, но останавливать нечего (no pid file) так как
он не запущен..

Не работает http://localhost соответственно. Очевидно что так же какая то проблема с доступом к логам - посмотрел и действительно в /var/log/ вообще не было папки apache2, а в ней соответственно файла error.log - очевидно что это какой то баг - создал необходимую папку, правда почему то при перезагрузке системы она опять пропадает - см. вконце)

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

Устанавливаем MySQL
#sudo apt-get install mysql-server

MySQL первоначально позволяет только связи от localhost (127.0.0.1). Мы должны будем удалить это ограничение, если Вы желаете сделать его доступным для всех в Интернете. [Эти действия с доступом к инету на локальной машине не обязательны]

Откройте файл /etc/mysql/my.cnf
#gksudo gedit /etc/mysql/my.cnf

Найдите строки bind-address = 127.0.0.1 и прокомментируйте (# - диез), сохранил файл.

MySQL прибывает без root пароля как значения по умолчанию. Это - огромный риск для безопасности. Вы должны будете установить его. Так, чтобы локальный компьютер получил root доступ тоже. local-machine-name - название компьютера, за которым Вы работаете.

#mysqladmin -u root password newpassword
#mysqladmin -h root@local-machine-name -u root -p password newpassword
#sudo /etc/init.d/mysql restart

(шаг с изменением пароля можно пропустить для последней версии MySQL так как при установки базы она сама у меня запросила пароль для пользователя root, усли у вас она этого не сделал то это шаг обязателен)

Пароль уже спросили во время установки - так что в современном дистрибутиве действительно этот шаг лишний.

Во время установки произошли ошибки:

/etc/lsb-base-logging.sh: line 84: INITOUTPUT: свободное значение
invoke-rc.d: initscript mysql, action "stop" failed.
/etc/lsb-base-logging.sh: line 84: INITOUTPUT: свободное значение
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: не удалось обработать параметр mysql-server-5.0 (--configure):
подпроцесс post-installation script возвратил код ошибки 1
dpkg: зависимости пакетов не позволяют настроить пакет mysql-server:
mysql-server зависит от mysql-server-5.0, однако:
Пакет mysql-server-5.0 пока не настроен.
dpkg: не удалось обработать параметр mysql-server (--configure):
проблемы зависимостей -- оставляем не настроенным
При обработке следующих пакетов произошли ошибки:
mysql-server-5.0
mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
МуСКуЛ не встал соответственно, будем копать ошибки (вот тут сразу сожалеешь что Убунту русско-язычный стоит - приятнее гуглить когда ошибки на буржуйском).

Рапорт об ошибке нашёл тут: https://bugs.launchpad.net/netbook-remix/+bug/291987

В целом надо редактировать файл /etc/lsb-base-logging.sh с целью комментирования if-ов (не забывая их концовки fi) - комментарий делается при помощи символа # в начале строки. Какие строки надо закоментировать - (84-114), (136-156):

sudo gedit /etc/lsb-base-logging.sh
Затем выполняем эти команды:

sudo dpkg --configure -a

sudo apt-get install mysql-server

при выполнении команды mysqladmin -h root@local-machine-name -u root -p password newpassword использовал localhost вместо local-machine-name, проверить потом можно выполнив mysql -u root -p.

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

Устанавливаем MySQL Administrator и phpmyadmin
#sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin

Чтобы заставить PHP работать с MySQL, откройте php.ini файл
#gksudo gedit /etc/php5/apache2/php.ini

Вы должны будете снять (# - диез) с “; extension=mysql.so” строки так, чтобы это было похоже на это extension=mysql.so

Рестартуем Apache
#sudo /etc/init.d/apache2 restart

рестартовать Апач опять не захотел - снова пропала папка Апача и лог-файл, пересоздал, заработало. В пхп ини строчки extension=mysql.so не нашёл, зато была extension=msql.so - какой вариант правильнее 100% сложно сказать но файла msql.so в системе поиском не нашёл, а вот mysql.so присутсвует)

Для того чтобы убедиться что всё работает:
  • перезагрузился
  • sudo /etc/init.d/apache2 restart
  • и что вы думаете? опять умерли логи(
httpd (no pid file) not running
(2)No such file or directory: apache2: could not open error log file /var/log/apache2/error.log.
Unable to open logs
Временное лечение
sudo mkdir /var/log/apache2
sudo chown user:group /var/log/apache2 (в моём случае шаг не нужный, не помогает даже если 777 дать, а др возможно не лишний)
sudo /etc/init.d/apache2 start
ещё попробовал это (предварительно бэкап файла конечно сделав):
sudo rm /etc/logrotate.d/apache2
не помогло - дело не в логротейтах...

попробовал эту статью:
http://ru.gentoo-wiki.com/wiki/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Apache2

Could Not Open Error Log

While starting Apache, it prints:

Error while starting apache: (2)No such file or directory: apache2: could not open error log file /usr/lib/apache2/logs/error_log.

/usr/lib/apache2/logs should be a symlink pointing to /var/log/apache2 . Check it using:

ls -la /usr/lib/apache2/logs

(note the lack of a slash on the end). If /var/log/apache2 is missing, create it and make sure you give apache ownership:

mkdir /var/log/apache2

chown apache:apache /var/log/apache2

If the symlink /usr/lib/apache2/logs is missing, you can create it:

ln -s /var/log/apache2 /usr/lib/apache2/logs

You don't need to set permissions on the symlink.

не вылечило, но
sudo ln -s /var/log/apache2 /usr/lib/apache2/logs
поправилось (и ссылка не пропадает) - я так понял не лишне

Попытаемся вычислить момент в который папка логов умирает. Для этого выключаем апач: sudo /etc/init.d/apache2 stop
и смотрим процессы sudo ps -A - убеждаемся что апача там больше нет. Проверяем нашу папку логов - есть, значит умирает не при выключении апача.

пробуем редактировать автозапускающий серипт:
sudo gedit /etc/init.d/apache2

вставляем где нибудь в начале (рекомендую во второй строчке):
mkdir /var/log/apache2
if [ $? -eq 0 ]
then
echo $(date)": директория создалась без ошибок" >> /home/log.log
else
errmsg=$(date)": "$(mkdir /var/log/apache2 2>&1)
echo $errmsg >> /home/log.log
fi

перезагружаемся и смотрим наш лог файлик:
Wed Apr 29 21:57:12 MSD 2009: директория создалась без ошибок
теперь всё работает, но каждый раз заново создаётся директория - симптом вылечен, болезнь осталась:
mkdir -p /var/log/apache2
более короткий и тоже рабочий пример скрипта. Болезнь будем лечить не сегодня уже)

вторник, 28 апреля 2009 г.

упало (поломалось) меню Ubuntu - лечится)

Ubuntu 8.04 netbook-remix
Случилась такая напасть - редактировал Меню Убунты (Параметры
->Главное Меню) и в какой то момент оно просто упало - большая часть папок пропали из трёх оставшихся Любимые оказалась пустой.

По-гуглив сходу нашёл эту полезную, но не совсем рабочую статью:
http://otvety.google.ru/otvety/thread?tid=1a2e652a44fa5d78

Anton Valter
Лучший ответ
У меня была такая-ж проблема.
Так-же не мог запустить программу настройки. Но выход нашелся случайно.
попробуй в консоли запустить "gmenu-simple-editor".
Эта команда выдаст Вам диалог похожий на тот, который получается по "Изменить меню" и попутено поравит нужные файлы. После неё можете запускать стандартный редактор меню.
НЕ СРАБОТАЛО в том числе под рутом

SnowBell
Удалить файл gnome-applications.menu из каталога ~/.config/menus/

rm ~/.config/menus/gnome-applications.menu

И перелогиньтесь в системе. Нужное содержимое этого каталога будет создано заново.
ТОЖЕ НЕ СРАБОТАЛО, но в этом решение есть намёк на рабочее для Убунты 8.04 во всяком случае. Кстати обратите внимание что у автора вопроса второе решение тоже не сработало - значит я не одинок, но решение всё же нашёл опираясь именно на этот совет.

Действительно выполняя эту команду в консоли пишет ошибку "No such file or directory". Местным файловым менеджером Наутилусом посмотрел эту папку и там такого файла нет - не чего удалять). Но зато нашёлся файл applications.menu - его и надо удалять)

Итак решение - в консоли (alt-F2->gnome-terminal):
rm ~/.config/menus/gnome-applications.menu
(если вы в консоли под рутом уже сидите, то вместо ~ надо указать свою домашнюю папку - например /home/я/)

PS чтобы в наутилусе видеть скрытые папки-файлы жмём в меню проги Вид->Показывать скрытые файлы (ctrl-H)
PSPS вообще может в следующей версии опять поменяют имя файла... так что Наутилус или ДИР Вам в помощь)

Ещё рекомендую обратить в домашней папке на вот эту директорию: .local/share/applications - можно прямо там удалять некоторые ссылки (ярлыки)...

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

metromap.antex.ru (параллельный проект pMetro под Linux)

Разворачивая под Wine pMetro заметил в ФАК этой программы ссылку на этот проект.

В общем таки под Ubuntu 8.04 прикручу. Т.к. я сам новичок на Убунте, то предоставлю более менее пошагово что пришлось сделать (инсталяция на основе Makefile как я понимаю):
  • качаем дистрибутив с официального сайта проекта: http://metromap.antex.ru
  • распаковываем - я прямо в туже папку распоковал, получилось в итоге папка: /home/я/Загрузки/metromap-0.1.2
  • запускаем консоль (alt+F2, gnome-terminal)
  • в консоли переходим в наш распакованный каталог - в моём случае это
    cd /home/я/Загрузки/metromap-0.1.2
  • вделаем Makefile запускаемым (не знаю на сколько это необходимо, но в другом каком то мануале вычитал, так же обратите внимание что в конце chmod нет буквы E не знаю почему я раз 5 набрал подряд с буквой Е, зная что не надо, но превык что МОД пишется с Е на конце... но руки привыкле заканчивать это слово Е :-D)
    sudo chmod 0400 Makefile

  • инсталируем
    make install
    Всё)
Итак получили прогу - можно ещё добавить её в меню куда-нибудь (Например Прочие) - для этого юзаем Параметры-Главное меню. Раз вы это всё ещё читаете, то вы как и я - начинающий, по этому будет не лишне указать куда встала программа: /usr/bin/metromap.

Программа работает - левая кнопка начальная станция, правая - конечная. работает без проблем, но конечно это мягко говоря ОЧЕНЬ урезанный вариант pMetro, но всё равно респект автору.

На всякий случай всё же оставил pMetro под Wine - т.к. там конечно куда больше информации и возможностей. А в большинстве случаев с головой хватит и этой софтины)

Сайт пМетро: http://pmetro.info
сайт метромэп: http://metromap.antex.ru

файл INSTALL из папки doc дистрибутива гласитЪ:
untar, cd to untared directory and run "make install" to install
in "/usr". To install in other location run
"make DESTDIR=/path/to/some/dir install".

If you dont want to "install" it you can just run "metromap.py"
from untared directory.

To install additional data files - create directory with name
like "Moscow" in DESTDIR/share/metromap/data/ and put there Metro.ini
and picture specified in that Metro.ini or just put CityName.zip or
CityName.pmz to DESTDIR/share/metromap/data/ or to ~/.metromap/

Yes, i know that i dont know english.

pMetro и Wine (Ubuntu/linux)

Встала без проблем, работает с тормозами, но терпимо и без ошибок)

pMetro 1.29.1 - http://pmetro.info
Ubuntu 8.04 netbook-remix, Acer Aspire One
Wine 1.0

Интерактивная карта Метро и не только Московского - давно и с удовольствием ей пользуюсь под Виндой. Жалко что только под Винды сделанна.

Иногда полезно зайти и почитать ФАК на официальном сайте, нашёл аналогичную прогу под Линукс:
http://metromap.antex.ru - будем пробовать)

MosMap Lite 3.1 и Wine (Ubuntu/linux)

где скачать: http://www.moscowmap.ru

Очень удобная программа под Windows (интерактивная карта Москвы, поиск по улицам, на карте отмечены номера домов и прочее...)

Попробовал поднять под линуксом (Ubuntu 8.04, Wine 1.0)
Устанавливается без ошибок, но при запуске программы вылетает с такой ошибкой: "Run time error '380'"; "Invalid property value".

Поставил шрифты от Винды и ситуация улучшилась) : ошибка возникает, но не всегда, возможно это связанно с тем что у меня Линукс без свапа (нетбук-ремикс, Acer Aspire One) и когда заканчивается оперативная память. Масштабирование работает включая до домов (видны номера), но прыгая туда-сюда при очередном масштабировании прога вывалилась с тем же сообщением. Если кто то тестил на нормальной Убунте (со свапом), то возможно рассеете мои предположения (может всё проще - проблема в связке Wine и MosMap). В дополнение скажу что под Вайном прога подтормаживает заметно на моём Acer Aspire One.

Конечно без карты можно обойтись, не критично, но было бы приятно найти аналог под Линукс без посредников (Wine).

Установка Windows шрифтов в Ubuntu:
sudo apt-get install msttcorefonts
ссылка на статью оригинал:
http://www.xp2ubuntu.com/2008/02/windows-ubuntu.html
PS Кстати не факт что шрифты помогли (возможно помогла тупо перезагрузка), но раз уже пошёл разговор о Виндовом софте, то лучше их поставить, чем гадать (я пока новичок в Линуксах и тем более Вайне).

понедельник, 6 апреля 2009 г.

Ubuntu 8.04 netbook-remix Не удалось загрузить индексы всех репозиториев: lpia

netbook: AspireOne ZG5
sys: Ubuntu 8.04 netbook-remix
error: Не удалось загрузить индексы всех репозиториев
details:
Не удалось загрузить http://archive.ubuntu.com/ubuntu/dists/hardy/multiverse/binary-lpia/Packages.gz 404 Not Found [IP: 91.189.88.31 80]
Некоторые индексные файлы не загрузились, они были проигнорированы или вместо них были использованы старые версии
При таком раскладе обновления вообще не грузятся (у меня). Нашёл лекарство здесь: https://answers.launchpad.net/ubuntu/+source/apt/+question/62449

На сколько это правильно сомневается собственно сам автор, но приведу что нужно сделать:
1. в терминале (Alt+F2) жмём sudo gedit /etc/apt/sources.list
2. нужно закомментировать предпоследнюю строчку и в первых 3-х абзацах добавить посередине последовательно строчки:
3. Итого должно получиться что то вроде этого:
deb http://netbook-remix.archive.canonical.com/ubuntu/ hardy main universe multiverse restricted
deb http://ports.ubuntu.com/ hardy main universe multiverse restricted
deb-src http://netbook-remix.archive.canonical.com/ubuntu/ hardy main universe multiverse restricted

deb http://netbook-remix.archive.canonical.com/ubuntu/ hardy-updates main universe multiverse restricted
deb http://ports.ubuntu.com/ hardy-updates main universe multiverse restricted
deb-src http://netbook-remix.archive.canonical.com/ubuntu/ hardy-updates main universe multiverse restricted

deb http://netbook-remix.archive.canonical.com/ubuntu/ hardy-security main universe multiverse restricted
deb http://ports.ubuntu.com/ hardy-security main universe multiverse restricted
deb-src http://netbook-remix.archive.canonical.com/ubuntu/ hardy-security main universe multiverse restricted

deb http://netbook-remix.archive.canonical.com/ubuntu/ hardy-netbook-base main universe multiverse restricted
deb-src http://netbook-remix.archive.canonical.com/ubuntu/ hardy-netbook-base main universe multiverse restricted

deb http://netbook-remix.archive.canonical.com/ubuntu/ hardy-netbook-remix main universe multiverse restricted
#deb http://archive.ubuntu.com/ubuntu/ hardy multiverse
deb-src http://netbook-remix.archive.canonical.com/ubuntu/ hardy-netbook-remix main universe multiverse restricted
соотв если вы не модифицировали этот файл то можно тупо скопировать и вставить мой вариант, так же обратите внимание что решение это касается только сборки Ubuntu 8.04 netbook-remix

Повторюсь что решение взято от сюда:
https://answers.launchpad.net/ubuntu/+source/apt/+question/62449 . Да здравствует поиск и мистер Джон!

вторник, 20 января 2009 г.

Новая версия (4.01) DownloadHelper глючит Firefox (3.0.5)

экстеншен DownloadHelper 4.01 глючит ФФ (Firefox 3.0.5)

В общем если вы пользуетесь контекстным меню при включённом этом плагине (переключаете языки/словари например для проверки орфографии), то после первого переключения из вашего контекстного меню пропадают некоторые полезные элементы: "Сохранить картинку как..." и сами языки. Лечится:
1) удалением экстеншена DH (DownloadHelper)
2) выключением экстеншена DH
3) временно лечится перезапуском ФФ

проблемма выяснилась на зимнем саммите Багзиллы:
https://bugzilla.mozilla.org/show_bug.cgi?id=474293

ПРОБЛЕМА ЗАКРЫТА С ВЫПУСКОМ ВЕРСИИ 4.0.2! :-)