LaurVas

Использование утилиты debootstrap

   debian

Debootstrap — это первый шаг в ручной установке Debian и при подготовке линукс-контейнера на основе Debian или Ubuntu. Благодаря ему в пустом каталоге зарождается жизнь.

Чтобы не повторять одно и то же в трёх местах, я вынес этот шаг в отдельный пост.

Запускаем Debian в chroot-окружении

   chroot debian

Chroot-окружение — это самый доступный способ запустить линукс внутри линукса (т.н. контейнер). Внутренняя система будет изолирована от основной только на уровне корневой файловой системы (rootfs). Сетевой стэк, псевдо-файловые системы /proc, /sys, /dev будут общими для хоста и контейнера. Поэтому не стоит считать chroot-окружение достаточной мерой для изоляции опасных/недоверенных приложений. Для этого больше подходит systemd-nspawn.

Основные риски:

  • Из chroot-окружения можно убивать процессы хоста.
  • Система из chroot-окружения имеет доступ к дисковым устройствам. Являясь рутом в контейнере, можно примонтировать блочное устройство хоста (какой-нибудь /dev/sda1) и читать оттуда информацию. Или затереть к чёрту.

Если chroot так несовершенен, то зачем он нужен сегодня?

Не всё работает должным образом в systemd-nspawn контейнере. Нельзя натянуть файл на петлевое устройство (loop device). Нельзя запустить ещё один контейнер (линукс внутри линукса внутри линукса), а в чруте можно. Это нужно, например, для сборки livecd.

Не везде есть systemd. Таких дистрибутивов почти не осталось. Это либо что-то старое, либо Gentoo.

Далее описано создание и использование контейнера с Debian-based системой (Debian, Ubuntu, Kali). Выполняемые действия те же, что и при создании/использовании systemd-nspawn контейнера, но есть небольшие отличия.

Строгий календарь 2017

   дизайн

Ключевые особенности моего календаря:

  • без отвлекающих картинок
  • максимально используется доступная площадь
  • месяцы идут подряд один за другим
  • нерабочие дни хорошо видно
  • месяцы пронумерованы

Скачать в pdf: версия на одном и на двух листах (6+6).

Каледнарь предназначен для печати на форматах от А4 до А2, поэтому в самом документе поля отсутствуют. При печати указывайте в параметрах что-то вроде “масштабировать под размер области печати”, чтобы края не пропали.

Распечатанный календарь вешается на видном месте, все важные даты подписываются (для этого отведено место справа от даты).

Запускаем Debian в контейнере systemd-nspawn

   linux debian

Эта статья потеряла актуальность. Сейчас я не стал бы вручную собирать контейнер, а расчехлил бы докер, чтобы получить тот же самый результат. Тем не менее, она может быть полезной. Например, вы узнаете как сделать “докер руками”. Или может быть так, что докер вам по каким-то причинам не подходит, а изоляцию хочется.

Linux-контейнер — это линукс внутри линукса. Примерно как виртуализация (VirtualBox, Qemu), только без эмуляции железа. Для каких задач могут пригодиться контейнеры?

  • Когда хочется установить временно какой-то софт, не захлямляя основную ОС. Сделал контейнер, поработал, сохранил результат, удалил контейнер. Мусора в системе не осталось.

  • Когда нужна более свежая, или наоборот, устаревшая версия той или иной программы/библиотеки.

  • Когда нужного софта нет в репозиториях вашего дистрибутива, зато есть в репозиториях другого. Например мне пару раз нужен был pdftk, который в Archlinux есть в AUR, но не хочет собираться. Я нашёл готовый пакет в Debian и быстро установил его в контейнере.

  • Когда надо потестить свежий выпуск Debian/Ubuntu/whatever.

  • Чтобы проверить работоспособность своего скрипта/приложения в другой среде, погонять тесты/бенчмарки.

  • Для сборки пакетов под другой дистрибутив.

  • Когда вам по работе нужен какой-нибудь oldstable Debian, недостойный быть основной системой на компьютере.

  • Для изоляции приложений. Заводим отдельный контейнер под Skype и не боимся его шпионских действий.

Эта инструкция описывает создание и использование контейнера на примере Debian Jessie. Создание контейнера с другим Linux-дистрибутивом ничем принципиально не отличается.

Ручная установка минимального Debian-based Linux (Install Debian the Archlinux way)

   linux debian

В данном руководстве описана установка Debian-based дистрибутива Linux (Debian, Ubuntu, Kali и др.) с нуля без использования каких-либо автоматических установщиков.

Цель ручной установки — минимизировать количество пакетов в системе, установить только то, что нужно. В какой-то момент понимаешь, что проще поставить систему с нуля, чем выпиливать лишнее из готовой. Какие преимущества это даёт перед традиционным способом установки?

  • Ручная установка поможет лучше узнать как работает ОС.
  • Экономится дисковое пространство, система занимает меньше места.
  • Обновления системы проходят быстрее, экономится трафик.
  • Бэкап системы занимает меньше места и быстрее разворачивается.
  • Вы знаете что есть в системе и для чего.
  • Загрузка из выключенного состояния проходит быстрее, т.к. не запускаются сервисы, о назначении которых вы ничего не знаете.
  • Поскольку лишних сервисов нет, ресурсы компьютера используются более рационально.

Тут мне надо написать абзац, чтобы отделить плюшки от оглавления. Пока ничего не придумал.

Trap — обработка сигналов и ошибок в Bash

   bash

trap ДЕЙСТВИЕ СИГНАЛ...

Trap работает очень просто: при возникновении сигнала будет выполнено указанное действие. Если действие простое (последовательность команд, умещающаяся на одной строке), его можно указать прямо в аргументе trap. Если не очень простое, то надо объявить функцию и поместить вызов этой функции в trap.

Можно обрабатывать стандартные сигналы (их полный список выводится по trap -l). Также доступны специфические для Bash: DEBUG, RETURN, ERR, EXIT.

На практике trap оказывается не такой уж простой штукой. Дьявол как всегда кроется в деталях. Сейчас покажу.

Мои впечатления от Gentoo Linux

   linux

КПДВ

Да, здесь должна быть эта устрашающая картинка.

TL;DR: Я рад, что наконец-то осмелился попробовать Gentoo. Да, пришлось потратить время, чтобы заработали самые базовые вещи, но я узнал много нового и многому научился. В Gentoo есть свои интересные фишечки, которых нет в других дистрибутивах.

Gentoo долгое время не давал мне покоя. С одной стороны он отталкивал сложностью, сборкой всего из исходников (о ужас!). С другой стороны все четыре гентушника, с которыми мне случилось познакомиться по жизни, были очень толковыми чуваками.

If you know <distro>, then you know <distro>. If you know Gentoo, then you know Linux

На момент написания статьи я использую Gentoo около года.

Жизнь с комфортом в Openbox WM

   linux

Openbox window manager — стэковый оконный менеджер для графической системы X Window.

Как-то не попадались мне душевные рассказы про Openbox на просторах рунета. А зря, ибо хороший он. В этой статье я хочу поделиться своим опытом формирования полноценного окружения на его основе. Мне результат нравится.

Гистограммы в гнуплоте

   gnuplot

Пример гистограммы

Гистограмма позволяет визуально оценить какую-то случайную величину: насколько она случайна, велик ли разброс и какой характер этого разброса. По форме гистограммы можно подобрать закон распределения случайной величины. Математическая статистика вообще классная штука — находит закономерности там, где их нет.

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