← All posts tagged Debian

OCTAGRAM
Linux ada mips Windows10 WSL Windows 10 Creators Update: что нового в Bash/WSL и Windows Console
В то время как Win10 Anniversary Update поставлялся с поддержкой Ubuntu 14.04, в новом обновлении Win10 CU теперь WSL поддерживает Ubuntu 16.04.То есть, если хочется писать на Аде под роутер на MIPSe, теперь не надо искать, как бы так обновить встроенную Ubuntu до 15, чтобы не сломать.

Главой целью создания WSL было уменьшить «разрыв» по ощущениям, когда запускаешь инструменты Windows рядом с инструментами командной строки и окружениями Linux. Когда мы выпустили WSL в Windows 10 AU, то поместили Linux и Windows рядом друг с другом, но всё ещё был большой «разрыв» между ними — хотя обе системы могли иметь совместный доступ к некоторым файлам, каждое из окружений было довольно сильно изолировано от другого. Пользователи часто говорили, что хотят иметь возможность запускать приложения Windows и консоли Bash, и запускать приложения Linux и Windows. Так что мы добавили эту функцию! В Windows 10 Creators Update вы можете запускать приложения и инструменты Windows из консоли Bash.
Как раз то, чего не хватало. А то хочется dcclinux64.exe вызвать из линуксовых скриптов, а никак, или хочешь прямо из ФАРа запускать mips-linux-gnu-gnatmake и не можешь, тоже не очень здорово. Да, я знаю, что можно через plink и XMing как минимум в одну сторону срастить, и у меня Windows 2003 и Debian в соседних доменах Xen так и живут. А тут-то из коробки теперь. Удивительно видеть, как Microsoft опережает Apple в том, чтобы поддерживать Linux.

Ещё одной частой просьбой сообщества была поддержка в консоли больше чем 16 цветов. Поддержка 256 цветов и более очень важна при работе с современными всё более сложными и насыщенными инструментами командной строки, шеллами и т. д. В Win10 Creators Update консоль обновилась и поддерживает полный, прекрасный 24-битный цвет!
Я даже побежал в MSDN смотреть, какое там новое Console API для этого дела. Но не увидел. Тут советуют начинать любить Escape-последовательности. Эм, а как же гасить панели во всяких ФАР Менеджерах, если мы не можем прочитать буфер и потом восстановить его? Или теперь предлагаете буфер на виртуальном экране ncurses хранить? Вот так поворот.

В общем, пошёл обновляться.
OCTAGRAM
Linux Debian В который раз наблюдаю забаву Дебиан: загадить весь /boot разными версиями ядра, ничего не удалять, дождаться, пока /boot утонет в мусоре, а потом не давать установить ни один новый пакет, пока эти конюшни вручную не очистишь.
OCTAGRAM
криптография md5_crypt crypt_md5 Пытался переписать на Delphi crypt(), которым шифрует пароли ISPConfig у заказчика. Сначала по ссылкам с форума ISPConfig меня кинуло сюда. Взял, переписал на Delphi, только на последнем этапе лень было ещё и модифицированный Base64 делать. Сконвертил в обычный Base64, знак равенства отрезал, а остальные символы заменил по таблице соответствия.

Не сошлось.

Начал вникать глубже в тему. Оказывается, их способ кодирования пароля корнями уходит в /etc/shadow в Linux. Всплыл оригинальный исходник crypt_md5.c. Переписал всё с него. Заодно нашёл ошибку. Я в строках, соответствующих 149 и 150 из первой ссылки, вычислял MD5, а надо только в 150. Строки выглядит похоже, но в 149 MD5 не вычисляется, а там ещё дальше по тексту идёт продолжение. И, присмотревшись, ещё увидел, что модифицированный Base64 берётся от октетов, идущих не подряд, а вперемешку, так что либо нужно тем же образом перемешать, либо переписать на Delphi рабочий код. Переписал.

Не сошлось.

