«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

VIDEOCUBE

RPM을 사설 yum에 등록하여 활용하기 본문

시스템

RPM을 사설 yum에 등록하여 활용하기

라떼청년 2017. 11. 5. 00:18


1. 사설 yum 서버에서 다른 서버에서 편하게 Repository 를 연결하고, 


2. 사설 yum 에서 yum 을 이용한 설치를 해보자..


신규 서버가 투입되면서.. 레포지토리를 매번 설정해야 하는 것을 좀더 편하게 ..

RPM 으로 배포 해보자.



RPM 을 만들기 위해서는 [rpm-build] tool 이 필요합니다.



yum install rpm-build  




설치가 완료가 되면 


RPM 서버에서 /data/rpmbuild/videocube-repo 폴더를 생성 후 해당 폴더로 이동 후 다음 파일을 생성 합니다.


vi videocube-repo.spec



#

# Copyright (c) 2017 VideoCube Lab., Ltd.

# All rights reserved.

#

# $Id: videocube-repo.spec 735 2017-11-05 12:30:00Z manager $

#

%define _unpackaged_files_terminate_build 0

%define _topdir .

%define _sourcedir .

%define _builddir .

%define _rpmdir .

%define _build_name_fmt %%{NAME}-%%{VERSION}.rpm

%define _prefix /etc/yum.repos.d


Summary: VideoCube Repository

Name: VideoCube-Repo

Release: 1

Version: 1.0

URL: http://repo.videocuble.lab/

Packager: packager

License: None.

Vendor: VideoCube Lab., Ltd.

Group: Server/Repo

BuildRoot: %{_tmppath}/%{name}-root


%description

Made by VideoCube


%prep


%build


%install

rm -rf %{buildroot}

mkdir -m 0755 -p %{buildroot}%{_prefix}

install -D -m 644 %{_prefix}/videocube.repo %{buildroot}%{_prefix}


%clean


%post


%preun


%postun


%files

%{_prefix}/videocube.repo


%changelog

* Fri Apr 16 2017 <pluto90k@gmail.com> - 1.0

- VideoCube Release



RPM 을 Build 합니다.


rpmbuild -bb videocube-repo.spec 


.

├── VideoCube-Repo-1.0.rpm

└── videocube-repo.spec


RPM 을 생성하였습니다.


해당 파일을 repo 서버의 document 폴더로 복사합니다.


├── VideoCube-Repo-1.0.rpm << 복사

├── os6

│   ├── index.html

│   └── repodata

│       ├── 401dc19bda88c82c403423fb835844d64345f7e95f5b9835888189c03834cc93-filelists.xml.gz

│       ├── 6bf9672d0862e8ef8b8ff05a2fd0208a922b1f5978e6589d87944c88259cb670-other.xml.gz

│       ├── 77a287c136f4ff47df506229b9ba67d57273aa525f06ddf41a3fef39908d61a7-other.sqlite.bz2

│       ├── 8596812757300b1d87f2682aff7d323fdeb5dd8ee28c11009e5980cb5cd4be14-primary.sqlite.bz2

│       ├── dabe2ce5481d23de1f4f52bdcfee0f9af98316c9e0de2ce8123adeefa0dd08b9-primary.xml.gz

│       ├── f8606d9f21d61a8bf405af7144e16f6d7cb1202becb78ba5fea7d0f1cd06a0b2-filelists.sqlite.bz2

│       └── repomd.xml

└── os7

    ├── index.html

    └── repodata

        ├── 401dc19bda88c82c403423fb835844d64345f7e95f5b9835888189c03834cc93-filelists.xml.gz

        ├── 6bf9672d0862e8ef8b8ff05a2fd0208a922b1f5978e6589d87944c88259cb670-other.xml.gz

        ├── 77a287c136f4ff47df506229b9ba67d57273aa525f06ddf41a3fef39908d61a7-other.sqlite.bz2

        ├── 8596812757300b1d87f2682aff7d323fdeb5dd8ee28c11009e5980cb5cd4be14-primary.sqlite.bz2

        ├── dabe2ce5481d23de1f4f52bdcfee0f9af98316c9e0de2ce8123adeefa0dd08b9-primary.xml.gz

        ├── f8606d9f21d61a8bf405af7144e16f6d7cb1202becb78ba5fea7d0f1cd06a0b2-filelists.sqlite.bz2

        └── repomd.xml



