#!/bin/bash
##为了不破坏原有的安装依赖关系,要安装的软件在应添加在最后
INSTALL_SOFT="dnf vim-minimal \
net-tools iproute iputils NetworkManager openssh-server passwd hostname \
bc policycoreutils selinux-policy-targeted tar sudo su systemd-timesyncd \
docker-compose rsyslog unzip sysstat firewalld"
WORKDIR=`pwd`
TARGET_ROOTFS_DIR=${WORKDIR}/rootfs
#rm -rf $WORKDIR/rootfs
rm -rf $WORKDIR/rootfs-bak
mv $WORKDIR/rootfs $WORKDIR/rootfs-bak
mkdir -p ${TARGET_ROOTFS_DIR}
## 创建 RPM 数据库
mkdir -p ${TARGET_ROOTFS_DIR}/var/lib/rpm
rpm --root ${TARGET_ROOTFS_DIR} --initdb
## 下载安装 openEuler 发布包
rpm -ivh --nodeps --root ${TARGET_ROOTFS_DIR} https://repo.openeuler.org/openEuler-22.03-LTS/everything/aarch64/Packages/openEuler-release-22.03LTS-52.oe2203.aarch64.rpm
rpm -ivh --nodeps --root ${TARGET_ROOTFS_DIR} https://repo.openeuler.org/openEuler-22.03-LTS/everything/aarch64/Packages/dnf-automatic-4.10.0-3.oe2203.noarch.rpm
rpm -ivh --nodeps --root ${TARGET_ROOTFS_DIR} https://repo.openeuler.org/openEuler-22.03-LTS/everything/aarch64/Packages/dnf-4.10.0-3.oe2203.noarch.rpm
rpm -ivh --nodeps --root ${TARGET_ROOTFS_DIR} https://repo.openeuler.org/openEuler-22.03-LTS/everything/aarch64/Packages/libdnf-0.65.0-2.oe2203.aarch64.rpm
rpm -ivh --nodeps --root ${TARGET_ROOTFS_DIR} https://repo.openeuler.org/openEuler-22.03-LTS/everything/aarch64/Packages/python3-dnf-4.10.0-3.oe2203.noarch.rpm
rpm -ivh --nodeps --root ${TARGET_ROOTFS_DIR} https://repo.openeuler.org/openEuler-22.03-LTS/everything/aarch64/Packages/python3-libdnf-0.65.0-2.oe2203.aarch64.rpm
## 安装 yum
mkdir -p ${TARGET_ROOTFS_DIR}/etc/yum.repos.d
cp /etc/yum.repos.d/openEuler.repo ${TARGET_ROOTFS_DIR}/etc/yum.repos.d/
cat >${TARGET_ROOTFS_DIR}/etc/resolv.conf<<EOF
search lan
nameserver 8.8.8.8
nameserver 144.144.144.144
EOF
# 安装软件
for soft in $INSTALL_SOFT
do
dnf --installroot=${TARGET_ROOTFS_DIR} install -y ${soft}
done
dnf --installroot=${TARGET_ROOTFS_DIR} clean all
##Create passwd
cat << EOF | chroot ${TARGET_ROOTFS_DIR}
chcon system_u:object_r:shadow_t:s0 /etc/shadow*
chcon system_u:object_r:passwd_file_t:s0 /etc/passwd
systemctl disable firewalld.service
exit
EOF
mv ${WORKDIR}/openEuler22.03-rootfs.tgz ${WORKDIR}openEuler22.03-rootfs-bak.tgz
cd ${TARGET_ROOTFS_DIR}
tar -cvpzf ${WORKDIR}/openEuler22.03-rootfs.tgz * --selinux
cd -
exit 0