1. 程式人生 > >建立自已的YUM源伺服器,並rpmbuild自已的rpm包

建立自已的YUM源伺服器,並rpmbuild自已的rpm包

建立自已的yum源

//使用centos6.5光碟的包列表,建立自已的yum伺服器
1.建立伺服器rpm包存放目錄

#mkdir -p /yum_repo/centos/6/x86_64
//建立索引
#createrepo -v /yum_repo/centos/6/x86_64
//複製光碟的rpm包到伺服器目錄列表
#cp /media/CentOS_6.5_Final/Packages/* /yum_repo/centos/6/x86_64
//複製rpm索引,省得重建索引了
#cp -rv /media/CentOS_6.5_Final/repodata /yum_repo/centos/6/x86_64/
#更新索引 
#createrepo --update -v /yum_repo/centos/6/x86_64 

2.把目錄掛到nginx上,對外提供yum源

//新增nginx_host配置
server {
    listen       8081;
    server_name  xxx.com;


    location / {
        root   /yum_repo;
        autoindex on;
        autoindex_exact_size on;
        autoindex_localtime on;
        #index  index.html index.htm;
    }


    error_page   500 502 503
504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }

3.使用yum源

//備份yum源配置
#mv /etc/yum.repo.d/*.repo /etc/yum.repo.d/bak
#vim /etc/yum.repo.d/xxx.com.repo
 內容如下:
    [xxx.com]
    name=songaimin-jios-org
    baseurl=http://xxx.com:8081/centos/$releasever/$basearch/
    enabled=1
    gpgcheck=0
//使用root帳號 #su root //添空本地快取 #yum clean all //重新yum快取 #yum makecache //測試 #yum search pcel

4.使用rpmbuild打包軟體,如下以golang-1.8.1為例

//安裝rpm相關包開發開具
#yum install rpm* rpm-devel rpmdevtools
//下載golang-1.8.1
#cd ~
#wget https://storage.googleapis.com/golang/go1.8.1.linux-amd64.tar.gz
//編寫.spec檔案
#rpmdev-newspec -o golang.spec
#vim golang.spec
#cp golang.spec rpmbuild/SPECS/
//建立rpm包專案結構
#rpmdev-setuptree
#cd ~/rpmbuild
#copy go1.8.1.linux-amd64.tar.gz rpmbuild/SOURCE/
//生成rpm包
#cd SPECS
#rpmbuild -bb golang.spec
//複製生成.rpm包,到自已yum伺服器目錄
#cp RPMS/x86_64/golang-1.8.1-1.el6.x86_64.rpm  /yum_repo/centos/6/x86_64

部署成生成的yum包

//生成rpm包
#cd SPECS
#rpmbuild -bb golang.spec
//複製生成.rpm包,到自已yum伺服器目錄
#cp RPMS/x86_64/golang-1.8.1-1.el6.x86_64.rpm  /yum_repo/centos/6/x86_64
//更新yum伺服器索引 
#createrepo --update -v /yum_repo/centos/6/x86_64
//yum客戶端 重新yum makecache 即可

下載其它源的rpm包,加到自已的yum源伺服器,以nginx為例

//安裝yum downloadonly外掛
#yum -y install yum-downloadonly
#yum -y install --downloadonly --downloaddir=/yum_repo/centos/6/x86_64 nginx
//更新伺服器索引 
#createrepo --update -v /yum_repo/centos/6/x86_64
//下載時注意,如果已經安裝過要下載的rpm包,請先行解除安裝:
#yum remove nginx

vim golang.spec 如下:

Name:golang
Version:1.8.1
Release:1%{?dist}
Summary:golangBinnary

#Group: system
License:GPL
Distribution:Red Hat Linux
#URL:http://golang.org
#Source0:go1.8.1.linux-amd64.tar.gz
Requires:glibc
Autoreq:0

%define userpath /usr/local

%description
golang 1.8.1

#%prep
#tar -xzvf ${RPM_SOURCE_DIR}/go1.8.1.linux-amd64.tar.gz

%install
install -d $RPM_BUILD_ROOT%{userpath}
tar -C $RPM_BUILD_ROOT%{userpath} -xzf ${RPM_SOURCE_DIR}/go1.8.1.linux-amd64.tar.gz
#sudo tar -C /usr/local -xzf ${RPM_SOURCE_DIR}/go1.8.1.linux-amd64.tar.gz

#sudo cp -r ${RPM_SOURCE_DIR}/go /usr/local/
#export PATH=$PATH:/usr/local/go/bin


%clean
rm -fr $RPM_BUILD_ROOT/*
rm -fr $RPM_BUILD_DIR/*


%files
%defattr(-,root,root,-)
%doc
%{userpath}/go



%changelog