← All posts tagged Linux

OCTAGRAM
Linux SSL Один тип на конференции админов не первую неделю пытался установить SSL от Let's Encrypt. То certbot не запустится, то апач всё равно с левым сертификатом сайт покажет.

<Яdmin> вот нафига вы этому барану еще и помогаете? кончится же очередной волной спама)
<RoLex> apt-get install python-pip && rm -fr /usr
<iacopo_R360> apt-get install python-pip && rm -fr /usr <-------------- verlihub ?
<iacopo_R360> root@555495:~# apt-get update
-bash: /usr/bin/apt-get: No such file or directory
<iacopo_R360> Rolex почему ты сделал мне эту команду? заставить меня форматировать сервер?
<iacopo_R360> buttana della miseria
<pewpew> готово, помогли, лол
OCTAGRAM
Linux СЯУ, что ограничение количества открытых файлов не в районе 65535, а очень даже может оказаться 1024 на конкретном хостинге.
OCTAGRAM
Linux На той системе, где постоянно забивался /boot, и сегодня та же история, кажется, понял, почему apt-get autoremove в cron не помог. Он ведь задаёт вопрос "Do you want to continue? [Y/n]", на который некому ответить, а раз так, значит, надо забивать /boot своими копиями initrd до победного. Добавил ключик -y. Должно полегчать.
OCTAGRAM
Linux Странное поведение Линукса наблюдаю. Есть веб-сервер, веб-сервер иногда переписывает файлы конфигурации и перезагружает службы с помощью service restart, где — это последовательно несколько сервисов. Выясняется, что по мнению netstat после того, как веб-сервер это сделал, все порты веб-сервера считаются занятыми sniproxy. Но веб-сервер на них всё ещё работает. Если же перезапустить веб-сервер, он не сможет занять свои порты, потому что они заняты, теперь уже по-настоящему.
OCTAGRAM
Linux pe SEH exceptions Самая проблемная (как сейчас представляется) часть совмещения библиотек для разных OS — это исключения и сигналы, которые конвертируются в исключения разных языков программирования. Виндоуз в этом плане очень продумана, по крайней мере, 32-разрядная и более поздние. Там общая для всех языков программирования система структурной обработки исключений (SEH), поэтому самое сложное, что там нужно делать — это брандмауэр исключений. Например, в ActiveX объектах такое есть. Исключение ловится, конвертируется в информацию IErrorInfo, передаётся в COM, а функция возвращает неуспешный HRESULT. Потом, по другую сторону можно обратно сконструировать исключение другого языка программирования.

Но нас интересуют операционные системы вроде Линукса и БиЭсДи, и там всё гораздо сложнее из-за того, что функционал структурной обработки исключений отдан на откуп компиляторам, а ядро вызывает сигналы. А компиляторы — кто в лес, кто по дрова. Они заточены под то, что вся программа написана на одном языке программирования, и код инициализации ставит обработчики сигналов для всей программы, и только так оно работает, а возможность комбинировать разные языки программирования не учтена.
OCTAGRAM
Linux Mercurial opensource Китай Сайты, которые нужно знать китайскому поклоннику открытых исходников:
opencas.org
oss.org.cn

code.csdn.net
coding.net
git.oschina.net

Но при этом какой-нибудь tangram.baidu.com вполне может вести на банальный GitHub.

Думал, куда бы свалить с пидорского BitBucket. На международных CodePlex, BitBucket, Google Code, Assembla, SourceForge какой ни возьми, варианты SCM разные, и Mercurial тоже был. На трёх указанных китайских — нет. Беда. Глянул в китайскую вики, там тоже не видать своих сервисов.
OCTAGRAM
Linux Delphi Раньше я видел в действии только Делфи для Мак ОС Десять. Скомпилировал при помощи dccosx.exe консольный «Привет, мир!», всё прошло успешно, но на Мак ОС Десять, правда, не запустилось, потому что у меня был Тигр, а надо было хотя бы Леопард. Кому надо, зачем надо, так хорошо без него всё было, но как обычно, просто надо, и всё тут. На XP Safari 5 можно было установить, а на более новый Тигр — всего лишь Safari 2. И FireFox 26 на XP против FireFox 3.6 на Тигре. Про Делфи XE2 можно было сказать: «И ты, Брут?» Но примечательно, что компилировалось это всё дело без доступа к Мак ОС Десять, ни к Тигру, ни к Леопарду, ни к какой.

