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

This page is a translated version of the page Build Manjaro ISOs with buildiso and the translation is 100% complete.
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

Пример файла `Packages-Desktop` можно посмотреть, развернув этот блок. Всегда лучше использовать последнюю версию, а не копировать эту.

## Сеть
avahi
networkmanager
networkmanager-openconnect
networkmanager-openvpn
networkmanager-pptp
networkmanager-vpnc
nss-mdns # Поддержка NSS для mDNS (зависимость для avahi)
ntp
mobile-broadband-provider-info
modemmanager
openresolv
openssh
samba
usb_modeswitch

## Библиотеки для звука/аудио/видео
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

## Поддержка/разработка AUR
# Отсутствующие пакеты base-devel
autoconf
automake
binutils
bison
fakeroot
flex
gcc
>multilib gcc-libs-multilib
>multilib gcc-multilib
libtool
m4
make
patch
pkg-config
>multilib lib32-flex
# Пакеты extra для поддержки AUR
>extra git
>extra patchutils
>extra subversion

## Шрифты
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

## Extra XFCE
blueman
ffmpegthumbnailer  # tumbler - для эскизов видео
freetype2          # tumbler - для эскизов шрифтов
gksu
gnome-keyring      # устраняет неисправность wlan
libgsf             # tumbler - для эскизов ODF
libopenraw         # tumbler - для эскизов RAW
light-locker
network-manager-applet
menulibre
orage
poppler-glib       # tumbler - для эскизов PDF
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

## Темы
>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

## Сервер Xorg и графика
>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

## Инструменты рабочего стола
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 - гораздо больше.

Когда процесс сборки успешно завершится, ISO-файл и список пакетов появятся в этом каталоге:

/var/кэш/manjaro-tools/iso/

Пример:

Вы можете использовать аргументы с командой buildiso для получения дополнительных параметров сборки:

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


  • -f позволяет указать, нужен ли вам полный ISO. Если это не указано - будет создан минимальный ISO.
  • -b позволяет задать ветку. Вы также можете задать её в файле manjaro-tools.conf.

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

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

После успешной или неудачной сборки вы можете избавиться от большинства данных ("сырой" 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 для создания полного профиля.

Смотрите также