当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : ubuntu在局域网内的安装--建立自己的DEB源服务器
帖子发表于 : 2007-07-23 18:47 

注册: 2007-07-23 18:32
帖子: 5
送出感谢: 0 次
接收感谢: 0 次
因为要在公司里多台机子上装UBUNTU,又不想每次都把同样要安装的包从外网下载一遍,所以就像利用已经装好的一台PC上存下来的包做个简单的局域网用的库,这样以后每重新装一台都可以从这个库里来更新了,而且这些新的PC都不需要连接外网了。

今天把deb服务器大概研究了下,这里我只谈HTTP访问方式的服务器,它其实就是标准的HTTP服务,用一些特殊的目录名把所有的包进行分类,比如我用的 ubuntu是7.04的版本,它运行在i386的平台上,这样对于main的包就是在dists/feisty/main/binary-i386/下面,不过不是把deb包直接扔到这个目录就可以了,这样的话apt-get是不知道的,apt-get每次只会去读这个目录下的一个 Packages.gz文件,这个文件里包含了所有包的信息,apt-get就可以通过它找到所有的包并且自动下载安装了。

下面的问题就是如何生成这个Packages.gz文件,我看了网上一些非UBUNTU镜像的库,找到一个sh文件,我稍微作了一些修改,如下(update.sh)

代码:
#!/bin/bash

# Quick Package Updater

# John Dong (Fixed by Vinx)


#Licensed under the GPL.

DISTS="feisty"

SECTIONS="main"
BINARY_ARCH="binary-i386"

for a in $DISTS; do

        for b in $SECTIONS; do

        for c in $BINARY_ARCH; do

                if [ -d dists/$a/$b/$c ]; then
                echo "Updating dists/$a/$b/$c/Packages"
                dpkg-scanpackages /var/cache/apt/archives /dev/null | gzip -9 > dists/$a/$b/$c/Packages.gz
                fi
        done
        done

done


其中dpkg-scanpackages 就是搜索指定目录下的deb包并且把包的信息写入Packages.gz,这里我搜索当前系统安装过的包,并且把所有包都归入了i386的main中,比较方便,呵呵。

有了脚本我们就可以开始建立局域网的库了,首先安装一个apache2
sudo apt-get install apache2
在浏览器里输入localhost看apache是否正常启动了。

进入/var/www,分别建立 dists/feisty/main/binary-i386/目录,注意目录的owner要改成www-data

然后执行这个脚本:
sudo sh update.sh
就能自动生成package文件了,以后如果有什么新的包加入,只要重新执行一下这个脚本就可以了。

找到另外一台PC,在/etc/apt/sources.list里加入 deb http://yourip/ feisty main
sudo apt-get update
你能看到从你的库里下到正确的package就OK了。

然后你就可以install所有的包了,不需要从外面服务器下载了,呵呵。

到这里,一个简单的DEB库就建立好了,不过我有些包不是在官方的源上下的,所以不会在archives里面有储存,我是把他们按照软件类别放到/home/download/下的不同目录下的,为了其他PC也能安装这部分包,我在脚本里加入了一个更新拷贝命令:
sudo find /home/vinx/download/ -name "*.deb" -exec cp {} -u /var/cache/apt/archives/ \;
它每次都会从download目录下寻找所有的deb包并且更新到本地的包缓存目录中,这样,所有的包都能被其他PC访问到了:)

P.S 之前在这里也搜索了下,但是没有找到我需要的,不是建立本地源,就是建立完整MIRROR,这两个都不是我要的,只好自己DIY了:|:


页首
 用户资料  
 
2 楼 
 文章标题 : Re: ubuntu在局域网内的安装--建立自己的DEB源服务器
帖子发表于 : 2013-04-01 14:24 

注册: 2013-04-01 14:22
帖子: 1
系统: Xubuntu
送出感谢: 0 次
接收感谢: 0 次
这么好的文章,为什么没人顶呢?
支持下


页首
 用户资料  
 
3 楼 
 文章标题 : Re: ubuntu在局域网内的安装--建立自己的DEB源服务器
帖子发表于 : 2014-04-26 12:54 

注册: 2014-04-01 20:44
帖子: 2
系统: ubuntu
送出感谢: 0 次
接收感谢: 0 次
你怎么知道那些包属于feisty发布版的呢?


页首
 用户资料  
 
4 楼 
 文章标题 : Re: ubuntu在局域网内的安装--建立自己的DEB源服务器
帖子发表于 : 2014-04-26 21:16 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
很久没见人搭建源了。
简单的,其实可以直接挂载远程的apt的archive目录。省得多次下载包就够了。


_________________
● 鸣学


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译