建立自已的YUM源伺服器,並rpmbuild自已的rpm包
阿新 • • 發佈:2018-12-26
建立自已的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