1
0

Initial conversion to use DNF

This change makes it so that the ARM image creation script uses DNF
instead of urpmi. This affords several advantages:

1. Mageia images can be created from non-Mageia systems
2. Mageia images can be created from within Mock
3. ARM images can be created from x86_64 hosts
4. Image building can rely on pre-installed repo configurations

This also brings us in line with the Docker image creation process,
which also uses DNF.
This commit is contained in:
Neal Gompa 2020-01-04 17:52:35 -05:00
parent 3c6be8d7ad
commit b4da22f2cf
14 changed files with 100 additions and 62 deletions

View File

@ -47,19 +47,19 @@ Par défaut l'utilisateur est "pi" avec le mot de passe "raspberry", et l'admini
<a id="fr_creatimg"/>
### Créer l'image :
create_arm_img_urpmi.sh --all --config \<dossier de configuration\>
create_arm_image.sh --all --config \<dossier de configuration\>
Par exemple :
```
su -
<mot de passe root>
cd /home/user/workspace/mageia4arm/
./create_arm_img_urpmi.sh --all --target bananaPro --size 4 --tainted --nonfree --build-path ./build --config bananaPro 2>&1 | tee -a ./build.log
./create_arm_image.sh --all --target bananaPro --size 4 --tainted --nonfree --build-path ./build --config bananaPro 2>&1 | tee -a ./build.log
```
Avec cette commande, toutes les étapes (--all) du processus de création pour (--target) la bananaPro sont exécuter. L'image final tiendra sur une carte de (--size) 4Go. Les dépots tainted et nonfree seront activé. Le chemin de construction (--build-path) sera ./build. Finalement, la configuration (--config) sera bananaPro. La suite de la commande, 2>&1 redirige la sortie d'erreur dans la sortie standart et le tout est dupliqué (| tee -a) dans le fichier build.log pour le déboguage.
<a id="fr_help"/>
### Aide :
create_arm_img_urpmi.sh -h|--help
create_arm_image.sh -h|--help
Vous pouvez adapter le script "second_stage_install.sh" afin de compléter l'installation.
Des scripts sont disponibles dans le dossier "tools", ils sont copié dans /usr/local/bin/ dans l'image.
@ -123,8 +123,8 @@ label linux
append root=UUID=<UUID> <BOOT_ARGS>
```
Les balises :
- \<FDTDIR\> est automatiquement généré par le script ./mageia4arm/create_arm_img_urpmi.sh
- \<UUID\> est récupéré par le script ./mageia4arm/create_arm_img_urpmi.sh , il peut être nécessaire d'ajouter une initrd pour utiliser l'UUID, autrement il faut spécifier /dev/mmcblkXpY .
- \<FDTDIR\> est automatiquement généré par le script ./mageia4arm/create_arm_image.sh
- \<UUID\> est récupéré par le script ./mageia4arm/create_arm_image.sh , il peut être nécessaire d'ajouter une initrd pour utiliser l'UUID, autrement il faut spécifier /dev/mmcblkXpY .
- \<BOOT_ARGS\> est défini dans le fichier ./mageia4arm/platforms/\<LaPlateforme\>/mageia4arm.cfg .
@ -242,19 +242,19 @@ This repository contains script to make image for arm based systems from Mageia
Choose the config dir you need (rpi or xu4), else create a new config directory with "mageia4arm.cfg.template" in and modify it as you need.
By default username is "pi" with password "raspberry" and root password is "piroot".
create_arm_img_urpmi.sh --all --config <your config dir\>
create_arm_image.sh --all --config <your config dir\>
Example given :
```
su -
<root password>
cd /home/user/workspace/mageia4arm/
./create_arm_img_urpmi.sh --all --target bananaPro --size 4 --tainted --nonfree --build-path ./build --config bananaPro 2>&1 | tee -a ./build.log
./create_arm_image.sh --all --target bananaPro --size 4 --tainted --nonfree --build-path ./build --config bananaPro 2>&1 | tee -a ./build.log
```
With such command, all steps of the build process for the bananaPro will be executed. The final image will fit into a 4 GB SD card. The nonfree and tainted repositories will be activated. The build path will be the directory ./build. Finaly, the configuration is for bananaPro. The rest of the command, 2>&1 redirect the stderr stream into the stdout and it will be duplicated inside the build.log file for debug purpose.
<a id="en_help"/>
### Help:
create_arm_img_urpmi.sh -h|--help
create_arm_image.sh -h|--help
you can adapt the script "second_stage_install.sh" to complete the installation.
Some scripts are available in directory "tools". they are copied in /usr/local/bin/ in the image.
@ -318,8 +318,8 @@ label linux
append root=UUID=<UUID> <BOOT_ARGS>
```
The tags :
- \<FDTDIR\> is automatically generated by the script ./mageia4arm/create_arm_img_urpmi.sh
- \<UUID\> is automatically reused bu the script ./mageia4arm/create_arm_img_urpmi.sh , it might be necessary to add an initrd in order to user the UUID, otherwise it should be specify /dev/mmcblkXpY .
- \<FDTDIR\> is automatically generated by the script ./mageia4arm/create_arm_image.sh
- \<UUID\> is automatically reused bu the script ./mageia4arm/create_arm_image.sh , it might be necessary to add an initrd in order to user the UUID, otherwise it should be specify /dev/mmcblkXpY .
- \<BOOT_ARGS\> is defined in the configuration file ./mageia4arm/platforms/\<ThePlatform\>/mageia4arm.cfg

