AF Linux
Поставленные задачи
упростить и ускорить сборку использованием готовых отработанных методик и пакетов arch linux
за счет pacmanXG упростить пользователю установку софта
получить доступ к самому свежему программному обеспечению из репозитория arch linux и
AUR
Особенности и состав AF
Дистрибутив собран на пакетной базе
Arch Linux
-
-
-
-
Использование AF должно быть не сложнее Puppy. В любом случае желателен опыт Arch и Puppy
Отличия AF от родительских и аналогичных сборок
-
PuppyRus218:
systemd, полноценный пакетный менеджер (pacman) с
GUI и софтом
-
Варианты развития
AF можно рассматривать не как дистрибутив, а как методику сборки модульного frugal дистрибутива. Сборка рассчитана на подготовленного пользователя.
Дальнейшее использование репозитория Arch Linux (или другого
pacman совместимого
дистрибутива), совершенствование live и frugal
-
Создание своего репозитория с использованием
ABS и
AUR
Перепаковка пакетов другого дистрибутива (даже не pacman - совместимого) в .pfs (PuppyRus) или .pkg.tar.xz (Arch) и сборка соответственно pfsmerge или makechrootpkg методом
Модули
Назначение модулей
Модули с названиями заглавными буквами - мета модули (pfsmerge составные)
ar*.pfs - базовый модуль. Только arch пакеты
AF*.pfs (метамодуль - составной) :
конвертированные arch пакеты (чтобы не пересобирать arch*.sfs)
00Sf* - sfrugal
0af-* - модуль совместимости arch-puppy
0puppy-* - универсальный puppy модуль
SFS-TK-AF*.pfs - универсальный набор утилит
linux-*.pfs - модули ядра
-
DEVX-AF*.pfs - модуль разработчика. Необходим для компиляции
Слои AUFS
Теория
Сверху вниз (файлы верхних слоев перекроют прочие)
rootaufs - аналог сохраненки
-
overlay= - базовые squashfs модули. Слои AUFS в порядке перечисления, т.е. файлы 1го модуля (AF.pfs) перекроют прочие.
-
Установка AF на жесткий диск или флэш
Frugal
Установить загрузчик grub4dos или использовать любой линуксовый (grub, grub2, burg). Если grub4dos не установлен - поставить его с любого puppy или /boot/grub4dos/install из .iso
Скопировать директорию /af в корень раздела. Файловая система раздела может быть: ext, fat, ntfs. При ntfs этот раздел в AF будет доступен только для чтения.
Добавить 3й пункт menu.lst из .iso в свой menu.lst
Проверить имя раздела из п.2 в menu.lst: set pdev1=sda1 Посмотреть можно командой blkid.
Скачанные модули приложений складывайте в /af/pfs. Тогда они автоподключатся ниже базы при рестарте.
Если модулей будет много и все нужны - для уменьшения времени загрузки можно их объединить : pfsmerge
FULL
Теряется весь смысл задумки. Лучше поставить обычный Arch. Но если вы 1 пользователь на стационарном пк и не склонны к экспериментам:
Разметить диск. Нужен как минимум 1 раздел ext* под / и раздел swap
Установить линукс-загрузчик или использовать имеющийся.
Загрузить AF со всеми нужными Вам модулями и сохраненками
Переписать все на подготовленный ext раздел. Не забыль про ядро и initrd
Поправить загрузчик на стандартные параметры ядра. Например: /boot/vmlinuz root=UUID=4db63c04-36a5-4da3-862e-c3aa82c48fd3 ro quiet splash
Persistent Mode (сохраненка)
Persistent Mode — это возможность сохранять все изменения, которые Вы произвели во время работы. При следующей загрузке не будет нужды снова настраивать те же самые параметры (например, пароли доступа к Wi-Fi или почте, и т. д. и т. п.)…
Варианты
rootaufs=/test/ext2.img - файловая система в файле. Создать : /boot/mk-live-rw.sh. Файловая система раздела может быть: ext, fat, ntfs
rootaufs=/dir - директория на root разделе. Файловая система раздела может быть: ext
rootaufs=/dev/sda7 - раздел. Файловая система раздела может быть: ext
Настройка
Пользователи, пароли,права
Пользователь по умолчанию: live
Пароль: 111111 При использовании sshd, ftpd и т.п. - лучше сразу поменять: passwd live
root права на все через sudo
Урезать: man sudoers; sudo visudo
Пароль root: 111111
systemd
Шпаргалка
systemd-analyze blame - список запускаемых файлов юнитов, отсортированный по потраченному каждым из них на загрузку времени
systemctl list-unit-files - все установленные юниты
systemctl enable _my.service - включить сервис
Монтирование разделов
Автомонтирование через параметры ядра mountall
mountall=1 - автомонтировать все разделы всех носителей
mountall=sda1,sdb2, - автомонтировать перечисленные разделы
ymount (6я кнопка в верхней панели)
Из консоли: sudo mount-all или sudo mnttoolsp (меню)
Сеть
Время
-
Посмотреть: timedatectl status | grep local
Установить: timedatectl set-local-rtc 1 , где 1-UTC, 0-local (как в windows). Генерит /etc/adjtim
Горячие клавиши
Переключение клавиатуры us\ru
Conky. Мониторинг
WM
JWM
XFCE
Arch пакеты
Пакетный менеджер (ПМ)
pacman
Шпаргалка
Для принудительного обновления списка пакетов : pacman -Syy
Найти пакет : pacman -Ss имя_или_описание_пакета
Устанавливать пакет с заменой файлов системы: pacman –force -S имя_пакета
Скачать пакет, но не устанавливать его: pacman -Sw имя_пакета
Удалить пакет со всеми зависимостями : pacman -Rs имя_пакета
Доступные обновления: pacman -Qu
Показать все пакеты, не используемые ни одним пакетом: pacman -Qt
Переустановить все пакеты из arch репозитория: pacman -S $(pacman -Qq | grep -v «$(pacman -Qmq)»)
Для получения списка файлов неустановленного пакета можно использовать утилиту pkgfile из состава пакета pkgtools
packer
Описание
В отличие от pacman работает еще и с AUR. Типовое использование:
packer имя_или_описание_пакета - найти и установить
packer -G имя_пакета - скачать и распаковать tarball с PKGBUILD. Далее makepkg –asroot
Создание пакета
Ручная перепаковка
Может понадобиться для изменения .PKGINFO и .INSTALL или состава файлов
pacman -S пакет
Вносим изменения
repacman пакет
Самый простой вариант не работает
mkdir -p /..pkg-name && bsdtar -xf -C /..pkg-name
cd /..pkg-name && bsdtar --exclude .. cJvf /...pkg.tar.xz .*
Репозиторий
Создание
Подключение
Создание и подключение собственного репозитория в AF актуально при сборке базы. Поэтому - самый простой вариант - локальный репозиторий. Для других случаев проще .pfs
Собственный репозиторий может понадобиться для оптимизации размера пакетов, удаления ненужных зависимостей.
Подключение
[custom]
Server = file:///mnt/sda2/chroot/af-rep
IgnorePkg = linux cairo gdk-pixbuf2 glibc
Пакеты.pfs
Для подключения, установки, удаления используйте
Варианты сборки базового модуля
Для уменьшения размера модуля, что актуально для полной загрузке в RAM, используйте скрипт trim
makechrootpkg сборка
Загрузите любой свежий arch или используйте
любой linux
Пропишите ближайший репозиторий в mirrorlist
Обновите базу пакетов pacman -Syy
-
Воспользуйтесь
инструкцией или готовыми скриптами из
/usr/local/af-make/ DEVX-AF*.pfs модуля
сhroot перепаковка
Возьмите понравившийся arch live-дистрибутив
Распакуйте самый большой файл (mkdir -p /tmp/distr && unsquashfs файл.squashfs /tmp/distr)
chroot.sh /tmp/distr
pacman -Rs лишнее && pacman -Syu && pacman -S нужное
Запакуйте в squashfs (mksquashfs или pfs-utils)
Конвертация в .pfs
Скачиваем нужные пакеты.pkg.tar.xz
Скриптом pkg2pfs конвертируем в .pfs
-
В случае пакетов другого формата - распаковать и собрать по PuppyRus методике
Live CD (flash) система
Обзор Arch методов
Larch
Целая система сборки. Сложна и малофункциональна. Можно использовать только hook для mkinitcpio
rootaufs
AUFS ядро
В репозитории Arch отсутствует
Готовое
Сборка
Конвертация пакетов pfs<->pkg.tar.xz
pkg.tar.xz -> pfs
pkg2pfs пакет.pkg.tar.xz
Создается пакет с возможностью подключения и установки с помощью pfs-utils.
Т.к. пакет содержит /var/lib/pacman/local - pacman учитывает его при обработке зависимостей других пакетов. Если это не нужно, например пакет усеченный - без DEV компонентов, - удалить /var/lib/pacman/local
pfs -> pkg.tar.xz
Интернационализация
Интернационализация присутствует с Arch в полном объеме. В AF намененно вырезана для оптимизации размера. Вернуть или сделать под другой язык можно пересборкой с изменением скрипта trim