Создание ISO-файлов Manjaro с помощью buildiso

Revision as of 04:51, 22 February 2023 by Krotesk (talk | contribs) (Created page with "## Шрифты cantarell-fonts # noto-fonts # шрифт по-умолчанию # noto-fonts-cjk # большой пакет, сжат до ~76 МБ # >e...")
Other languages:
English • ‎русский • ‎فارسی

Предпосылки

Это подробное описание установки и настройки инструментов и процесса сборки.

Это требование - либо загрузить и установить последнюю версию Manjaro, либо работать с хорошо поддерживаемой системой Manjaro. Важно, чтобы ваша система была обновлена последними версиями ядра и пакетов.

Установка инструментов Manjaro

Для начала работы вам понадобятся следующие пакеты:

user $ pamac install manjaro-tools-iso git COPY TO CLIPBOARD


Мы будем работать с официальным XFCE, чтобы помочь вам понять, что нужно делать.

Профиль ISO

Загрузите последние профили ISO

Последние версии профилей можно найти на gitlab Manjaro. Вы можете загрузить их напрямую, используя команду:

user $ git clone https://gitlab.manjaro.org/profiles-and-settings/iso-profiles.git ~/iso-profiles COPY TO CLIPBOARD


.

Обзор профиля ISO

Профиль ISO для xfce теперь можно найти по адресу

user $ ls -l ~/iso-profiles/manjaro/xfce COPY TO CLIPBOARD


Давайте подробнее рассмотрим каталог профиля XFCE (отмечен выше):

desktop-overlay
live-overlay -> ../../shared/manjaro/live-overlay
Packages-Desktop
Packages-Live -> ../../shared/Packages-Live
Packages-Mhwd -> ../../shared/Packages-Mhwd
Packages-Root -> ../../shared/Packages-Root
profile.conf
  • desktop-overlay: после каждой успешной установки вашего ISO файлы и каталоги, находящиеся здесь, будут скопированы.
  • live-overlay: аналогично desktop-overlay. Файлы и каталоги, находящиеся здесь, будут копироваться только на LiveCD вашего ISO.
  • Packages-Desktop: этот файл содержит пакеты для установки ISO. Все пакеты также будут установлены на LiveCD.
  • Packages-Live: этот файл содержит пакеты, которые будут установлены только на LiveCD.
  • Packages-Mhwd: этот файл содержит пакеты Mhwd, важные для всех установок Manjaro и LiveCD.
  • Packages-Root: этот файл содержит базовые пакеты, важные для всех установок Manjaro и LiveCD.
  • profile.conf содержит основные настройки для вашей установки ISO и LiveCD.

Как вы, вероятно, заметили, некоторые из них являются всего лишь символическими ссылками на ISO-профиль shared. Хорошей практикой является никогда не изменять файлы или каталоги в ISO-профиле shared. Если вы когда-нибудь захотите их изменить - сначала скопируйте их в каталог вашего ISO-профиля и удалите символическую ссылку.

Все каталоги и файлы, специфичные для вашего ISO, выделены полужирным шрифтом. Вы можете изменить их по своему усмотрению.

Изменение профиля ISO

Наиболее распространенными местами для настройки ISO-профиля являются 3 каталога, отмеченные выше: desktop-overlay, profile.conf, Packages-Desktop:

desktop-overlay

Директория desktop-overlay выглядит следующим образом:


$ tree ~/iso-profiles/manjaro/xfce/desktop-overlay/etc

../iso-profiles/manjaro/xfce/desktop-overlay/
├── etc
│   ├── fonts
│   │   └── conf.d
│   │       └── 70-no-bitmaps.conf
│   └── lightdm
│       ├── lightdm.conf
│       └── lightdm-gtk-greeter.conf
└── usr
    └── share
        └── icons
            └── default
                └── index.theme


Перейдите в эту директорию.

user $ cd ~/iso-profiles/manjaro/xfce/desktop-overlay/etc/ COPY TO CLIPBOARD


Затем создайте каталог skel. В нем вы сможете клонировать в ISO все, что видите на экране рабочего стола.

user $ mkdir skel COPY TO CLIPBOARD


После успешной установки ISO все файлы и каталоги из desktop-overlay копируются на установленную систему. Сюда входят файлы настроек/конфигурации, а также темы и фоны/картинки.

Все файлы и каталоги, находящиеся здесь, будут скопированы в домашний каталог. Большинство скрытых файлов и их структура в ~/iso-profiles/manjaro/xfce/desktop-overlay/etc/skel/ должны быть вам уже знакомы, поскольку ваша домашняя директория выглядит очень похоже.

