Содержание
AF Linux
Предистория: SFSLinux=.deb+Puppy ArchPupRus ALF ПапиРус21 Байт006a,008
Дальнейший текст изобилует ссылками на arch-wiki. Она обновляется, переводится на русский (часто более старая версия, хотя бы просматривайте английскую версию) и содержит ответы на любые вопросы.
Поставленные задачи
- упростить и ускорить сборку использованием готовых отработанных методик и пакетов arch linux
- за счет pacmanXG упростить пользователю установку софта
- получить доступ к самому свежему программному обеспечению из репозитория arch linux и AUR
Особенности и состав AF
- Дистрибутив собран на пакетной базе Arch Linux
- Использованы разработки PuppyRus218 (конфиг ядра, pfs-utils).
- Live система rootaufs (доработана)
- Функционал и состав аналогичен PuppyRus Byte 218
Использование AF должно быть не сложнее Puppy. В любом случае желателен опыт Arch и Puppy
Отличия AF от родительских и аналогичных сборок
- Arch: ядро не из core, frugal
Варианты развития
AF можно рассматривать не как дистрибутив, а как методику сборки модульного frugal дистрибутива. Сборка рассчитана на подготовленного пользователя.
- Дальнейшее использование репозитория Arch Linux (или другого pacman совместимого дистрибутива), совершенствование live и frugal
- chroot - перепаковка других совместимых дистрибутивов c изменением состава. Добавление модульности и frugal
- Перепаковка пакетов другого дистрибутива (даже не 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 - модули ядра
- FW*.pfs - firmware
- DEVX-AF*.pfs - модуль разработчика. Необходим для компиляции
Слои AUFS
Сверху вниз (файлы верхних слоев перекроют прочие)
Установка 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 (меню)
Сеть
- gnome-ppp - модемные соединения
Время
- Посмотреть: timedatectl status | grep local
- Установить: timedatectl set-local-rtc 1 , где 1-UTC, 0-local (как в windows). Генерит /etc/adjtim
Горячие клавиши
Переключение клавиатуры us\ru
Conky. Мониторинг
- Вкл\выкл : <Super>c
- При малом заряде батареи и при недостатке места на корневом разделе - выдает предупреждение
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
- Если поместить свой репозиторий в начало /etc/pacman.conf - пакеты будут установлены в первую очередь из него.
- Чтобы автообновление этих пакетов не происходило - дописать в /etc/pacman.conf
IgnorePkg = linux cairo gdk-pixbuf2 glibc
Пакеты.pfs
Варианты сборки базового модуля
Для уменьшения размера модуля, что актуально для полной загрузке в RAM, используйте скрипт trim
- Удаляет неиспользуемые локализации и временные зоны
- Удаляет man info doc
- Выделяет компоненты нужных только разработчикам (devx)
- Чистит cache и т.п.
makechrootpkg сборка
- Загрузите любой свежий arch или используйте любой linux
- Пропишите ближайший репозиторий в mirrorlist
- Обновите базу пакетов pacman -Syy
- Установите или соберите devtools
- Воспользуйтесь инструкцией или готовыми скриптами из /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 методике
В случае пакетов другого формата - распаковать и собрать по PuppyRus методике
Live CD (flash) система
Т.е. тот самый frugal. Ключевой момент - сборка initrd
Обзор Arch методов
Larch
Целая система сборки. Сложна и малофункциональна. Можно использовать только hook для mkinitcpio
rootaufs
В AF доработана и использована https://github.com/aur-archive/mkinitcpio-rootaufs/blob/master/rootaufs_install
AUFS ядро
В репозитории Arch отсутствует
Готовое
wget ftp://ftp.berlios.de/pub/larch/larch8/i686/linux-aufs_friendly-docs-3.8.7-1-i686.pkg.tar.xz && pacman -U linux-aufs_friendly-docs-3.8.7-1-i686.pkg.tar.xz
Есть более старое: ftp://ftp.berlios.de/pub/larch/larch8/i686/kernel26-2.6.38.7-1-i686.pkg.tar.gz . Оба ядра nonPAE
Сборка
- packer linux-aufs_friendly
Конвертация пакетов 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
- unsquashfs пакет.pfs
- Создать /var/lib/pacman/local/имя_пакета/desc или взять из аналогичного пакета
- mkpfs-p2p директория
- pfsload пакет.pfs
- repacman пакет
Интернационализация
Интернационализация присутствует с Arch в полном объеме. В AF намененно вырезана для оптимизации размера. Вернуть или сделать под другой язык можно пересборкой с изменением скрипта trim