View File

@ -55,9 +55,8 @@ function help() {
echo -e "\nBuild levels:"
echo -e "--create-chroot Create the chroot directory"
echo -e "--addmedia add mirrors"
echo -e "--update-mirror update urpmi database"
echo -e "--install-basesystem install base system"
echo -e "--add-urpmimedia add mirrors for urpmi"
echo -e "--chroot chroot to arm directory and launch packages installation"
echo -e "--create-image Create the image of Mageia ${MAGEIA_VERSION}"
echo "--config Path to config files (rpi1 rpi2 rpi3 rpi3+ xu4)"
@ -87,7 +86,7 @@ function createchroot()
title "Making chroot"
if ! [ -f /bin/qemu-arm-static ]; then
title "Qemu package not present : installing qemu packages"
/sbin/urpmi --auto --no-recommends qemu-user-static
/usr/bin/dnf --assumeyes --setopt=install_weak_deps=False install qemu-user-static
if [ ${?} -ne 0 ]; then
error "line ${LINENO} can't install qemu-user-static : exiting"
exit ${ERR_1}
@ -106,9 +105,56 @@ function createchroot()
return 0
}
# enabling extra Mageia repositories
function genusemirroroptions()
{
DNF_MIRROROPTS="--nogpgcheck --releasever=${MAGEIA_VERSION}"
if [ ! -z "${MIRROR}" ]; then
DNF_MIRROROPTS="${DNF_MIRROROPTS} --disablerepo=\* --repofrompath=mgarel,${MIRROR}/media/core/release/ --repofrompath=mgaup,${MIRROR}/media/core/updates/ --enablerepo=mgarel --enablerepo=mgaup"
if [ ${NONFREE} -eq 1 ]; then
DNF_MIRROROPTS="${DNF_MIRROROPTS} --repofrompath=mgarel-nonfree,${MIRROR}/media/nonfree/release/ --repofrompath=mgaup-nonfree,${MIRROR}/media/nonfree/updates/ --enablerepo=mgarel-nonfree --enablerepo=mgaup-nonfree"
fi
if [ ${TAINTED} -eq 1 ]; then
DNF_MIRROROPTS="${DNF_MIRROROPTS} --repofrompath=mgarel-tainted,${MIRROR}/media/tainted/release/ --repofrompath=mgaup-tainted,${MIRROR}/media/tainted/updates/ --enablerepo=mgarel-tainted --enablerepo=mgaup-tainted"
fi
fi
export DNF_MIRROROPTS
return 0
}
# adding Mageia repositories
function addmedia()
# enabling extra Mageia repositories
function enableextrarepos()
{
if [ "${MAGEIA_VERSION}" = "cauldron" ]; then
extrasect_baseprefix="cauldron"
extrasect_updatesprefix="cauldron-updates"
else
extrasect_baseprefix="mageia"
extrasect_updatesprefix="updates"
fi
if [ ${NONFREE} -eq 1 ]; then
title "activating non-free repos"
/usr/bin/dnf --installroot="${BUILD_PATH}" config-manager --set-enabled "${extrasect_baseprefix}-${ARM_VERSION}-nonfree" --set-enabled "${extrasect_updatesprefix}-${ARM_VERSION}-nonfree"
err=${?}
if [ ${err} -ne 0 ]; then
error "line ${LINENO} error ${err} - can't activate nonfree repositories : exiting"
exit ${ERR_1}
fi
fi
if [ ${TAINTED} -eq 1 ]; then
title "activating tainted repos"
/usr/bin/dnf --installroot="${BUILD_PATH}" config-manager --set-enabled "${extrasect_baseprefix}-${ARM_VERSION}-tainted" --set-enabled "${extrasect_updatesprefix}-${ARM_VERSION}-tainted"
err=${?}
if [ ${err} -ne 0 ]; then
error "line ${LINENO} error ${err} - can't activate tainted repositories : exiting"
exit ${ERR_1}
fi
fi
return 0
}
# adding Mageia urpmi repositories
function addurpmimedia()
{
title "Creating media ${MIRROR}"
@ -150,18 +196,6 @@ function addmedia()
}
function updatemirror()
{
title "updating mirror"
/sbin/urpmi.update -a --urpmi-root "${BUILD_PATH}"
if [ ${?} -ne 0 ]; then
error "line ${LINENO} can't update mirrors : exiting"
exit ${ERR_1}
fi
return 0
}
function installbasesystem()
{
# Create Build path
@ -183,19 +217,24 @@ function installbasesystem()
fi
title "installing basesystem"
/sbin/urpmi --urpmi-root "${BUILD_PATH}" --ignorearch --no-verify-rpm --auto --split-level 200 --split-length 0 shadow-utils basesystem-minimal
/usr/bin/dnf --installroot="${BUILD_PATH}" --setopt=ignorearch=True ${DNF_MIRROROPTS} --assumeyes install shadow-utils basesystem-minimal
if [ ${?} -ne 0 ]; then
error "line ${LINENO} error installing shadow-utils or basesystem-minimal : exiting"
exit ${ERR_1}
fi
#/sbin/urpmi --urpmi-root "${BUILD_PATH}" --ignorearch --no-verify-rpm --auto --split-level 200 --split-length 0 basesystem-minimal
#/usr/bin/dnf --installroot="${BUILD_PATH}" --setopt=ignorearch=True ${DNF_MIRROROPTS} --assumeyes install basesystem-minimal
#if [ ${?} -ne 0 ]; then
# error "line ${LINENO} error installing basesystem-minimal : exiting"
# exit ${ERR_1}
#fi
/sbin/urpmi --urpmi-root "${BUILD_PATH}" --ignorearch --no-verify-rpm --auto --split-level 200 --split-length 0 urpmi locales u-boot
/usr/bin/dnf --installroot="${BUILD_PATH}" --setopt=ignorearch=True ${DNF_MIRROROPTS} --assumeyes install dnf dnf-plugins-core locales u-boot
if [ ${?} -ne 0 ]; then
error "line ${LINENO} error installing urpmi or locales.fr : exiting"
error "line ${LINENO} error installing dnf or locales : exiting"
exit ${ERR_1}
fi
/usr/bin/dnf --installroot="${BUILD_PATH}" --setopt=ignorearch=True ${DNF_MIRROROPTS} --assumeyes install urpmi
if [ ${?} -ne 0 ]; then
error "line ${LINENO} error installing urpmi : exiting"
exit ${ERR_1}
fi
return 0
@ -705,7 +744,7 @@ fi
# parsing commandline
TEMP=$(getopt -o h,a --long all,help,clean,create-chroot,addmedia,create-image,,config:,target:,target-version:,chroot,bootfs:,install-basesystem,update-mirror,build-path:,size:,nonfree,tainted -n ${CMDNAME} -- "${@}")
TEMP=$(getopt -o h,a --long all,help,clean,create-chroot,add-urpmimedia,create-image,,config:,target:,target-version:,chroot,bootfs:,install-basesystem,update-mirror,build-path:,size:,nonfree,tainted -n ${CMDNAME} -- "${@}")
if [ ${?} -ne 0 ] ; then error "line ${LINENO} Failed parsing options." >&2 ; exit ${ERR_1} ; fi
eval set -- "${TEMP}"
@ -745,9 +784,9 @@ while true; do
fi
shift
;;
--addmedia)
--add-urpmimedia)
if [ -z ${OPT} ]; then
OPT="addmedia"
OPT="addurpmimedia"
fi
shift
;;
@ -926,16 +965,19 @@ case ${OPT} in
fi
createImageWrap #Create the empty .img
createchroot #Check qemu and activate it
addmedia
updatemirror
genusemirroroptions #Generate mirror options, if needed
installbasesystem #Generate the rootfs, rootfiles, ...
enableextrarepos
addurpmimedia
mkfstab
preparechroot
jumpchroot
#Check before is useless (with $MIRROR
info "Use mirrorlist to light one server."
MIRROR=
addmedia
genusemirroroptions
enableextrarepos
addurpmimedia
mountPartitions
copyingsystem
unmountingPartitions
@ -947,11 +989,8 @@ case ${OPT} in
"chroot")
jumpchroot
;;
"addmedia")
addmedia
;;
"updatemirror")
updatemirror
"addurpmimedia")
addurpmimedia
;;
"createimage")
verify_disk_space