신규 서버 에 접속합니다.



vi /etc/resolv.conf

nameserver 192.168.1.6 #사설 DNS 서버에 연결합니다.



rpm -ivh http://repo.videocube.lab/VideoCube-Repo-1.0.rpm


http://repo.videocube.lab/VideoCube-Repo-1.0.rpm(을)를 복구합니다

준비 중...               ########################################### [100%]

   1:VideoCube-Repo         ########################################### [100%]



root@linux-01:/root> rpm -qa |grep VideoCube

VideoCube-Repo-1.0-1.x86_64


설치 여부를 확인합니다.


root@linux-01:/root> cat /etc/yum.repos.d/videocube.repo 

[videocube]

name = videocube repository

baseurl=http://repo.videocube.lab/repo/$releasever

gpgcheck=0

enabled=1



root@linux-01:/root> yum repolist

Loaded plugins: fastestmirror

Determining fastest mirrors

 * base: ftp.neowiz.com

 * extras: ftp.neowiz.com

 * updates: ftp.neowiz.com

base                                                             | 3.7 kB     00:00     

extras                                                           | 3.4 kB     00:00     

updates                                                          | 3.4 kB     00:00     

videocube                                                        | 2.9 kB     00:00     

videocube/primary_db                                             | 1.2 kB     00:00     

repo id                            repo name                                      status

base                               CentOS-6 - Base                                6,706

extras                             CentOS-6 - Extras                                 46

updates                            CentOS-6 - Updates                               756

videocube                          videocube repository                               0



연결이 되었습니다.


사설 yum ( videocube) 에서  java를 rpm 으로 만들고 사설 yum에서 java 를 설치를 해보자..


1. 자바 다운로드 하기

   ㄴ Java Source Download - Oracle



[ 작업 폴더 만들기 ]


mkdir -p/data/rpmbuild/videocube-java


cd /data/rpmbuild/videocube-java



scp server-jre-8u152-linux-x64.tar.gz root@192.168.1.7:/data/rpmbuild/videocube-java


root@192.168.1.7's password: 

bash: scp: command not found

lost connection



원격지 서버에도 scp 가 있어야만 파일을 보낼 수 가 있다..


리눅스를 최소 설치 하면 scp 는 설치되어 있지 않는다.


해서 원격지 서버 192.168.1.7 번 서버에 접속하여 


yum install openssh-clients


했더니.. DNS 가 문제가 발생했다.. 사설 DNS 가 외부 DNS 를 받아오지 못한다..



외부 DNS 를 연결하는 부분에서 나오는 장애는 우선 나중에 생각하기로 하고.. 해당 서버에서 


vi /etc/resolv.conf


연결을 외부 DNS 로 변경 후 다시 실행해 보자..





이렇게 나올 때는.. videocube 와 사설 dns 이기 때문에.. 찾을 수가 없다..


yum --disablerepo=videocube install openssh-clients


사설 dns 를 제외하고 다시 실행 합니다.




-rw-r--r--. 1 root root 54778257 2017-11-06 00:47 server-jre-8u152-linux-x64.tar.gz



RPM 서버에.. 다음 파일을 받아왔습니다.


tar xvfz server-jre-8u152-linux-x64.tar.gz



압축을 풀어보면.. 


jdk1.8.0_152 폴더가 생성이 되고


jdk1.8.0_152/bin/java -version


실행하게 되면 다음 정보가 나옵니다.


java version "1.8.0_152"

