Что делать с ошибкой W: Possible missing firmware /lib/firmware/rtl_nic/rtl8105e-1.fw for module r8169 например при обновлении ядра? Собственно это не совсем ошибка, а предупреждение. Просто для работы realtek не хватает пакета firmware-realtek.

Читать далее

Случилась у меня казалось бы неразрешимая проблема. Во время обновления Debian 6 не захотело вставать ядро. Все идеи иссякли и я полез на форумы по linux искать совета.

В этом посте хочу описать свои впечатления о 5-ти форумах, крупных и первых в списке гугла. Я грамотно составил текст сообщения и разместил на всех форумах, как делал уже это с php форумами.

Читать далее

TF-3200

TF-3200

Погорел чип на материнке, нет подключения к сети. Надо купить сетевую карту! Знакомая ситуация?
В моем случае это была сетевая карта TF-3200 от TPlink, которая сейчас популярна в магазинах. Для конечно же нужен драйвер. На диск я не заглядывал, т.к. нету дисковода, а за драйвером полез на официальный сайт.

Читать далее

wine

wineПри установке некоторых пакетов winetricks показывает предупреждение, что нужно установить значение в файле

/proc/sys/kernel/yama/ptrace_scope

равное 0. Иначе бубубу много ошибок. Например такое выдается при установке .NET framework-ов. А без них много чего не работает.

Читать далее

Для тех, кто работает с проектом на удаленном сервере, наверняка важна комфортность этой работы, особенно если используется IDE. В моем случае IDE NetBeans. У этой иде есть особенность, она сканирует проект при открытии, а при открытии большого удаленного проекта это сканирование может происходить и 30 минут. Во время сканирования иде превращается в тормозящий тектовый редактор, невозможно перейти к ф-ии по ctrl и вообще ничего, кроме написания кода. Да и то файлик может сохраняться долго.

Для монтирования удаленной системы раньше я использовал sshfs. Описывал в этом посте.
Преимущества:
+ защищенное соединение, запрашивает пароль
+ возможность автомонтирования
+ не плохая скорость доступа..
Недостатки:
– все же не достаточная скорость доступа
– соединение часто отваливается (по таймауту, неактивности или отвалу инета).

В итоге мне приходилось часто открывать проект заново и ждать пока он пересканируется >_<.

Позже я услышал о NFS – Network File System. По сути это как подключение сетевого диска. Для развертывания необходима установка серверного пакета на сервере:

и клиентского на своей машине:

*portmap может быть заменен на rpcbind

Далее прописать папку и ip которому открыт доступ в

Строчка настройки выглядит примерно так:

или можно указать диапазон или * для всех.

Доступные опции:
ro: Только на чтение, стоит по умолчанию
rw: Доступна запись
no_root_squash: ограничивать ли рута. если не установлена эта опция, то доступ к файлам идет от пользователя nobody. если опция установлена и на клиентской машине у вас пользователь с уровнем доступа root, то он будет как бы root на серверной папке.
no_subtree_check: проверять или нет поддиректории. если открыта только одна папка и нет подпапок, то включение этой опции ускорит запросы
sync: по умолчанию asynk. включение synk более безопасно, если вдруг соединение оборвется или сервер перезагрузится, то данные в редактируемом файле не потеряются. asynk быстрее.

После настройки надо перезапустить сервер:

Хотя можно применять настройки после изменений так:

Для подключения папки на клиентской машине произвести описанную выше установку, далее просто:

Таким образом я замонтировал открытую папку /home с сервера с ip в свою домашнюю папку /mnt/srv.

Можно настроить монтирование в fstab

Тогда подключить можно

NFS
Преимущества:
+ перманентное соединение. разрывы гораздо реже (не было уже 2 дня)
+ скорость доступа. по моему проект подключенный так отсканировался быстрее, так же файлы сохраняются без задержек
Недостатки:
– безопасность. (доступ указывается для ИП, пароль не запрашивается)

memcached

Понадобилась настройка memcached (memcache) на 2 сервера. Задача оказалась не такой тривиальной. С доступом на localhost, где демон слушает по умолчанию, проблем не было. Однако на удаленный сервер достучаться не получалось. Сервера оба debian.
Возможно этот пост актуален только для меня и проблем может не возникать.
Домашняя страница проекта на code.google.

Для начала установка. Тут все просто:

Взято с мануала по memcached на php.net. Хотя при установке туда не заглядывал.
После установки можно проверить слушается ли теперь порт 11211.

Так же можно проверить настройки конфига.

После изменений конфига делаем:

Примеры выше взяты с Хабра.

В коде php используется очень просто. В данном случае у меня создается класс CACHE с singlton, приведен кусок.

И тут то и выяснилось, что на второй сервер обращения не доходят. Элементарная подмена в конфиге адреса прослушивания ничего не дала (-l *.*.*.*).
Диагностику помогут провести следующие ф-ии:

1. Показать есть ли процесс memcached

Тут мы видим, что процесс есть и запущен на нужном адресе. Памяти выделено 1000мб, пользователь nobody. 127.0.0.1 тут оказался лишним, memcached не поддерживает несколько ip.
2. Показать слушаемые порты

Точно слушает.
3. Включить вывод ошибок в php. :) Ошибок не было.
4. Догадка о закрытом порте. Если не установлено, то ставим nmap. Проверяем localhost или ip.

Можно еще так проверить. Если нет соединения, то закрыт.

Выдаст список открытых портов. В моем списке 11211 не оказалось. “Вот в чем собака зарыта”. :)
5. Смотрим iptables.