В коде я манипулировал и UTF8String, и TIdBytes, которые суть array of Byte, и постоянно байты перегонял туда и обратно. Думал, ну можь тут накосячил. Сделал отдельную функцию, которая и на вход, и на выход работает со строками. Код стал проще выглядеть, заодно там изолированные экземпляры TIdHashMessageDigest5 теперь используются, а то вдруг я общий экземпляр как–то неправильно использовал.

Не сошлось.

Как на Byte действует shl в Delphi, я уже не уверен, но очень может быть, что значение на выходе так и остаётся Byte, и после shl 16 получается 0, надо бы каждый байт привести к Integer перед тем, как делать shl.

Не сошлось.

Вообще, вряд ли, но вдруг у байтов после расширения размера одновременно с приведением к знаковому численному типу появляется шлейф из единиц в старших разрядах и как–то где–то что–то потом портит. Тем более, в коде по первой ссылке использовался "and $ff". Не зря же, наверное? Надо тоже добавить.

Не сошлось.

Смотрел–смотрел, так и не увидел ошибку. Решил ещё посмотреть разных реализаций. Нашёл независимую для PHP. И бросилось в глаза, что на 103й строке $ctx .= pack("C", 0); Я такой уже один раз видел по первой ссылке, но по второй, откуда я потом переписывал, был j–й байт final, причём, j инициализируется в начале for нулём, а потом не меняется, то есть, это 0, который будет указывать на первый байт в final или password. Я вообще к первой ссылке с недоверием относился после того, как ошибку увидел и переписал по второй ссылке, так что как во второй ссылке, так и у меня был первый байт от final. Это сейчас я разглядел, что строки 149 и 150 отличаются, а тогда ещё нет, и коду по второй ссылке я доверял больше, чем по первой. Но странно, что по третьей так же, как и по первой. Пытаясь понять, почему 0, увидел, что для безопасности по второй ссылке периодически что–нибудь затиралось, но так как мне эта безопасность была не нужна, это я в свой код не переписывал, а там как раз final нулями перезаписывается перед этим циклом, отсюда и 0.

Сошлось. Где–то 5 часов ушло на отладку.
OCTAGRAM
Linux CentOS впечатления dnsmasq start-stop-daemon из Debian в CentOS нет, и это прямо нежданчик конкретный был.

А ещё в CentOS сборка dnsmasq с невыключаемым "--bind-interfaces with SO_BINDTODEVICE", и поэтому рабочий конфиг с Debian вообще не пашет на CentOS. Миграция длится уже 12 часов из–за нескончаемых приколов CentOS. Ну почему эта опция неотключаемая??? Да будь он проклят, этот ваш SO_BINDTODEVICE! Я его не просил, он мне не нужен совершенно.

Попробовал было с относительно вменяемого Debian перетащить бинарник:
error while loading shared libraries: libnetfilter_conntrack.so.3: cannot open shared object file: No such file or directory