Java(TM) SE Runtime Environment (build 1.8.0_152-b16)

Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)


이 압축 파일을 RPM 화 하여 yum 에 등록 해 보려고 합니다.


작업 순서 나열하기


1. server-jre-8u152-linux-x64.tar.gz 압축해제하기


2. 해제한 파일 /usr/local/jdk1.8.0_152에 설치하기


3. /usr/local/jdk1.8.0_152 설치 한 파일을 /usr/local/java 에 링크하기



spec 파일을 작성한다.



%define _unpackaged_files_terminate_build 0 

#설치 여부를 검사 할 때 에러 발생를 발생하는데 이부분을 skip 처리한다.


%define __spec_install_pre /bin/true 

#이 옵션을 제거 하고 rpmbuild 를 하게 되면, 각 prep에서 작업한 후 install 시에 buildroot 를 삭제해 버리는 crean 을 수행한다. 해서 %install 에서 buildroot 가 삭제가 되기 때문에 cp 에서 에러가 발생한다.


마지막으로  post 에서는 설치 후 링크를 실행하는 스크립트를 추가했다


postun 은 rpm 을 삭제할 때 java 파일 ( files 외에 )  링크 파일도 해제 하도록 스크립트를 추가했다.



Makefile 을 만들어 다음과 같이 make 를 이용하여 build 하도록 만들었다


#

## Copyright (c) 2017 VideoCube Lab., Ltd.

# All rights reserved.

# #

# # $Id: Makefile 447 2017-11-07 01:11:00Z pluto90k $

# #


TARGET = videocube-java


all: clean $(TARGET).spec

        rpmbuild -bb $(TARGET).spec


clean:

        -rm -f *.rpm



이렇게 완성된 RPM 은 videocube-java-1.8.0.rpm


/data/rpm/os6, /data/rpm/os7 으로 복사한다



앞 서 crontab 에 지정한 다음 스케줄에 따라서


*/5 * * * * /usr/bin/createrepo --update /data/rpm/os6 > /dev/null 2>&1


*/5 * * * * /usr/bin/createrepo --update /data/rpm/os7 > /dev/null 2>&1


repomd.xml 파일이 갱신이 될 것이다.


반영된 RPM 을 기존 Repo 에 연결된 서버로 접속하여 설치하도록 해보자~~~


현재 사설 DNS를 사용하기 때문에 다른 yum 에 대한 레포지토리는 에러가 발생 했다.. 이거 참 귀찮네..

