Archive for Debian

equivs: фэйковые пакеты для Debian/Ubuntu

// Февраль 6th, 2017 // 1 Comment » // Debian, linux

Я люблю Debian за его замечательный пакетный менеджер apt, который сам разруливает все зависимости, и для установки софта обычно достаточно одной команды apt-get install <packagename>, но иногда бывает, что именно эта фишка заставляет биться головой об стену, когда пакеты из сторонних репозитариев начинают требовать неразрешимые зависимости, или когда вместе какой-то мелкой консольной утилитой весом в 20кбайт тащится половина Х-ов на 200мегабайт или MTA postfix/exim, там где это вообще не требуется.

Есть замечательная утилита, которая облегчает жизнь в таких ситуациях — equivs. equivs умеет создавать пустые пакеты с полным удовлетворением зависимостей, дабы удовлетворить жажду пакетного менеджера понаставить чего.

И так, допустим, нужно систему заставить думать, что у нас установлен MTA postfix, для начала установим equivs, как всегда это делается легко:

 apt-get install equivs

(далее…)

Debian tftpd

// Март 2nd, 2016 // No Comments » // Debian, linux, tftp

Устанавливаем клиент и сервер tftp

apt-get install tftpd tftp

Добавляем в автозагрузку inetd, в файле /etc/inetd.conf редактируем строку, которая начинается с tftp, в принципе она вполне правильная, но мне нравится другой путь для каталога файлов:

tftp     dgram   udp   wait   nobody   /usr/sbin/tcpd    /usr/sbin/in.tftpd   /var/tftp

Перезапускаем inetd:

invoke-rc.d openbsd-inetd restart

Вот в принципе и все. Если что-то не так — проверяем, слушает ли демон порт:

netstat -lnp | grep :69

должен быть ответ похожий на этот:

udp        0      0 0.0.0.0:69              0.0.0.0:*                           15838/inetd

Проверяем/правим права на каталог с файлами:

chown -R nobody /var/tftp

УкрСклад с базой firebird на Linux

// Январь 29th, 2015 // 6 комментариев » // Debian, firebird, linux, ПО

Для тех кто не знает что это, идем сюда >>.

Все рано или поздно приходят к тому, что предприятие растет, появляются удаленные филиалы и работа с базой по сети просто необходима. Городить ради этого сервер с Windows естественно не у кого желания нет, поэтому появилась идея попробовать все запустить на Linux. Осмотрев принцип работы было выяснено, что сервер программы по сути представляет из себя сервер БД Firebird и обвязку к нему, что очень сильно упрощает идею переноса.

И имеем сервер на Debian Wheezy, выбран был в виду требования УкрСклад к версии Firebird 2.5, которая как раз есть в репозитории (в более ранних версиях Debian — 1.5).

Установим Firebird:

 apt-get install firebird2.5-superclassic

этот пакет вытянет вся нужные зависимости сам. ВАЖНО! При установке запросит пароль для суперпользователя БД SYSDBA — укажите «masterkey«, УкрСклад использует эту учетную запись по умолчанию для подключения к БД.

УкрСклад использует свою библиотеку функций, её тоже нужно добавить на сервер иначе будет ошибка:

DataM.QueryRep.SelectQuery:
Can't format messege 13:98 -- message file C:\Program File\firebird.msg not found.
Access to UDF library "libtbudf.so" is denied by server administrator.

Скачиваем библиотеку:

wget http://www.softbalance.com.ua/files/libtbudf.rar

на всякий случай копия тут >>
для распаковки должен быть установлен пакет unrar

apt-get install unrar

распаковываем сразу в каталог с библиотеками

unrar e libtbudf.rar /usr/lib/firebird/2.5/UDF/

Скачиваем и устанавливаем серверную и клиентскую части УкрСклад. Нас интересует база, лежит она по пути C:\Program Files\UkrSklad6S\db\ файлы Sklad.tcb и SkladEmp.tcb — переносим их на компьютер с линуксом (для тех кто не знает как как это сделать — воспользуйтесь программой WinSCP) и размещаем по пути /var/lib/firebird/2.5/data/, меняем права на пользователя firebird:

chown -R firebird:firebird /var/lib/firebird/2.5/data/

Осталось настроить клиента УкрСклад для подключения к нашему серверу. Открываем в блокноте файл, обычно лежит по пути C:\Program files\UkrSklad6C\ubclient.ini, должно получится вот так:

[Server]
Hostname=192.168.100.3
Path=/var/lib/firebird/2.5/data/

Hostname — меняем на IP или имя компьютера с сервером БД, запускаем клиента, должно пройти обновление и программа запустится.

Есть еще один момент, на Windows XP клеинт упорно не хотел подключатся, выдавал ошибку подключения:

Ошибка соединения с базой данных =*= System Error. Code: 14001.
Приложение не было запущено, поскольку оно некорректно настроено.
Повторная установка приложения может решить данную проблему

Оказалось банально — винде не хватало библиотек, скачиваем vccrt8_win32.msi (локальная копия) и устанавливаем.