А без него, видимо, не судьба запуститься. Вот прямо кушать не могу, надо, и всё.
OCTAGRAM
Linux Debian CentOS Переношу сервак с Debian на CentOS. Там всё по–другому! И мой хороший скрипт для init.d вообще не заработал, всё переделывать надо.
/lib/lsb/init-functions: No such file or directory
Думал, ну хоть это останется. Нет. Что, CentOS не чтит LSB?
OCTAGRAM
Linux Debian Да ты запарил скачивать!
octagram@screwdriver:~$ sudo apt-get remove libreoffice-base libreoffice-base-core
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
abiword abiword-common abiword-plugin-grammar abiword-plugin-mathview
gnumeric gnumeric-common libabiword-2.9 libgdome2-0 libgdome2-cpp-smart0c2a
libgoffice-0.8-8 libgoffice-0.8-8-common libgtkmathview0c2a liblink-grammar4
libloudmouth1-0 libots0 libreoffice-core libreoffice-draw
libreoffice-filter-binfilter libreoffice-gnome libreoffice-gtk
libreoffice-impress libreoffice-math libwv-1.2-4
link-grammar-dictionaries-en poppler-utils python-uno
Предлагаемые пакеты:
gnumeric-doc gnumeric-plugins-extra epiphany-browser ttf-liberation
ttf-mscorefonts-installer
Пакеты, которые будут УДАЛЕНЫ:
gnome libreoffice-base libreoffice-base-core libreoffice-calc
libreoffice-evolution libreoffice-help-en-us libreoffice-writer
НОВЫЕ пакеты, которые будут установлены:
abiword abiword-common abiword-plugin-grammar abiword-plugin-mathview
gnumeric gnumeric-common libabiword-2.9 libgdome2-0 libgdome2-cpp-smart0c2a
libgoffice-0.8-8 libgoffice-0.8-8-common libgtkmathview0c2a liblink-grammar4
libloudmouth1-0 libots0 libwv-1.2-4 link-grammar-dictionaries-en
poppler-utils
Пакеты, которые будут обновлены:
libreoffice-core libreoffice-draw libreoffice-filter-binfilter
libreoffice-gnome libreoffice-gtk libreoffice-impress libreoffice-math
python-uno
обновлено 8, установлено 18 новых пакетов, для удаления отмечено 7 пакетов, и 103 пакетов не обновлено.
Необходимо скачать 59,5 MБ архивов.
После данной операции, объём занятого дискового пространства уменьшится на 25,2 MB.
Хотите продолжить [Д/н]?
OCTAGRAM
MySQL mariadb швабодка MariaDB Debian Wheezy
Ставлю MySQL на ещё одну тачку. По привычке начал делать apt-get install mysql-server, но тут вспомнил, что после покупки Sun Oracle'ом из–за недружественной к сообществу политики Oracle надо бы переходить на нечто более дружественное, как я уже сделал, перейдя на LibreOffice вместо OpenOffice.org, и в данном случае надо бы ставить вместо MySQL MariaDB, которого, правда, в пакетах не оказалось. Попробовав разные дополнительные deb–репозитории, нашёл рабочий вариант для Debian 7 Wheezy.
OCTAGRAM
web Ruby Redmine Phusion Passenger is a multi-language (Ruby, Python, Node) web & app server which can integrate into Apache and Nginx. Easy to use, stable and fast.
Да, здорово, осталось только увидеть от него что–нибудь, кроме Connection was reset. Ставлю Redmine из пакета на Debian redmine.org
OCTAGRAM
Linux Gentoo Из всех OS только в Linux у меня такие дебильные проблемы создать юзера. Что Debian, что NixOS, что Ubuntu, что теперь Gentoo, каждый раз знакомство с дистрибутивом начинается с такого неприятного момента, как гугление, как обмануть этот не в меру упрямый дистрибутив и создать–таки нормальное имя пользователя, чтоб, когда выполняю ssh или другую команду между системами, не указывать его в другом регистре. --force-badname в Gentoo почему–то из коробки нет.
OCTAGRAM
мысль Хорошо бы для разработки, чтоб открыл ящик в шкафу, а там гора habrahabr.ru и ixbt.com с виндами от 2000 до 7, в домене и без, x64 и x86, с Linux Ubuntu, Mint, Debian, Gentoo, Alt и ещё до кучи что может иногда понадобиться. BlackBerry и iPhone валяются в этой куче без дела, пока для них разработка не ведётся. И на столе KVM как раз готовы, что к ним что–то из этого барахла подцепят. Ну вот есть же у радиоэлектроников барахло из радиодеталек. Им с этим барахлом под рукой всяко легче радиоэлектронить, чем без него.

Диаметральная противоположность текущей ситуации, когда всё на виртуалках, x64 нет, аппаратной виртуализации нет, всё тормозит и доедает последние память и диск. Для iPhone и вовсе проще забить на порт, потому что, даже если есть PhoneGap, собирать не на чем.