View File

@ -115,6 +115,6 @@ rm -f ./vmlinuz && ln -r -s ./vmlinuz-5.3.1-desktop-2.mga7 ./vmlinuz
```
## Commands used :
./create_arm_img_urpmi.sh --clean --config bananaPro --build-path ./build
./create_arm_img_urpmi.sh --all --target bananaPro --size 2 --tainted --nonfree --build-path ./build --config bananaPro 2>&1 | tee -a ./log/creation.log
./create_arm_image.sh --clean --config bananaPro --build-path ./build
./create_arm_image.sh --all --target bananaPro --size 2 --tainted --nonfree --build-path ./build --config bananaPro 2>&1 | tee -a ./log/creation.log
dd if=./build/Mageia-7-bananaPro1.img | pv | dd of=/dev/mmcblk0 ; sync

View File

@ -24,16 +24,16 @@ export ARCH=arm
/usr/bin/chown :systemd-journal -R /var/log/journal
#Install all packages you need
/usr/sbin/urpmi --ignorearch --no-verify-rpm --auto --split-level 200 --split-length 0 basesystem chrony polkit lockdev rng-tools man openssh-server rfkill wireless-tools bluez wpa_supplicant make rsync binutils ldetect usbutils #kernel-desktop-latest # systemd-bootchart libcap-utils keyutils mindi-busybox plymouth-scripts lvm2 #dmsetup
/usr/bin/dnf --setopt=ignorearch=True --nogpgcheck --assumeyes install basesystem chrony polkit lockdev rng-tools man openssh-server rfkill wireless-tools bluez wpa_supplicant make rsync binutils ldetect usbutils #kernel-desktop-latest # systemd-bootchart libcap-utils keyutils mindi-busybox plymouth-scripts lvm2 #dmsetup
#For dracut :
# /usr/sbin/urpmi --ignorearch --no-verify-rpm --auto --split-level 200 --split-length 0 u-boot-tools mindi-busybox plymouth-scripts #systemd-bootchart libcap-utils keyutils lvm2 #dmsetup
# /usr/bin/dnf --setopt=ignorearch=True --nogpgcheck --assumeyes install u-boot-tools mindi-busybox plymouth-scripts #systemd-bootchart libcap-utils keyutils lvm2 #dmsetup
# ############################
# ## For compiling a module ##
# ############################
# BUG : Make does not like to build inside chroot. It doesn't find tools. Impossible to build any module there.
# /usr/sbin/urpmi --ignorearch --no-verify-rpm --auto --split-level 200 --split-length 0 kernel-source-latest
# /usr/bin/dnf --setopt=ignorearch=True --nogpgcheck --assumeyes install kernel-source-latest
# #See if it is a Server or Desktop kernel :
# rpm -q kernel-serveur-latest
# if [ 0 -ne ${?} ]; then
@ -79,13 +79,12 @@ ln -r -s /boot/initrd-${K_INST_VERSION}.img /boot/initrd.img
###########################################
## Install a package from testing repo : ##
###########################################
# urpmi.update Testing
# urpmi --auto --media Testing kernel-desktop-latest
# dnf --refresh --enablerepo=updates_testing-\* --assumeyes install kernel-desktop-latest
############################################
## Installing the kernel (not on testing) ##
############################################
# urpmi --auto kernel-desktop-latest
# dnf --refresh --assumeyes install kernel-desktop-latest
###############################################
## Create a symlink for the lastest kernel : ##

View File

@ -23,7 +23,7 @@
#Install all packages you need
# No verifying rpm due to a bug in packages, some are not signed
/usr/sbin/urpmi --auto --no-verify-rpm basesystem chrony rng-tools man openssh-server rfkill wireless-tools bluez wpa_supplicant make binutils dracut u-boot rsync kernel-desktop-latest mlocate drakx-kbd-mouse-x11
/usr/bin/dnf --nogpgcheck --assumeyes install basesystem chrony rng-tools man openssh-server rfkill wireless-tools bluez wpa_supplicant make binutils dracut u-boot rsync kernel-desktop-latest mlocate drakx-kbd-mouse-x11
/usr/bin/chown :chrony -R /etc/chrony.keys /var/log/chrony

View File

@ -23,7 +23,7 @@
#Install all packages you need
# No verifying rpm due to a bug in packages, some are not signed
/usr/sbin/urpmi --auto --no-verify-rpm basesystem chrony rng-tools man openssh-server rfkill wireless-tools bluez wpa_supplicant make binutils dracut u-boot rsync kernel-desktop-latest mlocate drakx-kbd-mouse-x11 glibc-i18ndata
/usr/bin/dnf --nogpgcheck --assumeyes install basesystem chrony rng-tools man openssh-server rfkill wireless-tools bluez wpa_supplicant make binutils dracut u-boot rsync kernel-desktop-latest mlocate drakx-kbd-mouse-x11 glibc-i18ndata
/usr/bin/chown :chrony -R /etc/chrony.keys /var/log/chrony

View File

@ -23,7 +23,7 @@
#Install all packages you need
# No verifying rpm due to a bug in packages, some are not signed
/usr/sbin/urpmi --auto --no-verify-rpm basesystem chrony rng-tools man openssh-server rfkill wireless-tools bluez wpa_supplicant make binutils dracut u-boot rsync kernel-desktop-latest mlocate drakx-kbd-mouse-x11 glibc-i18ndata
/usr/bin/dnf --nogpgcheck --assumeyes install basesystem chrony rng-tools man openssh-server rfkill wireless-tools bluez wpa_supplicant make binutils dracut u-boot rsync kernel-desktop-latest mlocate drakx-kbd-mouse-x11 glibc-i18ndata
/usr/bin/chown :chrony -R /etc/chrony.keys /var/log/chrony

View File

@ -23,7 +23,7 @@
#Install all packages you need
# No verifying rpm due to a bug in packages, some are not signed
/usr/sbin/urpmi --auto --no-verify-rpm basesystem chrony rng-tools man openssh-server rfkill wireless-tools bluez wpa_supplicant make binutils dracut u-boot rsync kernel-desktop-latest mlocate drakx-kbd-mouse-x11 glibc-i18ndata
/usr/bin/dnf --nogpgcheck --assumeyes install basesystem chrony rng-tools man openssh-server rfkill wireless-tools bluez wpa_supplicant make binutils dracut u-boot rsync kernel-desktop-latest mlocate drakx-kbd-mouse-x11 glibc-i18ndata
/usr/bin/chown :chrony -R /etc/chrony.keys /var/log/chrony

View File

@ -23,7 +23,7 @@
#Install all packages you need
# No verifying rpm due to a bug in packages, some are not signed
/usr/sbin/urpmi --auto --no-verify-rpm basesystem chrony rng-tools man openssh-server rfkill wireless-tools bluez wpa_supplicant make binutils dracut u-boot rsync kernel-desktop-latest mlocate drakx-kbd-mouse-x11 glibc-i18ndata
/usr/bin/dnf --nogpgcheck --assumeyes install basesystem chrony rng-tools man openssh-server rfkill wireless-tools bluez wpa_supplicant make binutils dracut u-boot rsync kernel-desktop-latest mlocate drakx-kbd-mouse-x11 glibc-i18ndata
/usr/bin/chown :chrony -R /etc/chrony.keys /var/log/chrony

View File

@ -22,9 +22,9 @@
#Install all packages you need
/usr/sbin/urpmi --auto --no-verify-rpm /root/kernel-odroid-4.14.y-1.armv7hl.rpm basesystem chrony rng-tools man openssh-server rfkill wireless-tools bluez wpa_supplicant make dracut u-boot-tools rsync kernel-desktop-latest
#/usr/sbin/urpmi --urpmi-root "$BUILD_PATH" --ignorearch --no-verify-rpm --auto --split-level 200 --split-length 200
/usr/sbin/urpmi --auto --no-verify-rpm /root/u-boot-20180507-3.mga7.armv7hl.rpm
/usr/bin/dnf --nogpgcheck --assumeyes install /root/kernel-odroid-4.14.y-1.armv7hl.rpm basesystem chrony rng-tools man openssh-server rfkill wireless-tools bluez wpa_supplicant make dracut u-boot-tools rsync kernel-desktop-latest
#/usr/bin/dnf --installroot="$BUILD_PATH" --setopt=ignorearch=True --nogpgcheck --assumeyes install
/usr/bin/dnf --nogpgcheck --assumeyes install /root/u-boot-20180507-3.mga7.armv7hl.rpm
/usr/bin/chown :chrony -R /etc/chrony.keys /var/log/chrony
/usr/bin/chown :daemon /etc/wpa_supplicant.conf
/usr/bin/chown :tty /bin/write /bin/wall

View File

@ -25,7 +25,7 @@ else
echo "installing gstreamer"
. $PATH/install_gstreamer.sh
echo "installing task-$1"
/usr/sbin/urpmi --auto --no-verify-rpm task-$1 sox sddm
/usr/bin/dnf --nogpgcheck --assumeyes install task-$1 sox sddm
/usr/bin/alternatives --config soundprofile
fi
/usr/bin/systemctl enable sddm

View File

@ -17,4 +17,4 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
/usr/sbin/urpmi --auto --no-verify-rpm gstreamer1.0-gsm gstreamer1.0-plugins-ugly gstreamer1.0-opencv gstreamer1.0-vp8 gstreamer1.0-flac gstreamer1.0-amrnb gstreamer1.0-plugins-bad gstreamer1.0-lame gstreamer1.0-plugins-good gstreamer1.0-twolame gstreamer1.0-ofa gstreamer1.0-libav gstreamer1.0-pulse gstreamer1.0-transcoder gstreamer1.0-neon gstreamer1.0-mpeg gstreamer1.0-libvisual gstreamer1.0-wavpack gstreamer1.0-mpeg2enc gstreamer1.0-vaapi gstreamer1.0-x264 gstreamer1.0-tools gstreamer1.0-editing-services gstreamer1.0-speex x265 gstreamer1.0-soup gstreamer1.0-a52dec gstreamer1.0-libass gstreamer1.0-omx qt5-gstreamer task-codec-audio task-codec-video task-pulseaudio
/usr/bin/dnf --nogpgcheck --assumeyes install gstreamer1.0-gsm gstreamer1.0-plugins-ugly gstreamer1.0-opencv gstreamer1.0-vp8 gstreamer1.0-flac gstreamer1.0-amrnb gstreamer1.0-plugins-bad gstreamer1.0-lame gstreamer1.0-plugins-good gstreamer1.0-twolame gstreamer1.0-ofa gstreamer1.0-libav gstreamer1.0-pulse gstreamer1.0-transcoder gstreamer1.0-neon gstreamer1.0-mpeg gstreamer1.0-libvisual gstreamer1.0-wavpack gstreamer1.0-mpeg2enc gstreamer1.0-vaapi gstreamer1.0-x264 gstreamer1.0-tools gstreamer1.0-editing-services gstreamer1.0-speex x265 gstreamer1.0-soup gstreamer1.0-a52dec gstreamer1.0-libass gstreamer1.0-omx qt5-gstreamer task-codec-audio task-codec-video task-pulseaudio

View File

@ -17,7 +17,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
/usr/sbin/urpmi --auto --no-verify-rpm x11-driver-video-fbdev xinit xclock xorg-x11 xorg-x11-75dpi-fonts drakconf
/usr/bin/dnf --nogpgcheck --assumeyes install x11-driver-video-fbdev xinit xclock xorg-x11 xorg-x11-75dpi-fonts drakconf
systemctl enable display-manager.service
#echo "#!/bin/sh

View File

@ -9,7 +9,7 @@ if [ ${1} = "force" ]; then
#Check dependency
hash growpart
if [ ${?} -ne 0 ]; then
echo "install cloud-utils-growpart first. Hint : urpmi cloud-utils-growpart"
echo "install cloud-utils-growpart first. Hint : dnf install cloud-utils-growpart"
exit 1
fi