Собственно есть еще много ключей, -nat например, но этого хватит. Выдаст список установленных для этого фаерволла правил. Еще можно так:

Если без перенаправления, то в консоли выведутся правила. Через эту команду можно организовать сохранение настроек, т.к. после перезагрузки они сбросятся.

Далее порт 11211 надо открыть, но только для одного IP адреса.
Тут мне пригодились следующие ф-ии:
1. Показать нумерованный список правил и удалить правило по номеру

2. закрыть все входящие, для которых нет правил на открытие

Еще примеры:
открыть все исходящие порты
iptables -P OUTPUT ACCEPT
открыть порт 80 для всех входящих соединений
iptables -A INPUT –dport 80 -j ACCEPT
открыть 22 и 5432 порты только для конкретного IP
iptables -A INPUT -m multiport –dports 22,5432 -s IP_ADDRESS -j ACCEPT

Так же не забудьте открыть другие нужные порты для нужных ИП.

Более подробная настройка iptables в этом посте, с примерами скриптов.

Еще можно подкрутить сессии в php.ini на использование с memcached.

Для мониторинга была установлена утилита phpmemcachedadmin. В ней можно создать стек ваших серверов с memcached и смотреть статистику в приятном интерфейсе.

skype: error while loading shared libraries: libXss.so.1: cannot open shared object file: No such file or directory

А я просто хотел sudo apt-get install skype. Что же делать?

Сначала проверим, возможно не установилась нужная библиотека. Хотя apt тянул все нужные библиотеки и libXss.so в том числе.
Проверяем
sudo apt-get install libXss.so
или
apt-file search libXss.so
или
dpkg -S  libXss.so

Скорее всего вам выдаст что-то вроде

Конечно же установщик потянул с собой нужные ia32-libs и libxss1 библиотеки. Но скайп все равно не работает. Дело в том, что скайп написан в 32 битной архитектуре, а у нас 64 битная система, значит нам нужны библиотеки под 32 бит – i386.

Решение:

UPD. 10.08.13
Еще одна ошибка

error while loading shared libraries: libGL.so.1: cannot open shared object file: No such file or directory

Фиксится таким образом:

Добавить туда это

И запускаем конфиг.

Для ubuntu 13.04

Если необходимо работать с кодом на удаленном сервере то можно пойти несколькими путями:

  1. FTP – качает tmp файл, редактирует и закачивает обратно на лету. Можно использовать редактор с подсветкой.
  2. Зайти по ssh и пользоваться консольными редакторами nano, vim и др, а так же mc. Необходимо постоянно вводить пароль, достает.
  3. Примонтировать файловую систему через FTP или SSH. В этом случае получим как будто папку в нашей файловой системе типа /mnt/server и тогда возможно использовать IDE с доступом ко всему проекту сразу.

Сейчас рассмотрим третий вариант. Монтирование по FTP осуществляется в Ubuntu с помощью пакета curlftpfs. Однако подключение будет очень медленным, отрывать большие проекты в IDE будет практически невозможно. Монтирование по ssh не смотря на шифрование поддерживает скорость 200-250кб.

Для начало надо установить пакет sshfs.

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

Пример использования sshfs

Чтобы отмонтировать

И вот в момент подключения будет запрошен пароль. Открытая сессия будет сохраняться до перезагрузки или завершения сеанса, т.е. не надо будет восстанавливать сессию как с ssh после перерыва в работе. Но когда работаешь с сервером каждый день, то подключаться каждый раз перед работой тоже надоедает. Стоит сделать автоматическое монтирование по sshfs.

Для начала генерируем открытый и закрытый ключ.

На все вопросы генерации жмем Enter, пароль вводить не надо. В итоге будут созданы ключи в ~/.ssh директории.
id_rsa – закрытый ключ, должен быть секретным и никому не виден.
id_rsa.pub – открытый, его и будем использовать для входа без пароля.

Все, что остается сделать, это записать открытый ключ в файл .ssh/authorized_keys на сервере для нужного пользователя. Если для root то /root/.ssh/ иначе в /home/user/.ssh

Способ первый длинный:
Копируем открытый ключ на сервер. Выполняется на клиентской машине.

Копируем ключ в нужный файл. Выполняется на сервере.

Способ второй короткий:
Копируем с клиентской машины ключ сразу куда надо на сервер.

Та-да! Теперь еще можно выставить права на чтение на сервере:

Пробуем зайти по ssh.

Если вход произошел успешно и главное без ввода пароля, то полдела уже сделано. Теперь задействуем установленный ранее sshfs. Но сделаем это хитро. Создадим bash скрипт и добавим его в автозагрузку.

Тут например монтируем домашнюю удаленную папку в папку server на локальной машине.

Меняем права на выполнение для файла

В автозагрузку можно добавить просто команду или переместить этот файл в /etc/init.d/ или создать правило в cron с меткой @reboot.

Теперь при каждой перезагрузке файловая система будет монтироваться автоматически по sshfs и не надо вводить пароль!

Можно сделать автоматическое монтирование и без rsa ключей. Для этого надо добавить в автозагрузку команду:

Пароль берется автоматически из стандартного потока ввода-вывода.

Возможные проблемы.

1. Agent admitted failure to sign using the key.Permission denied (publickey).

Означает, что сгенерированный rsa ключ не установлен в системе, не привязан. Для привязки надо выполнить:

2. Что если не вышло выполнить команду из пункта 1 и выдалась ошибка
Could not open a connection to your authentication agent

Надо выполнить сначала

И уже после ssh-add из пункта 1.