-
LINUX Local Repository 생성 하는 방법System of Infra/Linux System 2024. 1. 3. 22:53728x90반응형
LINUX Local Repository 생성하는 방법
[root@RACSVR1 rh]# df -Th Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs tmpfs 2.0G 9.7M 2.0G 1% /run tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/mapper/ol-root xfs 15G 9.7G 5.3G 65% / /dev/sda1 xfs 1014M 218M 797M 22% /boot /dev/mapper/ol-oracle xfs 15G 33M 15G 1% /oracle /dev/mapper/ol-data xfs 5.0G 33M 5.0G 1% /data /dev/mapper/ol-tmp xfs 2.0G 33M 2.0G 2% /tmp /dev/mapper/ol-grid xfs 4.0G 33M 4.0G 1% /grid tmpfs tmpfs 393M 40K 393M 1% /run/user/1000 /dev/sr0 iso9660 4.6G 4.6G 0 100% /run/media/test/OL-7.9 Server.x86_64 [root@RACSVR1 rh]# umount /dev/sr0
▶ vmware를 통해서 구성한 서버에 설치를 위한 iso 파일로 인해 /run/media/test/OL-7.9 Server.x86_64가 마운트 되어 있기 때문에 해당 마운트 포인트를 무시하고 Umount 해주도록 합니다.
[root@RACSVR1 /]# cd /etc/yum.repos.d/ [root@RACSVR1 yum.repos.d]# ls -ltr -rw-r--r--. 1 root root 226 10월 2 2020 virt-ol7.repo -rw-r--r--. 1 root root 2587 10월 2 2020 uek-ol7.repo -rw-r--r--. 1 root root 4075 10월 2 2020 oracle-linux-ol7.repo
▶ /etc/yum.repos.d 경로에서 기본적으로 default .repo 파일들이 존재하기 때문에 해당 파일들을 삭제하지 않고 백업을 하도록 하겠습니다.
[root@RACSVR1 yum.repos.d]# mkdir backup [root@RACSVR1 yum.repos.d]# chmod 775 backup
▶ /etc/yum.repos.d 경로에 backup 디렉토리디렉터리 하나를 생성 후 해당 디렉터리에 퍼미션 775를 부여합니다.
[root@RACSVR1 yum.repos.d]# mv *.repo /etc/yum.repos.d/backup/ [root@RACSVR1 yum.repos.d]# ls -al | grep -i backup drwxrwxr-x. 2 root root 76 7월 16 05:13 backup
▶ mv 명령어를 통해 /etc/yum.repos.d에 있는 파일들을 /etc/yum.repos.d/backup 경로에 백업합니다.
[root@RACSVR1 yum.repos.d]# cd backup [root@RACSVR1 backup]# ls -ltr | grep -i .repo -rw-r--r--. 1 root root 226 10월 2 2020 virt-ol7.repo -rw-r--r--. 1 root root 2587 10월 2 2020 uek-ol7.repo -rw-r--r--. 1 root root 4075 10월 2 2020 oracle-linux-ol7.repo
▶ /etc/yum.repos.d/backup 경로에 원본 .repo 파일들이 옮겨진 것을 확인합니다.
[root@RACSVR1 opt]# ls -ltr drwxr-xr-x. 2 root root 6 8월 25 2018 rh -rw-r--r--. 1 root root 4857004032 7월 16 05:11 OracleLinux-R7-U9-Server-x86_64-dvd.iso
▶ 로컬 리포지토리 구성을 위해 /opt 경로에 OracleLinux-R7-U9-Server-x86_64-dvd.iso 이미지 파일을 사전에 업로드합니다.
[root@RACSVR1 opt]# mount -o loop OracleLinux-R7-U9-Server-x86_64-dvd.iso /mnt mount: /dev/loop0 is write-protected, mounting read-only
▶ loop mount 명령어를 통해서 /mnt 디렉터리에 업로드한 OracleLinux-R7-U9-Server-x86_64-dvd.iso 파일을 마운트 합니다.
[root@RACSVR1 opt]# df -Th | grep -i mnt Filesystem Type Size Used Avail Use% Mounted on /dev/loop0 iso9660 4.6G 4.6G 0 100% /mnt
▶ 파일시스템 현황을 확인하게 되면 /mnt 경로가 마운트 된 것을 확인할 수 있습니다.
[root@RACSVR1 opt]# cd /mnt [root@RACSVR1 mnt]# ls -ltr 합계 1565 drwxr-xr-x. 4 root root 2048 5월 29 2021 addons -rw-r--r--. 1 root root 1011 5월 29 2021 RPM-GPG-KEY-oracle -rw-r--r--. 1 root root 1011 5월 29 2021 RPM-GPG-KEY -rw-r--r--. 1 root root 521292 5월 29 2021 RELEASE-NOTES-U9-en.html -rw-r--r--. 1 root root 180576 5월 29 2021 RELEASE-NOTES-U9-en -rw-r--r--. 1 root root 18390 5월 29 2021 GPL -rw-r--r--. 1 root root 8806 5월 29 2021 EULA drwxrwxr-x. 3 root 1039 851968 5월 29 2021 Packages drwxr-xr-x. 2 root root 4096 5월 29 2021 repodata drwxr-xr-x. 2 root root 2048 5월 29 2021 LiveOS drwxr-xr-x. 2 root root 2048 5월 29 2021 isolinux drwxr-xr-x. 3 root root 2048 5월 29 2021 EFI drwxr-xr-x. 3 root root 2048 5월 29 2021 images -r--r--r--. 1 root root 3322 5월 29 2021 TRANS.TBL
▶ loop mount /mnt 경로에 파일들을 확인하게 되면 images... Packages 등 여러 가지의 파일들이 존재하는 것을 확인할 수 있습니다.
[root@RACSVR1 mnt]# cd Packages/ [root@RACSVR1 Packages]# ls -ltr -rw-rw-r--. 1 1039 1039 25384 5월 4 2014 reflink-0.1.0-3.el7.x86_64.rpm -rw-rw-r--. 1 1039 1039 146948 5월 14 2014 agg-2.5-18.el7.x86_64.rpm -rw-rw-r--. 1 1039 1039 115428 5월 14 2014 apache-commons-pool-1.6-9.el7.noarch.rpm -rw-rw-r--. 1 1039 1039 78976 5월 14 2014 apache-commons-logging-1.1.2-7.el7.noarch.rpm -rw-rw-r--. 1 1039 1039 282572 5월 14 2014 apache-commons-lang-2.6-15.el7.noarch.rpm -rw-rw-r--. 1 1039 1039 193056 5월 14 2014 apache-commons-io-2.4-12.el7.noarch.rpm -rw-rw-r--. 1 1039 1039 170564 5월 14 2014 apache-commons-dbcp-1.4-17.el7.noarch.rpm -rw-rw-r--. 1 1039 1039 227900 5월 14 2014 apache-commons-codec-1.8-7.el7.noarch.rpm ...(생략) -rw-rw-r--. 1 1039 1039 490724 4월 21 2021 shim-x64-15.3-1.0.5.el7.x86_64.rpm -rw-rw-r--. 1 1039 1039 15093956 4월 24 2021 kernel-uek-doc-5.4.17-2102.201.3.el7uek.noarch.rpm -rw-rw-r--. 1 1039 1039 62215204 4월 24 2021 kernel-uek-5.4.17-2102.201.3.el7uek.x86_64.rpm -rw-rw-r--. 1 1039 1039 64884828 4월 24 2021 kernel-uek-debug-5.4.17-2102.201.3.el7uek.x86_64.rpm -rw-rw-r--. 1 1039 1039 17658828 4월 24 2021 kernel-uek-debug-devel-5.4.17-2102.201.3.el7uek.x86_64.rpm -rw-rw-r--. 1 1039 1039 17572732 4월 24 2021 kernel-uek-devel-5.4.17-2102.201.3.el7uek.x86_64.rpm -r--r--r--. 1 root root 1299223 5월 29 2021 TRANS.TBL
▶ 필요한 패키지 파일만 선별하기 위해 /mnt/Packages 디렉터리로 이동하게 되면 .rpm 파일들이 존재하는 것을 확인할 수 있습니다.
[root@RACSVR1 /]# mkdir local-repo [root@RACSVR1 /]# cd local-repo [root@RACSVR1 local-repo]# mkdir RedhatOS-7 [root@RACSVR1 local-repo]# ls -ltr drwxr-xr-x. 2 root root 6 7월 16 05:17 RedhatOS-7
▶ / 최상위 디렉토리로 이동하여 /local-repo/RedhatOS-7 디렉토리 하나를 생성합니다.
[root@RACSVR1 mnt]# cp -rf /mnt/Packages /local-repo/RedhatOS-7/ [root@RACSVR1 mnt]# cd /local-repo/RedhatOS-7/ [root@RACSVR1 RedhatOS-7]# ls -ltr drwxr-xr-x. 3 root root 278528 7월 16 05:19 Packages
▶ /mnt/Packages 디렉터리를 /local-repo/Redhatos-7 경로에 복사합니다.
[root@RACSVR1 RedhatOS-7]# createrepo /local-repo/RedhatOS-7 Spawning worker 0 with 5210 pkgs Workers Finished Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete
▶ createrepo 명령어를 통해서 /local-repo/RedhatOS-7에 리포지토리를 생성합니다.
[root@RACSVR1 RedhatOS-7]# ls Packages repodata [root@RACSVR1 RedhatOS-7]# cd /etc/yum yum/ yum.repos.d/ [root@RACSVR1 RedhatOS-7]# cd /etc/yum yum/ yum.repos.d/ [root@RACSVR1 RedhatOS-7]# cd /etc/yum.repos.d/ [root@RACSVR1 yum.repos.d]# ls backup
▶ /local-repo/RedhatOS-7 경로에 repodata가 생성된 것을 확인할 수 있으며, /etc/yum.repos.d 경로로 이동하여 리포지토리 경로를 지정해 주기 위해 vi 명령어를 통해 다음 내용을 추가합니다.
[root@RACSVR1 yum.repos.d]# cat local-Redhat-7.repo [RedhatOS7-local-repo] name=CentOS Local Repository baseurl=file:///local-repo/RedhatOS-7 gpgcheck=0 enabled=1
▶ local-Redhat-7.repo라는 텍스트 파일을 생성하여 해당 내용을 추가합니다.
[RedhatOS7-local-repo]
name=CentOS Local Repository
baseurl=file:///local-repo/RedhatOS-7 -> 패키지를 가져오기 위한 경로를 뜻함
gpgcheck=0
enabled=1[root@RACSVR1 yum.repos.d]# yum clean all Loaded plugins: langpacks, ulninfo Cleaning repos: RedhatOS7-local-repo
▶ local-Redhat-7.repo 생성이 완료되었으면 yum을 사용하기 전에 yum clean all 명령어를 수행합니다.
[root@RACSVR1 yum.repos.d]# yum repolist Loaded plugins: langpacks, ulninfo RedhatOS7-local-repo | 2.9 kB 00:00:00 RedhatOS7-local-repo/primary_db | 5.2 MB 00:00:00 repo id repo name status RedhatOS7-local-repo RedhatOS Local Repository 5,210 repolist: 5,210
▶ yum repolist 명령어를 통해서 어떤 리포지토리가 생성되었는지 확인할 수 있고 리포지토리 안에 파일이 5,210개 존재하는 것을 확인할 수 있습니다.
[root@RACSVR1 yum.repos.d]# yum install telnet Loaded plugins: langpacks, ulninfo Resolving Dependencies --> Running transaction check ---> Package telnet.x86_64 1:0.17-65.el7_8 will be installed --> Finished Dependency Resolution Dependencies Resolved ============================================================================================== Package Arch Version Repository Size ============================================================================================== Installing: telnet x86_64 1:0.17-65.el7_8 RedhatOS7-local-repo 64 k Transaction Summary ============================================================================================== Install 1 Package Total download size: 64 k Installed size: 113 k Is this ok [y/d/N]: y Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : 1:telnet-0.17-65.el7_8.x86_64 1/1 Verifying : 1:telnet-0.17-65.el7_8.x86_64 1/1 Installed: telnet.x86_64 1:0.17-65.el7_8 Complete!
▶ yum 명령어를 통해서 패키지 안에 있는 telnet 서비스를 다운로드할 수 있습니다. 패키지가 추가적으로 필요하면 yum list을 통해서 패키지 파일 존재 유무 판단 후 똑같이 수행하면 됩니다.
[root@RACSVR1 /]# umount /mnt
▶ 로컬 리포지토리 구성을 완료했다면 iso 파일을 마운트 한 마운트 포인트를 Umount 합니다.
2022.07.24 - [System of Infra/LINUX] - LINUX Megaraid 설치를 통한 DISK 관리하기
2022.06.27 - [System of Infra/LINUX] - LINUX VI 및 VIM 편집기 Set number 설정하는 방법
2022.03.08 - [System of Infra/LINUX] - LINUX RPM package를 활용한 MC 설치하는 방법
PS. 포스팅의 내용은 제 기준으로 작성한 것이기 때문에 참고해서 보시면 감사하겠습니다.
포스팅 과정의 오류 및 오타 그리고 궁금한 점에 대해서는 댓글 남겨주세요.
728x90반응형'System of Infra > Linux System' 카테고리의 다른 글
LINUX xfs Type Filesystem 증설하는 방법 (4) 2024.06.24 LINUX Touch 명령어를 통한 날짜 수정하는 방법 (3) 2024.01.02 LINUX faillock 명령어를 이용한 계정 lock 해제 (2) 2023.07.14 LINUX Oracleasmlib 설치하는 방법 (2) 2023.07.13 LINUX JAVA(JDK) Version 1.8 설치하는 방법 (2) 2023.07.12