To follow the path,look to the master,follow the master.
分类: LINUX
2015-05-03 21:36:41
原文地址:自建yum安装源服务 作者:raochaoxun
本文的目的是作者在工作中,碰到的情况:为了标准化软件安装,保证业务所有机器上软件统一一个版本,避免版本多样化,所以自建yum安装源服务。特将搭建过程记录下来。
$ yum install nginx
$ yum install createrepo
$ mkdir -p /opt/yoursite/yum/centos/6/os/x86_64 $ createrepo /opt/yoursite/yum/centos/6/os/x86_64/
$ mkdir -p /opt/yoursite/yum/centos/6/updates/x86_64 $ createrepo /opt/yoursite/yum/centos/6/updates/x86_64/
$ mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak.20150428
$ useradd -m -U www //创建nginx log文件夹
$ mkdir -p /opt/logs/nginx
$ vim /etc/nginx/nginx.conf
user www; worker_processes 4; worker_rlimit_nofile 100000; worker_cpu_affinity 000000000000000000000001 000000000000000000000010 000000000000000000000100 000000000000000000001000; error_log /opt/logs/nginx/error.log warn; pid /var/run/nginx.pid; events { use epoll; worker_connections 65535; } http {
include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /opt/logs/nginx/access.log main; server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; client_max_body_size 100m; sendfile on; keepalive_timeout 65; gzip on; gzip_min_length 1024; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 128k; fastcgi_intercept_errors on;
include /etc/nginx/conf.d/*.conf; }
server {
listen 80;
charset utf8;
server_name yum.yoursite.com;
access_log /opt/logs/nginx/yum.yoursite.com.access.log main;
root /opt/yoursite/yum;
index index.html;
}
$ service nginx start //开机启动nginx
$ chkconfig nginx on
$ yum -y install yum-utils.noarch
$ yumdownloader nginx-1.4.1-1.el6.x86_64
$ yumdownloader php-5.5.5-2.el6.x86_64.rpm
$ 等等其他各种需要的软件包
#查询rpm包的依赖包
$ repoquery --requires --resolve nginx
$ yumdownloader 安装依赖包
下载更新安装包源之后,需要重新刷新,会扫描目录下rpm文件列表,刷新后,客户端才能查询到更新
$ createrepo /opt/yousite/yum/centos/6/os/x86_64/
客户端是指需要把服务端作为yum安装源,进行软件安装的机器
如果想要只使用前面配置的唯一yum源,则只需目录 /etc/yum.repos.d/*.repo 全部删除即可
$ ls -al /etc/yum.repos.d/total 16
-rw-r–r–. 1 root root 1926 Dec 8 2011 CentOS-Base.repo.bak
-rw-r–r–. 1 root root 637 Dec 8 2011 CentOS-Debuginfo.repo.bak
-rw-r–r–. 1 root root 626 Dec 8 2011 CentOS-Media.repo.bak
$ vim mirrors_stevenrao.repo
#[serverid] 是用于区别各个不同的repository,必须有一个独一无二的名称;可以随便命名
[stevenrao-base] name=centos-$releasever-stevenrao-base baseurl= enabled=1
gpgcheck=0
#released updates
[stevenrao-update] name=centos-$releasever-stevenrao-update
baseurl=
enabled=1
gpgcheck=0
其他配置文件譬如 /etc/yum.conf 一般不用修改它
#yum本地缓存的目录,yum在此存储下载的rpm包和数据库
cachedir=/var/cache/yum/$basearch/$releasever
#安装完成后是否保留软件包,0为不保留(默认为0),1为保留
keepcache=0
#debuglevel:Debug信息输出等级,范围为0-10,缺省为2
debuglevel=2
#存放系统更新软件的日志的目录
logfile=/var/log/yum.log
#有1和0两个选项,设置为1,则yum 只会安装和系统架构匹配的软件包,例如,yum 不会将i686的软件包安装在适合i386的系统中。默认为1。exactarch=1 #相当于upgrade,允许更新陈旧的RPM包
obsoletes=1
#有1和0两个选择,分别代表是否是否进行gpg(GNU Private Guard) 校验,以确定rpm 包的来源是有效和安全的。这个选项如果设置在[main]部分,则对每个repository 都有效。默认值为0。
gpgcheck=0
#是否启用插件,默认1为允许,0表示不允许。我们一般会用插件
plugins=1
installonly_limit=5
bugtracker_url= project_id=16&ref=category=yum
distroverpkg=centos-release
#清除所有本地安装包cache
$ yum clean all
$ yum install nginx
- yum clean packages 清除缓存中的软件包文件
- yum clean headers 清除缓存中的软件包文件头信息
- yum clean metadata 清除缓存中的描述信息
- yum clean dbcache 清除sqlite格式的描述信息
- yum clean all 清除缓存中的所有数据信息
- yum list all 列出所有软件包
- yum list installed 列出所有已经安装的软件包
- yum list available 列出可安装的软件包
- yum list updates 列出所有可以更新的软件包
- yum list extras 显示额外的软件包
- yum list obsoletes 显示已经被淘汰的软件包
- yum list recent 显示近期的软件包