Клонирование пользовательских обоев рабочего стола

Чтобы клонировать ваш рабочий стол с пользовательскими обоями. Откройте новый менеджер файлов и перейдите к этому файлу:

~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml

Измените все каталоги изображений на те, в которых находились ваши пользовательские обои. Например:

 /usr/share/backgrounds/<ВАШЕ ИЗОБРАЖЕНИЕ ЗДЕСЬ>

Пример

A sample `xfce4-desktop.xml` can be viewed by unfolding this block

 <?xml version="1.0" encoding="UTF-8"?>
 
 <channel name="xfce4-desktop" version="1.0">
   <property name="backdrop" type="empty">
     <property name="screen0" type="empty">
       <property name="monitor0" type="empty">
         <property name="image-path" type="string" value="'''/usr/share/backgrounds/<YOUR IMAGE HERE>'''"/>
         <property name="last-image" type="string" value="'''/usr/share/backgrounds/<YOUR IMAGE HERE>'''"/>
         <property name="last-single-image" type="string" value="'''/usr/share/backgrounds/<YOUR IMAGE HERE>'''"/>
         <property name="image-style" type="int" value="5"/>
       </property>
       <property name="monitorVGA-0" type="empty">
         <property name="workspace0" type="empty">
           <property name="color-style" type="int" value="0"/>
           <property name="image-style" type="int" value="5"/>
           <property name="last-image" type="string" value="'''/usr/share/backgrounds/<YOUR IMAGE HERE>'''"/>
         </property>
         <property name="workspace1" type="empty">
           <property name="color-style" type="int" value="0"/>
           <property name="image-style" type="int" value="5"/>
           <property name="last-image" type="string" value="'''/usr/share/backgrounds/<YOUR IMAGE HERE>'''"/>
         </property>
       </property>
     </property>
   </property>
   <property name="desktop-icons" type="empty">
     <property name="style" type="int" value="2"/>
     <property name="file-icons" type="empty">
       <property name="show-removable" type="bool" value="true"/>
     </property>
     <property name="icon-size" type="uint" value="32"/>
   </property>
 </channel>

Перейдите в эту директорию:

user $ cd ~/iso-profiles/manjaro/xfce/desktop-overlay/ COPY TO CLIPBOARD


Затем создайте каталог usr/share/backgrounds и поместите в него свои пользовательские обои.

user $ mkdir ./usr/share/backgrounds COPY TO CLIPBOARD


user $ cp ~/Pictures/Wallpapers/your-wallpaper.png ~/iso-profiles/manjaro/xfce/desktop-overlay/usr/share/backgrounds COPY TO CLIPBOARD


profile.conf

Полное содержание примера profile.conf можно посмотреть, развернув этот блок. Всегда лучше использовать последнюю версию, а не копировать эту.

##########################################
##### используйте этот файл в профиле ####
##########################################

# использовать пакеты multilib; только x86_64
# multilib="true"

displaymanager="lightdm"

# Установите false для отключения автологина в livecd
# autologin="true"

# несвободные драйверы mhwd
# nonfree_mhwd="true"

# использовать пакеты extra, определенные в pkglist, для активации полного профиля
#extra="true"

################ установка ###############

# сбросить значение по умолчанию на заданное значение
# efi_boot_loader="grub"

# настроить calamares для netinstall
# netinstall="false"

# настроить calamares на использование chrootcfg вместо unpackfs
# chrootcfg="false"

# использовать geoip для локализации
# geoip='true'

# снимите значения по умолчанию с заданных значений
# имена должны совпадать с именами служб systemd
enable_systemd=('avahi-daemon' 'bluetooth' 'cronie' 'ModemManager' 'NetworkManager' 'org.cups.cupsd' 'tlp' 'tlp-sleep' 'ufw')
disable_systemd=('pacman-init')

# снимите значения по умолчанию с заданных значений,
# имена должны совпадать с именами служб openrc
# enable_openrc=('acpid' 'bluetooth' 'elogind' 'cronie' 'cupsd' 'dbus' 'syslog-ng' 'NetworkManager')
# disable_openrc=()

# то же имя рабочей группы, если используется samba
# smb_workgroup=""

################# livecd #################

# незаданное по умолчанию принимает данное значение
# hostname="manjaro"

# незаданное по умолчанию принимает данное значение
# username="manjaro"

# незаданное по умолчанию принимает данное значение
# password="manjaro"

# оболочка входа в систему
# по-умолчанию bash
# login_shell=/bin/bash

