Блог веб-программиста

4Июн/100

Как получить MAC из busyBox

Сегодня потребовалось из busybox при установки Debian netsinst получить MAC-адрес сетевки. Это как оказалось можно сделать так:

# ip l sh eth0
17: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:c0:9f:55:6e:e5 brd ff:ff:ff:ff:ff:ff

Связано с категорией: linux Нет комментариев
4Июн/100

Лечим Network is unreachable в Java на Debian/Ubuntu

Если у вас в Debian или Ubuntu не работают приложения, написанные на Java, ругаясь при этом как то так:

38 connect(22, {sa_family=AF_INET6, sin6_port=htons(80), inet_pton(AF_INET6, "::ffff:72.5.124.95", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28
6938 connect(22, {sa_family=AF_INET6, sin6_port=htons(80), inet_pton(AF_INET6, "::ffff:72.5.124.95", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 ENETUNREACH (Network is unreachable)
Или вот так: Could not bind/listen. Network is unreachable.

Лечится это просто.

Редактируем файл /etc/sysctl.d/bindipv6only.conf и ставим там 0 вместо 1. Перегружаемся и всё работает! Проверено, у меня так hadoop, hbase не хотели запускаться.

Если хотите без перезагрузки, то можете ещё выполнить:


echo 0 > /proc/sys/net/ipv6/bindv6only
sysctl net.ipv6.bindv6only=0

Связано с категорией: linux Нет комментариев
10Янв/101

Ресайз PNG картинок c прозрачностью в Thunar

Сегодня мне пришлось решить рутиную задачу - изменить размер PNG картинок не теряя при этом прозрачность. Искать какой либо софт было лень, поэтому решил написать bash скрипт, который всё сделает за меня.

Связано с категорией: linux Читать полностью
19Дек/092

Перенос MySQL в другую папку/раздел на Debian/Ubuntu

Недавно мне пришлось переместить данные MySQL в другую папку(а точнее на другой раздел) на Debian Linux 5.0.3.

Логично, что простым переносом файлов тут не отделаешься, надо что-то где-то прописать.

По-умолчанию данные MySQL лежат в /var/lib/mysql. Мне захотелось, чтобы они были в /home/mysql. Переносим папку mysql куда нам нужно, затем лезем в конфиг MySQL (/etc/mysql/my.cnf).

Там есть опция:

datadir         = /var/lib/mysql

Вот её мы заменяем на следующее:

datadir         = /home/mysql

Пробуем перезапустить наш MySQL сервер (/etc/init.d/mysql restart) и в итоге у нас ничего не запускается.

Смотрим tail /var/log/messages и видим приблизительно такое:

 kernel: [ 2714.258037] audit(1227462526.718:13): type=1503 operation="inode_create" requested_mask="w::" denied_mask="w::" name="/home/mysql/yii.test" pid=19659 profile="/usr/sbin/mysqld" namespace="default"
 kernel: [ 2714.310572] audit(1227462526.770:14): type=1503 operation="inode_permission" requested_mask="rw::" denied_mask="rw::" name="/home/mysql/ibdata1" pid=19659 profile="/usr/sbin/mysqld" namespace="default"

Это нам говорит о том, что политика AppArmor запрещает всякие манипуляции мусклу в новой папке. И это естественно, ведь AppArmor думает, что базы лежат всё там же, в /var/lib/mysql.

Значит надо переписать конфиг AppArmor. Открываем и редактируем /etc/apparmor.d/usr.sbin.mysqld . В нём меняем всё, где упоминается /var/lib/mysql на /home/mysql. Затем перезапускаем AppArmor и MySQL:

sudo service apparmor restart
sudo /etc/init.d/mysql restart

И у нас всё работает! Такая же схема для Ubuntu.

Связано с категорией: linux 2 Комментарии
20Сен/090

Разработчики Sabayon Linux планируют выпустить версию 5.0 через 2 недели

Wolfden в своём блоге написал о начале тестирования второй беты Sabayon 5.0.

Он надеется выпустить финальную версию Sabayon 5.0 через две недели, однако точной даты никто не знает.

Связано с категорией: linux Читать полностью
6Сен/091

О Sabayon 4.2 и не только

Поставил я как то себе на домашний компьютер Sabayon 4.2 Gnome x86_64. Конечно хотелось бы скачать Sabayon 5, но его ещё нигде нет - одни слухи только. Первое впечатление о системе было замечательное.

Ну Gentoo как Gentoo, только ставится быстрее, не надо с хэндбуком сидеть. Есть встроенный менеджер пакетов entropy с графическим фронтэндом Sulfur. Из консоли всё ставится через equo install. emerge также работает.

Связано с категорией: linux Читать полностью
24Ноя/080

qutIM — Компиляция из исходников на Gentoo 2008.0

Как известно, qutIM перешел на использование Qt 4.4. В Gentoo Linux 2008.0 Qt4.4 находится под хардмаском.
В
моем случае, в системе был установлен Qt 4.3. qutIM не может быть
скомпилирован на этой версии. Перекомпилировать все приложения,
использующие Qt 4.3 мне не хотелось. Поэтому предлагаю такой принцип
решения, которое в принципе должно подойти и для других дистрибутивов
Linux. Если коротко, то его суть в компиляции qt-4.4 и прописывании
пути к нему в cmake.

1. Качается Qt 4.4.3 с оф сайта
2. Распаковывается в какую-нибудь папочку
3. Запускаем

# ./configure -prefix /opt/qt-4.4.3

Таким образом, наш Qt будет находиться в отдельной папке и не будет мешать другим программам.
4. Компилируем и устанавливаем

# gmake
# sudo gmake install

Всё. Установка Qt 4.4 на это завершена.
Теперь приступаем к компиляции qutIM.
Забираем из SVN.

# svn co http://qutim.org/svn/qutim/

Переходим к плагинам и забираем ICQ.

# cd qutim/plugins
# svn co http://qutim.org/svn/icq

Компилируем qutIM.

# cd ../
# cmake -DQT_QMAKE_EXECUTABLE=/opt/qt-4.4.3/bin/qmake .
# make

Собственно -DQT_QMAKE_EXECUTABLE - и есть тот важный параметр.

Плагин к ICQ:

# cd plugins/icq
# /opt/qt-4.4.3/bin/qmake
# make

Также вас может заинтересовать icq, smaper, мобильный агент скачать

Связано с категорией: Новости Нет комментариев
20Ноя/080

Проприетарные драйвера ATi на ядре 2.6.25

Поставил вот себе недавно Gentoo Linux 2008.0 с portage снапшотом от 12 ноября 2008 г. и ядром kernel-2.6.25-gentoo-r9. Решил поставить проприетарные драйвера на свой ATi Radeon 9600 Pro.

Решил воспользоваться факом Распространенные вопросы об ATI в Gentoo Linux. Но не тут то было. Получил по лбу ошибкой:

WARNING: modpost: module fglrx.ko uses symbol 'init_mm' marked UNUSED

Ну warning и warning скажете Вы. Но тем не менее удачно скомпилированный модуль отказывался запускаться:

FATAL: Error inserting fglrx (/lib/modules/2.6.25-gentoo-r9/fglrx/fglrx.ko): Unknown symbol in module, or unknown parameter (see dmesg)

init_mm собственно и является причиной.

В интернетах узнал, что у кого-то выползают ещё и такие ошибки:

fglrx: Unknown symbol flush_tlb_page
 
Symbol init_mm is marked as UNUSED, however this module is using it

Загуглив, решение было найдено.

Редактируем /usr/src/linux/arch/x86/kernel/init_task.c

Меняем строчку

EXPORT_UNUSED_SYMBOL(init_mm); /* will be removed in 2.6.26 */

На

EXPORT_SYMBOL(init_mm);

Компилируем ядро и затем заново компилируем fglrx (ну или emerge ati-drivers).

Остается вопрос, как это всё будет выглядеть в 2.6.26.

Связано с категорией: Новости Нет комментариев