ㄴ 왜 이런지는 DNS를 좀 더 파야할 것 같다.. ( 분명 포워딩 했는데.. 

ㄴ 로그를 봤더니.. 

        dnssec-enable no;

dnssec-validation no;


설정을 위와 같이 하란다.. ㅋㅋ


yum --disablerepo=* --enablerepo=videocube install videocube-java


설치가 되지 않거나 하는 경우에 repomd.xml 갱신으로 metadata를 삭제한 후에 install 해보자


yum clean metadata 한 후에 설치를 진행하자.


oot@linux-02:/root> yum --disablerepo=* --enablerepo=videocube repolist

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

videocube                                                                             | 2.9 kB     00:00     

videocube/primary_db                                                                  | 2.7 kB     00:00     

repo id                                       repo name                                                status

videocube                                     videocube repository                                     1

repolist: 1



1개가 등록되어 있는 것을 볼 수 있다



root@linux-01:/root> yum --disablerepo=* --enablerepo=videocube install videocube-java

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package videocube-java.x86_64 0:1.8.0-152 will be installed

--> Finished Dependency Resolution


Dependencies Resolved


=================================================================================================================

 Package                        Arch                   Version                   Repository                 Size

=================================================================================================================

Installing:

 videocube-java                 x86_64                 1.8.0-152                 videocube                  43 M


Transaction Summary

=================================================================================================================

Install       1 Package(s)


Total download size: 43 M

Installed size: 145 M

Is this ok [y/N]: y 

Is this ok [y/N]: y

Downloading Packages:

videocube-java-1.8.0.rpm                                                                  |  43 MB     00:01     

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

Warning: RPMDB altered outside of yum.

  Installing : videocube-java-1.8.0-152.x86_64                                                               1/1 

  Verifying  : videocube-java-1.8.0-152.x86_64                                                               1/1 


Installed:

  videocube-java.x86_64 0:1.8.0-152                                                                              


Complete!




/usr/local/java/bin/java


사용법: java [-options] class [args...]

           (클래스 실행)

   또는  java [-options] -jar jarfile [args...]

           (jar 파일 실행)

여기서 options는 다음과 같습니다.

    -d32   사용 가능한 경우 32비트 데이터 모델을 사용합니다.

    -d64   사용 가능한 경우 64비트 데이터 모델을 사용합니다.

    -server   "server" VM을 선택합니다.

                  기본 VM은 server입니다..


    -cp <디렉토리 및 zip/jar 파일의 클래스 검색 경로>

    -classpath <디렉토리 및 zip/jar 파일의 클래스 검색 경로>

                  클래스 파일을 검색할 :(으)로 구분된 디렉토리,

                  JAR 아카이브 및 ZIP 아카이브 목록입니다.

    -D<name>=<value>

                  시스템 속성을 설정합니다.

    -verbose:[class|gc|jni]

                  상세 정보 출력을 사용으로 설정합니다.

    -version      제품 버전을 인쇄한 후 종료합니다.

    -version:<value>

                  경고: 이 기능은 사용되지 않으며

                  이후 릴리스에서 제거됩니다.

                  실행할 버전을 지정해야 합니다.

    -showversion  제품 버전을 인쇄한 후 계속합니다.

    -jre-restrict-search | -no-jre-restrict-search

                  경고: 이 기능은 사용되지 않으며

                  이후 릴리스에서 제거됩니다.

                  버전 검색에서 사용자 전용 JRE를 포함/제외합니다.

    -? -help      이 도움말 메시지를 인쇄합니다.

    -X            비표준 옵션에 대한 도움말을 인쇄합니다.

    -ea[:<packagename>...|:<classname>]

    -enableassertions[:<packagename>...|:<classname>]

                  세분성이 지정된 검증을 사용으로 설정합니다.

    -da[:<packagename>...|:<classname>]

    -disableassertions[:<packagename>...|:<classname>]

                  세분성이 지정된 검증을 사용 안함으로 설정합니다.

    -esa | -enablesystemassertions

                  시스템 검증을 사용으로 설정합니다.

    -dsa | -disablesystemassertions

                  시스템 검증을 사용 안함으로 설정합니다.

    -agentlib:<libname>[=<options>]

                  <libname> 고유 에이전트 라이브러리를 로드합니다(예: -agentlib:hprof).

                  -agentlib:jdwp=help 및 -agentlib:hprof=help도 참조하십시오.

    -agentpath:<pathname>[=<options>]

                  전체 경로명을 사용하여 고유 에이전트 라이브러리를 로드합니다.

    -javaagent:<jarpath>[=<options>]

                  Java 프로그래밍 언어 에이전트를 로드합니다. java.lang.instrument를 참조하십시오.

    -splash:<imagepath>

                  이미지가 지정된 스플래시 화면을 표시합니다.

자세한 내용은 http://www.oracle.com/technetwork/java/javase/documentation/index.html을 참조하십시오.




미션완료~~~











반응형

'시스템' 카테고리의 다른 글

Jenkins (젠킨스) 를 설치해보자  (0) 2017.11.10
GitLab을 설치해 보자!!  (0) 2017.11.09
사설 yum 서버를 구축해보자  (0) 2017.11.04
사설 DNS 구축해 보기 문제해결  (0) 2017.11.03
사설 DNS 구축해 보기  (0) 2017.11.02
Comments