Centos 6.9 rpm 가방 맞 춤 형, yum 창고 구축

14683 단어 Linux
목차
  • 1 yum 설치 소프트웨어 를 유지 할 때 다운로드 한 rpm 패키지
  • 2 컴 파일 설치 Nginx
  • 3 fpm 도구 설치
  • 4 Nginx 포장
  • 5 기타 기계 테스트
  • 6 yum 창고 구축
  • 7 미 러 동기 화 네트워크 yum 소스

  • 1 yum 설치 프로그램 을 유지 할 때 다운로드 한 rpm 패키지
    yum 프로필 만 수정 하면 됩 니 다.다운로드 한 rpm 패 키 지 는 / var / cache / yum / 디 렉 터 리 에 자동 으로 저 장 됩 니 다.
    [root@web01 ~]# sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf
    [root@web01 ~]# yum install sl -y
    [root@web01 ~]# tree /var/cache/yum/x86_64/6/epel/
    /var/cache/yum/x86_64/6/epel/
    ├── 83f14a3d88054141092be5da12eb18cb1baabd7d52e1ae38bfc98d3d5005490c-primary.sqlite
    ├── cachecookie
    ├── packages
    │   └── sl-5.02-1.el6.x86_64.rpm
    └── repomd.xml
    
    1 directory, 4 files

    2 컴 파일 설치 Nginx
    # Download tar.gz package
    cd /home/oldboy/tools
    wget -q http://nginx.org/download/nginx-1.6.3.tar.gz
    
    # Yum install Dependent package
    yum install openssl openssl-devel -y
    yum install pcre pcre-devel -y
    rpm -qa pcre pcre-devel
    
    # Useradd www
    useradd www -s /sbin/nologin -M
    
    # Compile and install
    tar -xf nginx-1.6.3.tar.gz
    cd nginx-1.6.3
    ./configure --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --prefix=/application/nginx-1.6.3/
    make && make install
    
    # Create a soft link
    ln -s /application/nginx-1.6.3/ /application/nginx
    
    # Start nginx
    /application/nginx/sbin/nginx
    
    # Check port 80
    lsof -i :80

    3 fpm 도구 설치
    1 우선 의존 팩 설치
    yum -y install zlib-devel curl-devel openssl-devel httpd-devel apr-devel apr-util-devel mysql-devel
    

    2 ruby 다운로드, fpm 는 ruby 가 썼 기 때문에 시스템 환경 은 ruby 가 필요 합 니 다.yum 설치 ruby 를 추천 하지 않 습 니 다. 테스트 할 때 문제 가 생 길 수 있 습 니 다.
    [root@web01 tools]# wget https://ruby.taobao.org/mirrors/ruby/ruby-2.3.0.tar.gz
    [root@web01 tools]# tar -xf ruby-2.3.0.tar.gz
    [root@web01 tools]# cd ruby-2.3.0
    [root@web01 ruby-2.3.0]# ./configure
    [root@web01 ruby-2.3.0]# make && make install
    [root@web01 ruby-2.3.0]# ruby -v
    ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]
    [root@web01 ~]# whereis gem
    gem: /usr/local/bin/gem
    [root@web01 ~]# /usr/local/bin/gem install fpm
    [root@web01 ~]# fpm -v
    1.9.3
    
    #       Rubygems  ,        ,         ,           Ruby  
    [root@web01 ~]# gem sources
    *** CURRENT SOURCES ***
    
    https://rubygems.org/ 
    [root@web01 ~]# gem sources --remove https://rubygems.org/
    https://rubygems.org/ removed from sources
    
    #       
    [root@web01 ~]# gem sources -a http://mirrors.aliyun.com/rubygems/
    http://mirrors.aliyun.com/rubygems/ added to sources
    [root@web01 ~]# gem sources
    *** CURRENT SOURCES ***
    
    http://mirrors.aliyun.com/rubygems/

    3 fpm 상용 매개 변수
    -s:     
    -t:      ,         
    -n:      
    -v:       
    -C:         
    -d:        
    -f:                   ,    
    -p:         ,              
    --post-install:                ; --offer-install
    --pre-install:                ; --before-install
    --post-uninstall:                ; --offer-remove
    --pre-uninstall:                ; —before-remove
    

    4 fpm 지원 하 는 원본 패키지
    dir: 디 렉 터 리 를 필요 한 형식 으로 포장 하여 소스 코드 컴 파일 에 사용 할 수 있 는 패키지 rpm: rpm 변환 gem: ruby gem 패키지 변환 python: Python 모듈 을 해당 하 는 형식 으로 포장 합 니 다.
    5 fpm 지원 대상 패키지
    rpm: rpm 패키지 deb 로 변환: deb 패키지 solaris 로 변환: solaris 패키지 puppet 로 변환: puppet 패키지 로 변환
    4 Nginx 포장 하기
    #   --post-install      ,          
    fpm -s dir -t rpm -n nginx -v 1.6.3 -d 'pcre-devel,openssl-devel' --post-install /server/scripts/nginx_rpm.sh -f /application/nginx-1.6.3/
    
    # nginx_rpm.sh
    cat >>/server/scripts/nginx_rpm.sh<-s /sbin/nologin -M www
    ln -s /application/nginx-1.6.3/ /application/nginx
    ln -s /application/nginx/sbin/nginx  /usr/local/sbin/
    EOF

    5 기타 기계 테스트
    # scp rpm     
    [root@web01 ~]# scp nginx-1.6.3-1.x86_64.rpm [email protected]:/home/oldboy/tools
    
    #   
    [root@lb01 tools]# yum localinstall nginx-1.6.3-1.x86_64.rpm -y

    6 yum 창고 구축
    1. createrepo 설치
    [root@web02 ~]# yum install createrepo -y

    2. yum 창고 디 렉 터 리 를 만 들 고 repodata 색인 파일 을 초기 화 합 니 다.
    [root@web02 ~]# mkdir -p /application/yum/centos6.9/x86_64/
    [root@web02 ~]# cd /application/yum/centos6.9/x86_64/    #      rpm      
    [root@web02 x86_64]# createrepo -pdo /application/yum/centos6.9/x86_64/ /application/yum/centos6.9/x86_64/

    3 yum 서비스 제공
    #    python   web  ,   apache nginx   web  
    [root@web02 x86_64]# python -m SimpleHTTPServer 80 &>/dev/null &   # python httpd  
    [root@web02 x86_64]# lsof -i :80
    COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    python  24680 root    3u  IPv4  32493      0t0  TCP *:http (LISTEN)

    4 새로운 rpm 패키지 가 들 어가 면 업데이트 해 야 합 니 다.
    [root@web02 x86_64]# createrepo --update /application/yum/centos6.9/x86_64/

    5 클 라 이언 트 yum 원본 수정
    cat >>/etc/yum.repo.d/<//10.0.0.7        
    # baseurl  yum  IP,    80       
    enabled=1
    gpgcheck=0
    EOF
    
    #       nginx  
    #       
    [root@lb02 ~]# yum clean all
    
    #     yum   
    [root@lb02 ~]# yum --enablerepo=only --disablerepo=base,extras,updates,epel list   
    #       --enablerepo local.repo      only
    
    #   nginx  #
    yum --enablerepo=local --disablerepo=base,extras,updates,epel install nginx -y
    

    6 yum 의 용법
    #         
    1、yumdownloader pcre-devel openssl-devel
    2、yum --downloadonly pcre-devel openssl-devel
    
    # yum    rpm 
    yum localinstall pcre-devel openssl-devel
    
    # yum      ,          
    yum --enablerepo=local --disablerepo=base,extras,updates,epel install pcre-devel openssl-devel
    
    # yum    GPG-check
    yum install --nogpgcheck pcre-devel openssl-devel
    
    #   yum    
    yum history
    
    #         
    yum repolist
    yum repolist all #         ,        

    7 오류 조사
    #        nginx                   ,         yum    。
    yum  :createrepo --update /application/yum/centos6.9/x86_64/
       :yum clean all
    
    Error: Package: nginx-1.6.3-1.x86_64 (only)
               Requires: pcre-devel
    Error: Package: nginx-1.6.3-1.x86_64 (only)
               Requires: openssl-devel 
    
    #               

    7. 미 러 동기 화 네트워크 yum 소스
    위 에는 자신 이 만 든 rpm 가방 만 yum 원 에 넣 었 다.그러나 평소에 설치 한 소프트웨어 는 모두 공공 네트워크 에서 다운로드 되 고 대역 폭 을 차지 하기 때문에 공공 네트워크 yum 소스 의 repodata 를 직접 사용 할 수 있다 는 수요 도 있다.상류 yum 소스 는 rsync 프로 토 콜 을 지원 해 야 합 니 다. 그렇지 않 으 면 rsync 를 사용 하여 동기 화 할 수 없습니다.http://mirrors.ustc.edu.cn/status/
    # CentOS     :rsync://mirrors.ustc.edu.cn/centos/
    # epel :rsync://mirrors.ustc.edu.cn/epel/
    #     :
    #   rsync  yum ,      、       ,      CentOS6 rpm ,     rpm     21G,      300G  。
    
    #   base ,   ,               rpm ,  3G,         。
    /usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/os/x86_64/ /data/yum_data/centos/6/os/x86_64/
    
    /usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/extras/x86_64/ /data/yum_data/centos/6/extras/x86_64/
    
    /usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/updates/x86_64/ /data/yum_data/centos/6/updates/x86_64/
    
    # epel 
    /usr/bin/rsync -av --exclude=debug rsync://mirrors.ustc.edu.cn/epel/6/x86_64/ /data/yum_data/epel/6/x86_64/
    
    #     yum   
    #         dns,    ,   hosts  。
    echo '192.168.0.200 mirrors.aliyun.com' >>/etc/hosts
    
    #     
    [root@m01 data]# du -sh yum_data    
    21G     yum_data
    [root@m01 data]# tree -L 3 yum_data/
    yum_data/
    ├── centos
    │   ├── 6
    │   │   ├── extras
    │   │   ├── os
    │   │   └── updates
    │   └── RPM-GPG-KEY-CentOS-6
    ├── epel
    │   └── 6
    │       └── x86_64

    좋은 웹페이지 즐겨찾기