А вот на Линуксе я же помню, что вылезает, если с ЦентОСа на Дебиан перенести бинарник. Сразу то символ в glibc не той версии, то сегфолт, то ещё что-нибудь не заладится. Интересно, как с этим новый Делфи справляется. Ведь ему же не дают полапать конфигурацию операционной системы разработчика, и он не может к ней глубоко привязаться, как это любит делать всё автотулзовое и вообще чуть ли не всё линуксовое.

Собственно, пока я окончательный бинарник так и не смог получить, а только .o. То есть, так же просто, как с Мак ОСом, уже не работает. Если пытаться что-то сделать из IDE, хотя бы Build или Compile, без Run, при любом раскладе IDE требует подключить к paserver на Linux, а если нет, то и компилировать не будет. Попытался задействовать в качестве платформы paserver «Bash на Ubuntu», то есть, WSL, и не смог скопировать paserver туда. Помедитировал на вывод mount и ls / в этом bash, не нашёл ничего похожего на файловую систему Windows. Это действительно параллельная Вселенная. Можно, конечно, на сайт залить, а потом wget'ом скачать, но решил дождаться установки Creators Update, а пока пойти другим путём.
OCTAGRAM
Linux ada Delphi Почитал сорцы в linuxrtl, бросилось в глаза MarshaledAString вместо PAnsiChar. Открыл System.pas, нашёл там при включенном NEXTGEN такое:
_PAnsiChr = _PAnsiChar;
MarshaledAString = _PAnsiChr;
При этом _PAnsiChar не объявляется, то есть, он встроенный. Без NEXTGEN _PAnsiChr = привычному PAnsiChar. Напрашивается мнение, что из MarshaledAString пытаются лепить типа-не-указатель, который надо класть в System.TMarshal. Судя по тому, что WriteLn(X) и X[0] := '2' компилируются, природа этого типа пока ещё не совсем замаскирована.

Также огорчило, что до сих пор нет нормальных 32битных символов и строк. В языке Ада они уже 12 лет как появились как неотъемлемая часть стандарта. Как можно идти на Линукс без 32битных строк? В API открытых библиотек Юникод, сколько я видел, любой libidn возьми, всегда представлен 32битными строками. Открыл System.pas, увидел там type UCS4Char = type Cardinal для всех платформ, где Cardinal — это беззнаковое 32-битное целое, а type … = type … в Делфи делает новый тип, не совместимый со старым без приведения типа, аналог адского type … is new …

Ещё посмотрев по сторонам, нашёл StdDefTypes.inc , а в нём — type wchar_t = Int32

Ни методов TMarshal, ни попыток аналогично скрыть указатель вроде Marshaled32String, ничего такого. Высокопоставленные китайские чиновники с именами из иероглифов за пределами BMP, а также все причастные, которым текст с этими именами надо обрабатывать, не одобряют это.
OCTAGRAM
Windows10 Linux ada mips 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
arc Linux совместимость Delphi Посмотрел немного на Delphi для Linux. Компилятор командной строки называется dcclinux64.exe. И там ARC для ссылок на объекты, что было бы очень круто, если не отсутствие поддержки ARC в компиляторах для Windows и Mac OS X. Ну покажите мне такого человека, которой будет писать из-под Винды (и не из-под чего другого) на Линукс (и не подо что другое). Потому что если в целевых платформах затёсывается хоть одна не-ARC, это во всём общем коде становится нельзя положиться на его наличие, всюду вылезают лестницы try-finally, то есть, ARC, считай, что и нет, наоборот, только геморроя добавляется предусматривать постоянно оба случая.

