需求:为项目的4个安装包,rpm的32位和64位,deb的32位和64位包部署安装源。
问题,在一台机器上发布32位和64位两种包。这点很重要,踩的坑,安装的时候不能识别位数,apt-get不管机器多少位都只下32位的deb包。
ubuntu过程(依赖apache):
1,创建目录
mkdir /var/www/html/soft/x86
mkdir /var/www/html/soft/i386(踩得坑就在这,因为没有把32和64位的分开,而是都放soft下,导致两个包只能识别一个)
mkdir /var/www/html/dists
mkdir /var/www/html/dists/lucid
mkdir /var/www/html/dists/lucid/main
mkdir /var/www/html/dists/lucid/main/binary-i386(这个没有的话会warning,忽略即可,也可以在source.list内指定为64位)
mkdir /var/wwwhtml//dists/lucid/main/binary-amd64(这个文件夹必须的,因为我是64位操作系统)
2,拷贝安装包到x86和i386下
3,开始制作源,这一步会生成索引文件:
dpkg-scanpackages soft/i386/ /dev/null | gzip > /var/www/html/dists/lucid/main/binary-i386/Packages.gz
dpkg-scanpackages soft/x86/ /dev/null | gzip > /var/www/html/dists/lucid/main/binary-amd64/Packages.gz
这里让binary-i386和binary-amd64指定对应的目录,否则,下载会找不到相应的文件。
redhat过程:
准备过程,安装nginx/apache,createrepo。
问题:同ubuntu,yum和apt方式不一样,yum并不是识别安装位数,需要在安装脚本中指定路径,createrepo的时候,对x86和i386分别createrepo,分别生成两个索引文件,在repo文件中分开写即可。