实验室工作中需要时常安装、更新linux下的相关包,由于内部网络限制,使用官方yum安装变得很困难。另外网速这个是硬伤。所以将实验室用到的一些相关源镜像到本地,方便大家工作。
nginx服务搭建
选择nginx作为web服务,小巧轻便。操作系统:CentOS 6.x
nginx安装
添加nginx源
#
vi etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1安装nignx
#
yum info nginx
yum install -y nginx
参考:http://nginx.org/en/linux_packages.html
nginx配置
Nginx目录浏览功能,在http {下面添加以下内容:
# vi etc/nginx/nginx.conf
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
启动Nginx服务
#
service nginx start
service nginx reload
netstat -lntp | grep nginx
ps -ef | grep nginx
缺省是一个master,一个slave,可以在配置nginx.conf文件里调整。
设置开机自动启动
#
chkconfig nginx on
开放端口
#
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/etc/rc.d/init.d/iptables save
镜像同步
源地址
CentOS官方标准源:rsync://mirrors.kernel.org/centos,rsync://mirrors.ustc.edu.cn/centos/
rpmforge源:rsync://ftp-stud.fht-esslingen.de/dag,rsync://mirrors.ispros.com.bd/repoforge/
epel源:rsync://mirrors.kernel.org/fedora-epel,rsync://mirrors.ustc.edu.cn/epel/
cpan源:rsync://mirrors.ustc.edu.cn/CPAN/
ceph源:rsync -avrt rsync://ceph.mirror.iweb.ca/ceph
openstack源:rsync -avrt rsync://repos.fedorapeople.org/people-repos/openstack
mariadb源: rsync -a –partial –delete-after –delay-updates rsync.osuosl.org::mariadb,rsync -avP archive.mariadb.org::mariadb
rsync://mirror.aarnet.edu.au/pub/MariaDBpercona源 rsync -avrt rsync://rsync.percona.com/rsync mirror/percona/
rsync安装
#
yum install -y rsync xinetd
vi etc/xinetd.d/rsync
disable = no #修改为
/etc/init.d/xinetd start #启动(CentOS中是以xinetd 来管理Rsync服务的)
添加脚本定时执行任务
#
vi etc/crontab
0 1 * * * root mirror/mirror_rsync.sh
service crond restart
Ubuntu源同步
安装apt-mirror
#
yum install -y apt-mirror
配置说明
目前Ubuntu的主要版本有5个,具体如下:
Ubuntu 15.04 (Vivid Vervet)
Ubuntu 14.10 (Utopic Unicorn)
Ubuntu 14.04.3 LTS (Trusty Tahr)
Ubuntu 12.04.5 LTS (Precise Pangolin)
Ubuntu 10.04.4 LTS (Lucid Lynx)
下面就构建Ubuntu 14.04 64bit的本地Ubuntu mirror服务器为例子,来说明如何配置:
#
mkdir -p mirror/apt-mirror
mv etc/apt-mirror.list etc/apt-mirror.listbak
vi etc/apt-mirror.list
############# config ##################
set base_path mirror/apt-mirror
set mirror_path $base_path/mirror
set skel_path $base_path/skel
set var_path $base_path/var
set cleanscript $var_path/clean.sh
#set defaultarch <running host architecture>
set defaultarch amd64
set postmirror_script $var_path/postmirror.sh
set run_postmirror 0
set nthreads 20
set _tilde 0
############# end config ##############
deb-amd64 http://mirrors.sohu.com/ubuntu/ precise main restricted universe multiverse
deb-amd64 http://mirrors.sohu.com/ubuntu/ precise-backports main restricted universe multiverse
deb-amd64 http://mirrors.sohu.com/ubuntu/ precise-proposed main restricted universe multiverse
deb-amd64 http://mirrors.sohu.com/ubuntu/ precise-security main restricted universe multiverse
deb-amd64 http://mirrors.sohu.com/ubuntu/ precise-updates main restricted universe multiverse
deb-amd64 http://mirrors.sohu.com/ubuntu/ trysty main restricted universe multiverse
deb-amd64 http://mirrors.sohu.com/ubuntu/ trysty-backports main restricted universe multiverse
deb-amd64 http://mirrors.sohu.com/ubuntu/ trysty-proposed main restricted universe multiverse
deb-amd64 http://mirrors.sohu.com/ubuntu/ trysty-security main restricted universe multiverse
deb-amd64 http://mirrors.sohu.com/ubuntu/ trysty-updates main restricted universe multiverse
clean http://mirrors.sohu.com/ubuntu
#ubuntu extras
deb-src http://extras.ubuntu.com/ubuntu precise main
deb http://extras.ubuntu.com/ubuntu precise main
deb-src http://extras.ubuntu.com/ubuntu trysty main
deb http://extras.ubuntu.com/ubuntu trysty main
clean http://extras.ubuntu.com/ubuntu
#mesosphere源
deb http://repos.mesosphere.io/ubuntu trusty main
clean http://repos.mesosphere.io/ubuntu
备注:
deb-amd64 表示下载64bit 版本的deb 软件;
precise 表示Ubuntu 12.04的代号;
只下载precise ,大约需要43GB的存储空间;
下载precise-backports precise-proposed precise-security precise-updates,估计需要75GB的空间。
同步镜像
设置完成后,然后新建一个screen终端(个人习惯),用于后台运行镜像同步。
#
yum install -y screen
screen -dmS apt-mirror
screen -r apt-mirror
apt-mirror
这时系统会启动20个线程运行wget 到 http://mirrors.sohu.com/Ubuntu 下面下载相应的deb包。时间比较的长,该命令执行完成后,/var/spool/apt-mirror目录下就有了所有需要的deb包和相应的配置文件。
这里使用nginx作为Web服务器,默认根目录在/usr/share/nginx/html/,所以可以在该目录下做个链接,如下所示:
#
cd /usr/share/nginx/html
ln /mirror/apt-mirror/mirror/mirrors.sohu.com/ubuntu -s
配置自动同步
使用crontab进行每天的更新,修改配置文件:
#
cat etc/cron.d/apt-mirror
# Regular cron jobs for the apt-mirror package
0 4 * * * apt-mirror usr/bin/apt-mirror > var/spool/apt-mirror/var/cron.log
系统会自动使用apt-mirror去和sohu服务器更新。
配置客户端
在其它的服务器上修改APT源地址为该服务器的IP,如”192.178.102.249”,然后使用本地镜像服务了。
$ sudo sed -i s/security.ubuntu.com/192.178.102.249/g etc/apt/sources.list
$ sudo sed -i s/archive.ubuntu.com/192.178.102.249/g etc/apt/sources.list
$ sudo apt-get update
Openstack源同步
centos、redhat
#
rsync -avrt rsync://repos.fedorapeople.org/people-repos/openstack mirrorubuntu
OpenStack(juno,kilo,liberty源)
方法同制作ubuntu源,需要修改源地址为deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/icehouse main
deb-src http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/icehouse main
deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/juno main
deb-src http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/juno main
deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/kilo main
deb-src http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/kilo main
deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/liberty main
deb-src http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/liberty main
ln -s /mirror/apt-mirror/mirror/ubuntu-cloud.archive.canonical.com/ubuntu/ /usr/share/nginx/html/openstack-ubuntu
CloudStack源同步
官方提供了CloudStack镜像服务器rsync服务,我们只要参考官方文档进行相关配置将其同步下来即可。
参考:http://cloudstack.apt-get.eu/README
官方文档(但是存在错误),应该按照下面的来:
#
mkdir -p mirror/cloudstack
cd mirror/cloudstack
rsync -avr --delete cloudstack.apt-get.eu::cloudstack
//For Debian/Ubuntu:
rsync -avr --delete cloudstack.apt-get.eu::cloudstack/ubuntu .
//For RedHat/CentOS
rsync -avr --delete cloudstack.apt-get.eu::cloudstack/rhel .
备注:rsync 参数解释:-a 参数,相当于-rlptgoD,-l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;-r 是递归,-v 传输时的进度等信息;
配置本地yum源
挂载镜像
#
mkdir /media/rhel
mount /dev/cdrom /media/rhel
生成YUM通用数据库(可选)
#
yum install createrepo
cd var/ftp/pub
createrepo .
配置本地yum源
#
cd etc/yum.repos.d/
vi rhel-media.repo
[Local]
name=Local
baseurl=file:///media/rhel
enable=1
gpgcheck=0
常用的yum命令
安装
yum install package 安装指定的安装包package1
yum localinstall package 本地安装软件包更新和升级
yum update 全部更新
yum update package 更新指定程序包package
yum check-update 检查可更新的程序查找和显示
yum info 显示安装包信息
yum list 显示所有已经安装和可以安装的程序包
yum list 显示指定程序包安装情况
yum search 查找软件包删除程序
yum remove | erase package1 删除程序包
yum 会把下载的软件包和header存储在cache中,而不会自动删除。如果我们觉得它们占用了磁盘空间,可以使用yum clean指令进行清除.
yum clean headers清除header
yum clean packages清除下载的rpm包
yum clean all 清除header与rpm包
1)即日起,凡是推送在【子衿技术】平台的文章,阅读量超过1000,该文章作者可获赠礼品。
2)投稿数量较多的作者可获赠礼品。
3)从关注的用户中每月抽取3名幸运关注用户,这3名幸运用户可获赠礼品。
好的干货文章请积极向我们的“子衿技术团队”订阅号投稿,投稿邮箱:xx.miaojingwen@163.com。

欢迎扫码关注子衿技术




