====== AF Linux====== [[wr>AUFS]] [[http://puppylinux.org/wikka/FrugalOrFullInstallation|frugal]] [[http://www.mediafire.com/?vc9vnhy9nbyrw|Скачать]] [[http://forum.puppyrus.org/index.php/topic,13843.msg73025.html#msg73025|Обсудить]] **Предистория**: [[http://uco.puppyrus.org/forum/thread176.html|SFSLinux=.deb+Puppy]] [[http://forum.puppyrus.org/index.php/topic,13646.0.html|ArchPupRus]] [[http://uco.puppyrus.org/forum/thread229.html|ALF]] ПапиРус21 Байт[[http://forum.puppyrus.org/index.php/topic,12564.msg67171.html|006a]],[[http://forum.puppyrus.org/index.php/topic,13284.0.html|008]] Дальнейший текст изобилует ссылками на arch-wiki. Она обновляется, переводится на русский (часто более старая версия, хотя бы просматривайте английскую версию) и содержит ответы на любые вопросы. ====== Поставленные задачи ====== -упростить и ускорить сборку использованием готовых отработанных методик и пакетов arch linux -за счет pacmanXG упростить пользователю установку софта -получить доступ к самому свежему программному обеспечению из репозитория arch linux и [[https://wiki.archlinux.org/index.php/Arch_User_Repository_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29|AUR]] ====== Особенности и состав AF ====== *Дистрибутив собран на пакетной базе [[https://wiki.archlinux.org/index.php/The_Arch_Way_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29|Arch]] Linux *Использованы разработки [[http://forum.puppyrus.org/index.php/board,87.0.html|PuppyRus218]] (конфиг ядра, [[http://docs.rodon.tk/doku.php?id=pr218:pfs|pfs-utils]]). *Собственные разработки: [[http://wiki.puppyrus.org/soft/sfrugal|sfrugal]], [[http://forum.puppyrus.org/index.php/topic,13419.0.html|sfs-get]], [[http://wiki.puppyrus.org/soft/notify|ntf]] *Live система [[https://aur.archlinux.org/packages/mkinitcpio-rootaufs/?setlang=ru|rootaufs]] (доработана) *Функционал и состав аналогичен [[http://forum.puppyrus.org/index.php/topic,13284.0.html|PuppyRus Byte 218]] Использование AF должно быть не сложнее Puppy. В любом случае желателен опыт Arch и Puppy ===== Отличия AF от родительских и аналогичных сборок ===== *Arch: ядро не из core, [[http://wiki.puppyrus.org/setups/full-vs-frugal|frugal]] *PuppyRus218: [[wr>systemd]], полноценный пакетный менеджер (pacman) с [[wr>GUI]] и софтом *[[http://sourceforge.net/projects/archpup/|ArchPup]]: [[https://aur.archlinux.org/packages/mkinitcpio-rootaufs/?setlang=ru|rootaufs]], [[wr>systemd]], не использовался [[https://bitbucket.org/simargl/spkg|spkg]], AF более совместим с Arch ===== Варианты развития ===== AF можно рассматривать не как дистрибутив, а как методику сборки модульного frugal дистрибутива. Сборка рассчитана на подготовленного пользователя. -Дальнейшее использование репозитория Arch Linux (или другого [[https://wiki.archlinux.org/index.php/Pacman_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29|pacman]] совместимого [[http://distrowatch.com/search.php?ostype=Linux&category=All&origin=All&basedon=Arch¬basedon=None&desktop=All&architecture=All&status=Active|дистрибутива]]), совершенствование live и frugal -chroot - перепаковка [[http://distrowatch.com/search.php?ostype=Linux&category=All&origin=All&basedon=Arch¬basedon=None&desktop=All&architecture=All&status=Active|других совместимых дистрибутивов]] c изменением состава. Добавление модульности и frugal -Создание своего репозитория с использованием [[https://wiki.archlinux.org/index.php/Arch_Build_System_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29|ABS]] и [[https://wiki.archlinux.org/index.php/Arch_User_Repository_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29|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 - модули ядра *FW*.pfs - [[wpru>firmware]] *DEVX-AF*.pfs - модуль разработчика. Необходим для компиляции ===== Слои AUFS===== [[http://wiki.puppyrus.org/setups/start?&#aufs|Теория]] Сверху вниз (файлы верхних слоев перекроют прочие) *rootaufs - аналог сохраненки *sfsdiru= - см. [[http://wiki.puppyrus.org/soft/sfrugal|sfrugal]] *overlay= - базовые squashfs модули. Слои AUFS в порядке перечисления, т.е. файлы 1го модуля (AF.pfs) перекроют прочие. *sfsdir= - см. [[http://wiki.puppyrus.org/soft/sfrugal|sfrugal]] ====== Установка AF на жесткий диск или флэш ====== [[http://wiki.puppyrus.org/setups/full-vs-frugal|Frugal vs Full]] ===== 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=sda//1 Посмотреть можно командой 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 ====== Настройка ====== *[[https://wiki.archlinux.org/index.php/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B4%D0%BB%D1%8F_%D0%BD%D0%BE%D0%B2%D0%B8%D1%87%D0%BA%D0%BE%D0%B2|Руководство_для_новичков]] *[[http://archlinux.org.ru/forum/topic/10511/|Скрипт конфигурирования системных файлов ArchLinux из одного места]] *https://wiki.archlinux.org/index.php/Automatic_login_to_virtual_console *https://wiki.archlinux.org/index.php/Start_X_at_Login =====Пользователи, пароли,права ===== * Пользователь по умолчанию: //live// * Пароль: //111111// При использовании sshd, ftpd и т.п. - лучше сразу поменять: //passwd live// * root права на все через sudo * Урезать: //man sudoers; sudo visudo// * Пароль root: 111111 ===== systemd ===== *[[https://wiki.archlinux.org/index.php/Systemd_(Русский)]] *http://wiki.russianfedora.ru/index.php/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 (меню) ===== Сеть ===== *[[https://wiki.archlinux.org/index.php/Configuring_Network_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29|Настройка сети]] *[[https://wiki.archlinux.org/index.php/Wireless_Setup_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29#.D0.A7.D0.B0.D1.81.D1.82.D1.8C_II:_.D0.A3.D0.BF.D1.80.D0.B0.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_.D0.B1.D0.B5.D1.81.D0.BF.D1.80.D0.BE.D0.B2.D0.BE.D0.B4.D0.BD.D1.8B.D0.BC.D0.B8_.D1.81.D0.BE.D0.B5.D0.B4.D0.B8.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F.D0.BC.D0.B8|Wireless_Setup]] *gnome-ppp - модемные соединения ===== Время ===== *[[https://wiki.archlinux.org/index.php/Timezone#Time_Zone]] *Посмотреть: //timedatectl status | grep local// *Установить:// timedatectl set-local-rtc 1// , где 1-UTC, 0-local (как в windows). Генерит ///etc/adjtim// =====Горячие клавиши===== *Вызвать их список : h. - это клавиша windows, слева между Ctrl и Alt *3 : вызывает в верхней части экрана [[https://wiki.archlinux.org/index.php/Dmenu|dmenu]] c выбором всех запускаемых файлов из PATH. dmenu обеспечивает более удобный поиск *5 : вызывает в верхней части экрана [[https://wiki.archlinux.org/index.php/Dmenu|dmenu]] c выбором всех программ из меню. =====Переключение клавиатуры us\ru===== [[http://forum.puppyrus.org/index.php/topic,12261.0.html|/home/live/Startup/en-ru]] =====Conky. Мониторинг===== *[[wpru>conky]] *Вкл\выкл : c *http://forum.puppyrus.org/index.php/topic,11683.0.html *При малом заряде батареи и при недостатке места на корневом разделе - выдает предупреждение ====== WM ====== ===== JWM ===== https://wiki.archlinux.org/index.php/JWM ===== XFCE ===== http://forum.puppyrus.org/index.php/topic,13843.msg73577.html#msg73577 ====== Arch пакеты ====== ===== Пакетный менеджер (ПМ) ===== ==== pacman ==== *[[https://wiki.archlinux.org/index.php/Pacman_(Русский)]] *[[https://www.archlinux.org/groups/|Группы ПО]] *http://wiki.manjaro.org/index.php/Pacman-GUI === Шпаргалка === *Для принудительного обновления списка пакетов : //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 ==== [[https://github.com/keenerd/packer/wiki|Описание]] В отличие от pacman работает еще и с AUR. Типовое использование: -// packer имя_или_описание_пакета// - найти и установить -// packer -G имя_пакета// - скачать и распаковать tarball с PKGBUILD. Далее //makepkg --asroot// ===== Создание пакета ===== *[[https://wiki.archlinux.org/index.php/Arch_Build_System_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29|ABS]] *[[https://wiki.archlinux.org/index.php/Creating_Packages_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29|Creating_Packages]] ===== Ручная перепаковка ===== Может понадобиться для изменения .PKGINFO и .INSTALL или состава файлов -pacman -S пакет -Вносим изменения -repacman пакет Самый простой вариант не работает mkdir -p /..pkg-name && bsdtar -xf -C /..pkg-name cd /..pkg-name && bsdtar --exclude .. cJvf /...pkg.tar.xz .* ===== Репозиторий ===== ==== Создание ==== [[https://wiki.archlinux.org/index.php/Making_a_Custom_Package_CD#Installing_packages_from_a_CD.2FDVD_or_USB_stick|Локальный репозиторий]] Примеры бесплатного размещения: *http://code.google.com/p/alphaos/downloads/list *http://dl.dropbox.com/u/11734958/index.html ==== Подключение ==== *Создание и подключение собственного репозитория в AF актуально при сборке базы. Поэтому - самый простой вариант - локальный репозиторий. Для других случаев проще .pfs *Собственный репозиторий может понадобиться для оптимизации размера пакетов, удаления ненужных зависимостей. *Подключение [custom] Server = file:///mnt/sda2/chroot/af-rep *Если поместить свой репозиторий в начало /etc/pacman.conf - пакеты будут установлены в первую очередь из него. *Чтобы автообновление этих пакетов не происходило - дописать в /etc/pacman.conf IgnorePkg = linux cairo gdk-pixbuf2 glibc ======= Пакеты.pfs ======== Для подключения, установки, удаления используйте *[[http://wiki.puppyrus.org/puppyrus/pr218/pfs|pfs-utils]] *[[http://forum.puppyrus.org/index.php/topic,13419.0.html|sfs-get]] ====== Варианты сборки базового модуля ====== Для уменьшения размера модуля, что актуально для полной загрузке в [[wr>RAM]], используйте скрипт **trim** *Удаляет неиспользуемые локализации и временные зоны *Удаляет man info doc *Выделяет компоненты нужных только разработчикам (devx) *Чистит cache и т.п. ===== makechrootpkg сборка ===== -Загрузите любой свежий arch или используйте [[https://wiki.archlinux.org/index.php/Install_from_Existing_Linux_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29|любой linux]] -Пропишите ближайший репозиторий в mirrorlist -Обновите базу пакетов //pacman -Syy// -Установите или [[https://github.com/archlinuxarm/devtools|соберите]] devtools -Воспользуйтесь [[https://wiki.archlinux.org/index.php/DeveloperWiki:Building_in_a_Clean_Chroot|инструкцией]] или готовыми скриптами из ///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 -Собираем по [[http://wiki.puppyrus.org/puppyrus/pr218/pfs|PuppyRus методике]] В случае пакетов другого формата - распаковать и собрать по [[http://wiki.puppyrus.org/puppyrus/pr218/pfs|PuppyRus методике]] ======Live CD (flash) система====== Т.е. тот самый frugal. Ключевой момент - [[https://wiki.archlinux.org/index.php/Mkinitcpio_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29|сборка initrd]] ===== Обзор Arch методов===== *https://wiki.archlinux.org/index.php/Category:Live_Arch_systems *https://wiki.archlinux.org/index.php/Building_a_Live_CD *http://code.google.com/p/archlive/wiki/BootArchFromLoop *[[https://github.com/remyoudompheng/livearch|poison]] *[[https://wiki.archlinux.org/index.php/Diskless_network_boot_NBD_root]] ==== Larch ==== Целая система сборки. Сложна и малофункциональна. Можно использовать только //hook// для //mkinitcpio// *http://larch.berlios.de *http://www.dbarticles.com/creating-a-archlinux-live-cd-lxde-gui-with-larch/ ===== rootaufs ===== В AF доработана и использована https://github.com/aur-archive/mkinitcpio-rootaufs/blob/master/rootaufs_install *Наиболее проста и функциональна. ***Основные параметры ядра описаны в af.txt.gz в корне CD**. Дополнительные: [[https://wiki.archlinux.org/index.php/GRUB_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29#.D0.A1.D0.BE.D0.B2.D0.B5.D1.82.D1.8B_.D0.B8_.D1.82.D1.80.D1.8E.D0.BA.D0.B8|vga=]] *Позволяет загружать модули в [[wpru>RAM]] и различные виды сохраненок (раздел, директория, файл) ====== 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 . Оба ядра non[[wpru>PAE]] ===== Сборка ===== *//packer linux-aufs_friendly// *https://wiki.archlinux.org/index.php/Linux-pf *https://aur.archlinux.org/packages/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 пакет ====== Интернационализация ====== [[wp>Интернационализация]] присутствует с Arch в полном объеме. В AF намененно вырезана для оптимизации размера. Вернуть или сделать под другой язык можно пересборкой с изменением скрипта trim