В принципе все. Если вас волнует вопрос безопасности в продолжении описание как сменить пользователя БД и пароль на SYSDBA. (далее…)

Установка Debian Squeeze на Dell 1950

// Декабрь 18th, 2014 // No Comments » // Debian, Dell, grub, md, RAID

В процессе установки вылезло сразу две проблемы:
1) это сетевой адаптер «Ethernet controller: Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet», по логике маинтейнеров драйвера не попадают в дистрибутив из-за закрытого кода, и действительно зачем серверу нужна сеть
2) сочетание встроенного рейд-контроллера и использование софтрейда md вызывает глюк — не устанавливается GRUB, т.е. после перезагрузки получаем большой кирпич.

Для начала скачиваем последний netinstall, но т.к. он уже в архиве — ищем его здесь >> и нарезаем на cd-r диск.

Первая проблема решается легко, идем на страничку http://wiki.debian.org/Firmware, находим ссылку на нужный файл, для Сквизи это будет firmware.tar.gz, скачиваем и распаковываем в корень(!) флешки. Тогда при инсталляции драйвер подгрузится автоматически.

Флешку подключаем к серверу, всталяем диск и начинаем установку. Нужно выбрать режим «Expert install». И выполняем все по пунктам, как при обычной инсталляции.

После выполнения пункта установки загрузчика GRUB нужно не завершить установку, а выбрать «Start shell».

Теперь решаем проблему установки GRUB. Суть проблемы: то ли скрипт кривой, то ли факт наличие флешки сбивает скрипт и на жесткий диск он так и не попадает, поэтому сделаем все ручками.
Должна быть примерно такая картина:

# df -h
Filesystem Size Used Available Use% Mounted on
tmpfs 15.7G 120.0K 15.7G 0% /dev
/dev/md0 938.0M 155.4M 734.9M 17% /target
/dev/md3 9.2G 148.9M 8.6G 2% /target/home
/dev/md2 3.7G 71.8M 3.4G 2% /target/tmp
/dev/md1 3.7G 286.1M 3.2G 8% /target/usr
/dev/md4 253.9G 356.4M 240.7G 0% /target/var
tmpfs 15.7G 120.0K 15.7G 0% /target/dev
/dev/md0 938.0M 155.4M 734.9M 17% /dev/.static/dev
/dev/sr0 168.0M 168.0M 0 100% /cdrom

если нет — тогда нужно руками смонтировать недостающее:

for d in dev proc sys; do mount --bind /$d /target/$d; done

! Обязательно должна быть строка:

tmpfs 15.7G 120.0K 15.7G 0% /target/dev

если нет, тогда еще раз смонтировать:

umount /target/dev/ && mount --bind /dev/ /target/dev/

Запускаем chroot в уже установленную систему и запускаем там шелл, мне приятнее работать в bash:

chroot /target /bin/bash

Теперь приглашение сменится на [root@debian] #, проверяем, видно ли диски:

# ls -a /dev | grep sd
sda
sda4
sdb
sdb1
...
sdb9
sdc
sdc1
...
sdc9

Осталось только установить GRUB, есть два варианта:

grub-install /dev/sdb
grub-install /dev/sdc
update-grub

или

dpkg-reconfigure grub-pc

и в графическом меню отметить нужные диски.

Проверить установлен ли GRUB можно командой (предварительно нужно установить утилиту file, обычным способом apt-get install file):

# file -s /dev/sdb
/dev/sdb: x86 boot sector; partition 1: ID=0xfd, active, starthead 32, startsector 2048, 1951744 sectors; partition 2: ID=0x5, starthead 190, startsector 1955838, 583981058 sectors, code offset 0x63

Дальше нужно вернутся в шелл установщика и вернутся в сам установщик и окончить процесс, для этого достаточно два раза выполнить exit.

Debian/Ubuntu отключить IPv6

// Март 13th, 2013 // No Comments » // Debian, IPv6, linux, Network

Я конечно за продвижение IPv6 в массы, но конечным пользователям в моем регионе он докатится не раньше чем через пару лет, а пока что наблюдаем вот такое:

user@home:~$ sudo apt-get update
Ош  http://mirror.mirohost.net squeeze/main Sources
  Невозможно инициализировать соединение с mirror.mirohost.net:80 (2a02:2278:70eb:209::72:161). - connect (101: Сеть недоступна) [IP: 2a02:2278:70eb:209::72:161 80]
Ош  http://mirror.mirohost.net squeeze/non-free Sources
...

Squeeze (ядро >= 2.6.30):

Выключить IPv6 в ядре, выполнять от root-а:

echo net.ipv6.conf.all.disable_ipv6=1 > /etc/sysctl.d/disableipv6.conf

IPv6 будет выключен при следующей перезагрузке.

В exim4:

В конфиг вставить директиву:

disable_ipv6 = true

Для sshd:

В конфиг /etc/ssh/sshd_config добавить:

AddressFamily inet

(далее…)