Обновление. Эта статья потеряла актуальность. Сейчас я не стал бы вручную собирать контейнер, а расчехлил бы докер, чтобы получить тот же самый результат. Тем не менее, она может быть полезной. Например, вы узнаете как сделать “докер руками”. Или может быть так, что докер вам по каким-то причинам не подходит, а изоляцию хочется.
Linux-контейнер — это линукс внутри линукса. Примерно как виртуализация (VirtualBox, Qemu), только без эмуляции железа. Для каких задач могут пригодиться контейнеры?
Когда хочется установить временно какой-то софт, не захлямляя основную ОС. Сделал контейнер, поработал, сохранил результат, удалил контейнер. Мусора в системе не осталось.
Когда нужна более свежая, или наоборот, устаревшая версия той или иной программы/библиотеки.
Когда нужного софта нет в репозиториях вашего дистрибутива, зато есть в репозиториях другого. Например мне пару раз нужен был pdftk
, который в Archlinux есть в AUR, но не хочет собираться. Я нашёл готовый пакет в Debian и быстро установил его в контейнере.
Когда надо потестить свежий выпуск Debian/Ubuntu/whatever.
Чтобы проверить работоспособность своего скрипта/приложения в другой среде, погонять тесты/бенчмарки.
Для сборки пакетов под другой дистрибутив.
Когда вам по работе нужен какой-нибудь oldstable Debian, недостойный быть основной системой на компьютере.
Для изоляции приложений. Заводим отдельный контейнер под Skype и не боимся его шпионских действий.
Эта инструкция описывает создание и использование контейнера на примере Debian Jessie. Создание контейнера с другим Linux-дистрибутивом ничем принципиально не отличается.
В данном руководстве описана установка Debian-based дистрибутива Linux (Debian, Ubuntu, Kali и др.) с нуля без использования каких-либо автоматических установщиков.
Цель ручной установки — минимизировать количество пакетов в системе, установить только то, что нужно. В какой-то момент понимаешь, что проще поставить систему с нуля, чем выпиливать лишнее из готовой. Какие преимущества это даёт перед традиционным способом установки?
- Ручная установка поможет лучше узнать как работает ОС.
- Экономится дисковое пространство, система занимает меньше места.
- Обновления системы проходят быстрее, экономится трафик.
- Бэкап системы занимает меньше места и быстрее разворачивается.
- Вы знаете что есть в системе и для чего.
- Загрузка из выключенного состояния проходит быстрее, т.к. не запускаются сервисы, о назначении которых вы ничего не знаете.
- Поскольку лишних сервисов нет, ресурсы компьютера используются более рационально.
Тут мне надо написать абзац, чтобы отделить плюшки от оглавления. Пока ничего не придумал.
Trap работает очень просто: при возникновении сигнала будет выполнено указанное действие. Если действие простое (последовательность команд, умещающаяся на одной строке), его можно указать прямо в аргументе trap
. Если не очень простое, то надо объявить функцию и поместить вызов этой функции в trap
.
Можно обрабатывать стандартные сигналы (их полный список выводится по trap -l
). Также доступны специфические для Bash: DEBUG
, RETURN
, ERR
, EXIT
.
На практике trap оказывается не такой уж простой штукой. Дьявол как всегда кроется в деталях. Сейчас покажу.
Да, здесь должна быть эта устрашающая картинка.
TL;DR: Я рад, что наконец-то осмелился попробовать Gentoo. Да, пришлось потратить время, чтобы заработали самые базовые вещи, но я узнал много нового и многому научился. В Gentoo есть свои интересные фишечки, которых нет в других дистрибутивах.
Gentoo долгое время не давал мне покоя. С одной стороны он отталкивал сложностью, сборкой всего из исходников (о ужас!). С другой стороны все четыре гентушника, с которыми мне случилось познакомиться по жизни, были очень толковыми чуваками.
If you know <distro>, then you know <distro>. If you know Gentoo, then you know Linux
На момент написания статьи я использую Gentoo около года.
Openbox window manager — стэковый оконный менеджер для графической системы X Window.
Как-то не попадались мне душевные рассказы про Openbox на просторах рунета. А зря, ибо хороший он.
В этой статье я хочу поделиться своим опытом формирования полноценного окружения на его основе. Мне результат нравится.
Гистограмма позволяет визуально оценить какую-то случайную величину: насколько она случайна, велик ли разброс и какой характер этого разброса. По форме гистограммы можно подобрать закон распределения случайной величины. Математическая статистика вообще классная штука — находит закономерности там, где их нет.
Ничего нового я не изобрёл, пример гистограммы можно найти на оф. сайте гнуплота. Просто сейчас мы подробно разберём построение гистограммы и как им пользоваться в личных целях.
Если под линуксом гнуплот работает без нареканий и сюрпризов, то под Windows могут возникнуть странности. Далее я поведаю обо всех найденных особенностях Windows-версии этой утилиты. Их не много, так что пост получился коротким.
При написании консольных программ на языках C, C++ под Windows возникает проблема с отображением русских букв. Поэтому начинающие программисты часто делают вывод текста в своей программе транслитом, на ломанном английском, либо на каком-то промежуточном языке. Наверняка среди них популярно заблуждение о том, что русские буквы невозможно получить в принципе.
Несмотря на то, что с этой проблемой я столкнулся ещё в своей самой первой программе на C, элегантное решение нашлось только сейчас. И знаете что? Выражать свои мысли на родном языке намного приятнее, и программа выглядит аккуратно.
Это самый необычный язык, с которым мне когда-либо приходилось сталкиваться. Существует мнение, что тексты программ на Прологе ближе к человеческому мышлению, нежели тексты программ на императивных языках (C, Pascal и др.). Не верьте этому. Пролог является скорее головоломкой, чем языком программирования, а процесс создания программ очень похож на разгадывание кубика-рубика.