Создание ISO-файлов Manjaro с помощью buildiso
Предпосылки
Это подробное описание установки и настройки инструментов и процесса сборки.
Это требование - либо загрузить и установить последнюю версию Manjaro, либо работать с хорошо поддерживаемой системой Manjaro. Важно, чтобы ваша система была обновлена последними версиями ядра и пакетов.
Установка инструментов Manjaro
Для начала работы вам понадобятся следующие пакеты:
Мы будем работать с официальным XFCE, чтобы помочь вам понять, что нужно делать.
Профиль ISO
Загрузите последние профили ISO
Последние версии профилей можно найти на gitlab Manjaro. Вы можете загрузить их напрямую, используя команду:
.
Обзор профиля ISO
Профиль ISO для xfce теперь можно найти по адресу
Давайте подробнее рассмотрим каталог профиля 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
Перейдите в эту директорию.
Затем создайте каталог skel. В нем вы сможете клонировать в ISO все, что видите на экране рабочего стола.
После успешной установки 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>
Перейдите в эту директорию:
Затем создайте каталог usr/share/backgrounds
и поместите в него свои пользовательские обои.
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 с помощью следующей команды:
Вам необходимо указать имя вашего 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:
-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 yourmanjaro-tools.conf
file.
You can find other examples of builds using different arguments for buildiso here.
Очистка жесткого диска
После успешной или неудачной сборки вы можете избавиться от большинства данных ("сырой" ISO со всеми загруженными пакетами), удалив этот каталог:
Чтобы очистить систему от файлов пакетов, не установленных в системе (сюда входят все файлы пакетов, загруженные для вашего пользовательского ISO):
Вы также можете вручную посмотреть
/var/cache/manjaro-tools/
и удалить каталоги или файлы по своему усмотрению. Если вы хотите удалить все ISO-образы, списки пакетов и кэшированные пакеты Xorg, сделайте это:
Пожалуйста, помните, что все эти пакеты и файлы сохранены для вашего удобства. Если вы очистите систему, как указано выше, вам придется скачать все пакеты и собрать все образы снова, когда вы в следующий раз захотите собрать свой собственный Manjaro ISO.
По умолчанию ваш файл сохранится как manjaro-tools.conf
. Если вы хотите удалить его, используйте
Советы и хитрости
Создание минимального ISO
Минимальный ISO легко создать, изменив запись в файле profile.conf. Найдите раздел
# использовать пакеты extra, определенные в pkglist, для активации полного профиля # extra="false" extra="true"
удалите знак # перед extra = "false" и добавьте # перед extra = "true".
Если вы предпочтете не изменять это, то всегда можете использовать -f с buildiso для создания полного профиля.
See also
- Source: Manjaro Gitlab ISO Profiles (master branch may be unstable - select the branch for latest release)
- Forum: How to create your own Manjaro spin with Manjaro-Tools
- Forum: Philip Müller shows how-to
- Video: Building Manjaro ISO by Philip Müller(Tutorial Video)
- Wiki: Buildiso with AUR packages: Using buildpkg