# незаданное по умолчанию принимает данное значение
# addgroups="lp,network,power,wheel"

# незаданное по умолчанию принимает данное значение
# имена должны совпадать с именами служб systemd
# services in enable_systemd array don't need to be listed here
# enable_systemd_live=('manjaro-live' 'mhwd-live' 'pacman-init' 'mirrors-live')

# обнулить значения по умолчанию с заданных значений,
# имена должны совпадать с именами служб openrc
# службы в массиве enable_openrc не обязательно должны быть перечислены здесь
# enable_openrc_live=('manjaro-live' 'mhwd-live' 'pacman-init' 'mirrors-live')

Этот файл конфигурации содержит опции настройки. Все настройки по умолчанию закомментированы. Если вы хотите их изменить - раскомментируйте (уберите символ # перед ними) и измените их.

Заслуживают внимания следующие параметры:

  • multilib= настройка относится к флагу >multilib в списках пакетов. multilib будет устанавливать основные 32-битные библиотеки на 64-битных системах. Это повышает совместимость 32-разрядных приложений на 64-разрядных системах.
  • displaymanager= устанавливает менеджер дисплея / входа, который использует ваша система. Вам также необходимо указать менеджер дисплея в списке пакетов.
  • nonfree_xorg= относится к проприетарным графическим драйверам.
  • netinstall=: не используйте
  • chrootcfg=: не используйте
  • kernel= позволяет задействовать установленное ядро. Не включайте никакие ядра в список пакетов! Эта настройка - все, что вам нужно.
  • enable_systemd= позволяет задать службы systemd, запускаемые на установленной системе (и с аналогичными настройками на livecd).
  • enable_openrc=: не используйте

Packages-Desktop

An example `Packages-Desktop` file can be viewed by unfolding this block. It is always best to use the latest version instead of copying this one.

## Network
avahi
networkmanager
networkmanager-openconnect
networkmanager-openvpn
networkmanager-pptp
networkmanager-vpnc
nss-mdns # NSS support for mDNS (optdepend for avahi)
ntp
mobile-broadband-provider-info
modemmanager
openresolv
openssh
samba
usb_modeswitch
</div>

## Библиотеки для звука/аудио/видео
alsa-firmware
alsa-utils
ffmpeg
gst-libav
gst-plugins-bad
gst-plugins-base
gst-plugins-good
gst-plugins-ugly
libdvdcss
>multilib manjaro-alsa
manjaro-pulse
pulseaudio-bluetooth
pulseaudio-ctl
pulseaudio-zeroconf

## Пакеты подключения
android-tools
android-udev
gvfs
gvfs-afc
gvfs-gphoto2
gvfs-mtp
gvfs-nfs
gvfs-smb
mtpfs
udiskie
udisks2

<div lang="en" dir="ltr" class="mw-content-ltr">
## AUR Support/Development
# Missing base-devel packages
autoconf
automake
binutils
bison
fakeroot
flex
gcc
>multilib gcc-libs-multilib
>multilib gcc-multilib
libtool
m4
make
patch
pkg-config
>multilib lib32-flex
# Extra packages for AUR support
>extra git
>extra patchutils
>extra subversion
</div>

## Шрифты
cantarell-fonts
# noto-fonts             # шрифт по-умолчанию
# noto-fonts-cjk         # большой пакет, сжат до ~76 МБ
# >extra noto-fonts-emoji
terminus-font
ttf-bitstream-vera       # xfce4-terminal по-умолчанию моноширинный
# ttf-dejavu             # установлен как зависимость для gnome-themes-standard
>extra ttf-inconsolata
>extra ttf-indic-otf
>extra ttf-liberation
>extra ttf-droid

## Игры
>extra steam-manjaro

## Менеджеры пакетов
pamac
flatpak

## Java
>extra jdk8-openjdk
>extra jre8-openjdk-headless
>extra jre8-openjdk

## Печать
>extra cups
>extra cups-pdf
>extra cups-pk-helper
>extra ghostscript
>extra gsfonts
>extra gtk3-print-backends
>extra hplip
>extra splix
>extra system-config-printer

## Необязательные зависимости для hplip
>extra pyqt5-common # для hplip
>extra python-pillow # для hplip
>extra python-pip # для hplip
>extra python-pyqt5  # для hplip gui
>extra python-reportlab # для hplip

## Менеджеры дисплея
lightdm
lightdm-gtk-greeter
lightdm-gtk-greeter-settings
accountsservice  # Улучшенная работа с учетными записями пользователей

## GTK3
gtk3-classic
>multilib lib32-gtk3-classic

## Группа XFCE
exo-gtk3
garcon-gtk3
thunar-gtk3
thunar-volman
tumbler
xfce4-appfinder-gtk3
xfce4-panel-gtk3
xfce4-power-manager-gtk3
xfce4-session-gtk3
xfce4-settings-gtk3
xfce4-terminal
xfconf-gtk3
xfdesktop-gtk3
xfwm4-gtk3

<div lang="en" dir="ltr" class="mw-content-ltr">
## XFCE Extras
blueman
ffmpegthumbnailer  # tumbler - for video thumbnails
freetype2          # tumbler - for font thumbnails
gksu
gnome-keyring      # fix wlan segfault
libgsf             # tumbler - for ODF thumbnails
libopenraw         # tumbler - for RAW thumbnails
light-locker
network-manager-applet
menulibre
orage
poppler-glib       # tumbler - for PDF thumbnails
thunar-archive-plugin
file-roller
thunar-media-tags-plugin
# >extra xfce4-artwork
xfce4-battery-plugin
xfce4-clipman-plugin
>extra xfce4-cpufreq-plugin
>extra xfce4-cpugraph-plugin
# xfce4-datetime-plugin
>extra xfce4-dict
>extra xfce4-diskperf-plugin
>extra xfce4-fsguard-plugin
>extra xfce4-genmon-plugin
>extra xfce4-mailwatch-plugin
>extra xfce4-mount-plugin
>extra xfce4-mpc-plugin
>extra xfce4-netload-plugin
>extra xfce4-notes-plugin
xfce4-notifyd-gtk3
xfce4-screenshooter
>extra xfce4-sensors-plugin
>extra xfce4-smartbookmark-plugin
>extra xfce4-systemload-plugin
xfce4-taskmanager
>extra xfce4-time-out-plugin
>extra xfce4-timer-plugin
>extra xfce4-verve-plugin
>extra xfce4-wavelan-plugin
>extra xfce4-weather-plugin
xfce4-whiskermenu-plugin-gtk3
xfce4-xkb-plugin
xfce4-pulseaudio-plugin
pavucontrol
</div>

## Темы
>extra manjaro-wallpapers-18.0
>extra wallpapers-2018
gnome-icon-theme
gnome-themes-standard
grub-theme-manjaro
matcha-gtk-theme
xcursor-simpleandsoft
xcursor-vanilla-dmz-aa

## Приложения
>extra catfish
dmidecode # необязательная зависимость inxi
engrampa
>extra firefox
# >extra flashplugin
>extra galculator-gtk2
gcolor2
>extra gimp
gparted
gufw
>extra audacious
>extra hexchat
htop
qpdfview
inxi
>extra libreoffice-still
ms-office-online
manjaro-hello
manjaro-application-utility
manjaro-settings-manager
manjaro-settings-manager-notifier
>basic midori
>extra mlocate
mousepad
mugshot
>basic parole # медиа-плеер
>extra pidgin
powertop
screenfetch
>extra poppler-data  # поддержка CKJ для pdf
>basic sylpheed # почтовый клиент
>extra thunderbird
>extra vlc
>extra viewnior
>extra xfburn
>extra yelp

# Необязательные зависимости engrampa
p7zip  # поддержка архивов 7Z и ARJ
unace  # поддержка архивов ACE
unrar  # поддержка архивов RAR

## Документация
manjaro-documentation-en

## Пакеты настроек
>extra manjaro-xfce-gtk3-settings
>basic manjaro-xfce-gtk3-minimal-settings
manjaro-browser-settings

## Драйверы входа Xorg
xf86-input-elographics
xf86-input-evdev
xf86-input-keyboard
xf86-input-libinput
xf86-input-mouse
xf86-input-void

<div lang="en" dir="ltr" class="mw-content-ltr">
## Xorg Server and Graphics
>multilib lib32-libva-intel-driver
>multilib lib32-libva-mesa-driver
>multilib lib32-libva-vdpau-driver
libva-intel-driver
libva-mesa-driver
libva-vdpau-driver
mesa-demos
>multilib lib32-mesa-demos
numlockx
xdg-user-dirs
xorg-server
xorg-twm
xorg-xinit
xorg-xkill
</div>

## Инструменты рабочего стола
perl-file-mimeinfo
xdg-utils
xdg-su

## Разное
manjaro-hotfixes

Этот файл содержит список пакетов, которые будут установлены на ваш установленный ISO (XFCE) и LiveCD (пакеты в файле Packages-Live устанавливаются только для live ISO). Это список пакетов с пакетами для Xfce (и пакетами, которые вы хотите добавить в свой собственный Manjaro ISO) из нескольких списков в вашем ISO-профиле. Другие списки пакетов являются более общими.

Вы можете добавлять или удалять имена пакетов из этого списка по своему усмотрению. Вам не нужно беспокоиться о зависимостях при добавлении имен пакетов, просто убедитесь, что имя пакета написано правильно и пакет доступен в репозиториях Manjaro.

# помечаются комментарии. Остальная часть строки после символа # игнорируется.

Добавление пакетов AUR

Если вы хотите добавить пакеты AUR в свой ISO, вам нужно создать онлайн-репозиторий и добавить его в файл user-repos.conf рядом с вашим profile.conf.

Используйте только свои собственные репозитории с поддержкой http.

[your-repo-name]
SigLevel = Optional TrustAll
Server = http://repo.server.tld/your-repo-name

Статья Buildiso с пакетами AUR: Использование buildpkg содержит более подробную информацию об этом процессе.


manjaro-tools.conf

manjaro-tools.conf является центральным конфигурационным файлом для всех инструментов, входящих в состав manjaro-tools. Отредактируйте только общие сведения и часть "buildiso", чтобы не выходить за рамки этого руководства. Если вы не уверены, что и как нужно редактировать, не редактируйте это. Вы всегда можете использовать аргументы с помощью команды buildiso позже.

По умолчанию, общесистемный файл конфигурации устанавливается в

/etc/manjaro-tools/manjaro-tools.conf

Лучше всего оставить общесистемный файл нетронутым и скопировать общесистемный конфиг в ваш домашний каталог cюда:

~/.config/manjaro-tools

Если userconfig присутствует, manjaro-tools/buildiso загрузит значения userconfig. Лучшая практика - оставить нетронутым общесистемный файл. По умолчанию он закомментирован и отображает только значения инициализации, выполненные в коде.

Создание собственного ISO

Создайте свой ISO с помощью следующей команды:

user $ buildiso -p xfce COPY TO CLIPBOARD

Вам необходимо указать имя вашего ISO-профиля после аргумента -p. В данном случае это <код>xfce.

Если процесс сборки завершился с ошибкой, запустите его снова.

Внимание: Процесс сборки занимает не менее 10 минут, а при использовании жестких дисков, медленных процессоров или больших ISO - гораздо больше.

When the build process finishes successfully, the ISO file and the package list will appear in this folder:

/var/cache/manjaro-tools/iso/

Example:

You can use arguments with the buildiso command for more build options:

user $ buildiso -f -p xfce -b stable COPY TO CLIPBOARD

  • -f let's you specify if you want the full ISO. If omitted a minimal ISO will be build.
  • -b let's you specify the branch. You can also set this in your manjaro-tools.conf file.

You can find other examples of builds using different arguments for buildiso here.

Очистка жесткого диска

После успешной или неудачной сборки вы можете избавиться от большинства данных ("сырой" ISO со всеми загруженными пакетами), удалив этот каталог:

user $ sudo rm -r /var/lib/manjaro-tools/buildiso/ COPY TO CLIPBOARD


Чтобы очистить систему от файлов пакетов, не установленных в системе (сюда входят все файлы пакетов, загруженные для вашего пользовательского ISO):

user $ sudo paccache -ruk0 COPY TO CLIPBOARD


Вы также можете вручную посмотреть

/var/cache/manjaro-tools/

и удалить каталоги или файлы по своему усмотрению. Если вы хотите удалить все ISO-образы, списки пакетов и кэшированные пакеты Xorg, сделайте это:

user $ sudo rm -r /var/cache/manjaro-tools/ COPY TO CLIPBOARD


Пожалуйста, помните, что все эти пакеты и файлы сохранены для вашего удобства. Если вы очистите систему, как указано выше, вам придется скачать все пакеты и собрать все образы снова, когда вы в следующий раз захотите собрать свой собственный Manjaro ISO.

По умолчанию ваш файл сохранится как manjaro-tools.conf. Если вы хотите удалить его, используйте

user $ rm -r ~/.config/manjaro-tools COPY TO CLIPBOARD



Советы и хитрости

Создание минимального ISO

Минимальный ISO легко создать, изменив запись в файле profile.conf. Найдите раздел

 # использовать пакеты extra, определенные в pkglist, для активации полного профиля
 # extra="false"
 extra="true"

удалите знак # перед extra = "false" и добавьте # перед extra = "true".

Если вы предпочтете не изменять это, то всегда можете использовать -f с buildiso для создания полного профиля.

See also