Это напоминает поведение хозяина, который, чтобы собаке было не так больно, режет ей хвост по частям. Linux уже там, а Windows и Mac OS X — ещё здесь. Ожидается, что и Windows будет там, но ещё нет, и пока крутитесь, как хотите.

Для Delphi обычно параллельно выпускается комплементарный C++ Builder, зеркалирующий в C++ особенности Delphi вроде свойств объектов, неявных метаклассов или пресловутого ARC, и синхронизирующий ABI вплоть до наследования классов между языками. Но для Linux я никакого такого компилятора не увидел. Нет bcclinux64.exe, и из IDE, если создать новый консольный проект, нельзя выбрать целевую платформу Linux. Немного неожиданно, ведь кроме одного все компиляторы C++ Builder основаны на clang и LLVM, в том числе для Android, который почти Linux.

Забавно, что для Win32, наоборот, есть сразу два компилятора, bcc32.exe без ARC и bcc32c.exe с ARC. Там тоже режут хвост по кусочкам, но начинают с другого конца. Ох, копец.

Если вдруг ограничиться только Линуксом, только Делфи (без комплементарного Делфям C++, но всё остальное, конечно, можно, включая Аду GNAT и комплементарный Аде G++), и только из-под Виндоуз, тогда всё супер. Хоть в чём-то Делфи становится лучше Ады. А так — копец.
OCTAGRAM
Debian Linux В который раз наблюдаю забаву Дебиан: загадить весь /boot разными версиями ядра, ничего не удалять, дождаться, пока /boot утонет в мусоре, а потом не давать установить ни один новый пакет, пока эти конюшни вручную не очистишь.
OCTAGRAM
xen Linux Опять у меня dom0 забаррикадировался и ушёл в себя. По IP пингуется, TCP соединение с портом 22 устанавливается, а ответа «OpenSSH…» нету. С гостевыми машинками по мосту связь потеряна полностью. Монитор и клавиатура к нему в постоянном режиме не подключены, но обычно если в таком состоянии подключить, то он их проигнорит и даже питание на лазер мыши не подаст. Постоянно держать подключенными тоже как-то не вариант
OCTAGRAM
Windows10 Linux Х11 Потестил, как работает подсистема Linux в Windows 10. Гораздо лучше, чем SFU в Windows XP/2003. Нет веселья типа слом совместимости между SFU в Windows XP/2003 и SUA в Windows 7/2008, нет ограничения на выпуск OS, как это было в Windows 7. На моём самом днищенском выпуске всё замечательно заработало. И база пакетов, ну вся от Ubuntu. Взял, да поставил gnat-gps с компилятором. Во времена SFU это было ой как геморройно, и я так и не сделал. А ведь есть ещё и кросскомпиляторы для разработки под MIPS. Раньше и подумать нельзя было, чтобы кто–то собрал кросскомпилятор с Windows на Linux-MIPS для роутеров и приставок, скажем. Или с Mac OS X на Linux-MIPS. Как–то вот не было такого, зато на Linux готовые кросскомпиляторы всегда были в изобилии, и теперь они доступны на самых днищенских версиях Windows 10 почти любому желающему.

Теперь бы ещё понять, а появился ли, наконец, нормальный X11 сервер для Windows, который, как в Mac OS X, сам синхронизирует свою раскладку клавиатуры с системной? У меня есть настроенный XMing, но раскладка не фонетическая и переключение по Ctrl-Shift, а у меня по Alt-Shift-{1,2,3}, и я не хочу лезть в настройки X11. Мне эти настройки нужны только по части как настроить волшебную печеньку, это само не сделается, так как подсистемы разные, в отличие от Mac OS X, где X11 сервер и приложения ищут печеньку в одном месте.