#!/bin/bash
###########################################################
#
# 오프라인 설치를 위한 RPM을 다운로드 받는다.
# 의존성 패키지까지 다운로드하기 위해서는 minimum 설치
# 상태의 리눅스 시스템에서 스크립트를 실행해야 한다.
#
###########################################################
RPMDIR="/root/rpm"
###########################################################
#
# yumdownloader 설치
#
###########################################################
install_yumdownloader() {
mkdir -p "${RPMDIR}/yum-utils"
yum install -y --downloadonly --downloaddir="${RPMDIR}/yum-utils" yum-utils
if [ ! -f /usr/bin/yumdownloader ]
then
rpm -Uvh --nodeps ${RPMDIR}/yum-utils/*.rpm
fi
}
###########################################################
#
# RPM+의존성 패키지 다운로드
#
###########################################################
download_rpm() {
echo "###########################################################"
echo "#"
echo "# ${FUNCNAME[0]}: ${1}"
echo "#"
echo "###########################################################"
if [ ! -d ${RPMDIR}/${1} ]
then
mkdir -p "${RPMDIR}/${1}"
fi
mkdir -p "${RPMDIR}/${1}"
yum deplist ${1}
yumdownloader --downloadonly --resolve --destdir="${RPMDIR}/${1}" ${1}
}
special_p7zip() {
echo "###########################################################"
echo "#"
echo "# ${FUNCNAME[0]}"
echo "#"
echo "###########################################################"
wget -Nq --no-check-certificate "https://www.mirrorservice.org/sites/dl.fedoraproject.org/pub/epel/7/x86_64/Packages/p/p7zip-16.02-20.el7.x86_64.rpm"
mkdir -p "${RPMDIR}/p7zip"
mv -fv p7zip-16.02-20.el7.x86_64.rpm "${RPMDIR}/p7zip"
}
special_docker() {
echo "###########################################################"
echo "#"
echo "# ${FUNCNAME[0]}"
echo "#"
echo "###########################################################"
download_rpm device-mapper-persistent-data
download_rpm lvm2
yum -y remove docker-ce docker-ce-cli containerd.io docker-ce-rootless-extras docker-scan-plugin
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
yum-config-manager --add-repo "https://download.docker.com/linux/centos/docker-ce.repo"
yum repolist
download_rpm docker-ce
curl -L "https://github.com/docker/compose/releases/download/v2.3.3/docker-compose-linux-x86_64" -o "${RPMDIR}/docker-compose"
chmod 755 "${RPMDIR}/docker-compose"
}
special_mysql() {
echo "###########################################################"
echo "#"
echo "# ${FUNCNAME[0]}"
echo "#"
echo "###########################################################"
rpm -Uvh "https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm"
sed -i 's/enabled=0/enabled=1/' /etc/yum.repos.d/mysql-community.repo
download_rpm mysql-community-server
sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/mysql-community.repo
}
# yumdownloader 다운로드&설치
install_yumdownloader
# 일반 RPM 다운로드
download_rpm at
download_rpm conntrack
download_rpm createrepo
download_rpm curl
download_rpm ftp
download_rpm git
download_rpm hdparm
download_rpm httpd
download_rpm ipset-service
download_rpm java-11-openjdk-devel.x86_64
download_rpm lftp
download_rpm lm_sensors
download_rpm lrzsz
download_rpm lsof
download_rpm mailx
download_rpm man
download_rpm mc
download_rpm nc
download_rpm net-tools
download_rpm ntp
download_rpm openldap
download_rpm openldap-clients
download_rpm rdate
download_rpm rsync
download_rpm sendmail
download_rpm sharutils
download_rpm svn
download_rpm tcpdump
download_rpm telnet
download_rpm unzip
download_rpm vsftpd
download_rpm wget
download_rpm whois
download_rpm xinetd
download_rpm zip
# 리포지터리를 별도로 설치해야하는 패키지 다운로드
special_p7zip
special_docker
special_mysql