创建自己的deb仓库

编译打包和其他
回复
头像
windwiny
帖子: 2254
注册时间: 2007-03-13 17:26

创建自己的deb仓库

#1

帖子 windwiny » 2009-04-10 9:23

把这个用gvim查看比较方便

代码: 全选

# vim:se ft=debsources:fdm=marker:




#### 简单软件仓库结构: 创建仓库主目录 ${REPO}, deb文件放在 pool目录下, /*{{{*/
##  在主目录下运行 apt-ftparchive packages pool/ | gzip -9c > Packages.gz   结构如下: /*{{{*/

|-- Packages.gz
|-- pool
|   |-- abc.deb
|   |-- def.deb
`
/*}}}*/

#### 使用:  加入源
deb file:///media/g/ubt/debs/ /

#### apt-get update 生成的软件包列表
/var/lib/apt/lists/_media_g_ubt_debs_Packages
/*}}}*/





#### 标准deb仓库结构: 创建仓库主目录 ${REPO}, deb文件放在分层的pool目录下
##  创建 dists{发行版名}/{分类名}/{机器体系} 目录, 生成分类的包列表, 生成版本签名,生成内容包

##  创建仓库,并建立相关文件:  /*{{{*/
mkdir /media/g/myubtrepo
cd /media/g/myubtrepo
mkdir project
gpg -K  # 生成自己的gpg密钥(略), 列出自己的密钥ID,并导出到文件
gpg --export -a 4B1D5487  > project/myubtrepo-keyring.gpg

mkdir -p dists/jaunty/{main,multiverse,restricted,universe}/{binary-amd64,binary-i386,i18n,source}
mkdir -p pool/{main,multiverse,restricted,universe}
# 在 pool 目录下放入一些有效的deb文件
 
apt-ftparchive packages pool/main     >  dists/jaunty/main/binary-i386/Packages
apt-ftparchive packages pool/universe >  dists/jaunty/universe/binary-i386/Packages
cat dists/jaunty/main/binary-i386/Packages     | gzip -9c > dists/jaunty/main/binary-i386/Packages.gz
cat dists/jaunty/universe/binary-i386/Packages | gzip -9c > dists/jaunty/universe/binary-i386/Packages.gz

cat > dists/jaunty/main/binary-i386/Release <<"EOF"
Archive: jaunty
Version: 9.04
Component: main
Origin: Ubuntu
Label: Ubuntu
Architecture: i386
EOF
cat > dists/jaunty/universe/binary-i386/Release <<"EOF"
Archive: jaunty
Version: 9.04
Component: universe
Origin: Ubuntu
Label: Ubuntu
Architecture: i386
EOF

cat > dists/jaunty/pt.conf <<"EOF"
APT::FTPArchive::Release {
Origin "Ubuntu";
Label "Ubuntu";
Suite "jaunty";
Codename "jaunty";
Version "9.04";
Architectures "amd64 hppa i386 ia64 lpia powerpc sparc";
Components "main restricted universe multiverse";
Description "My test Ubuntu Depository";
};
EOF

apt-ftparchive contents pool/ | gzip -9c > dists/jaunty/Contents-i386.gz

# 签名包列表
apt-ftparchive -c dists/jaunty/pt.conf  release dists/jaunty > dists/jaunty/Release
gpg -a --detach-sign -o dists/jaunty/Release.gpg dists/jaunty/Release

/*}}}*/

##  目录结构:  /*{{{*/
|-- dists
|   |-- jaunty
|   |   |-- Contents-i386.gz
|   |   |-- pt.conf
|   |   |-- Release
|   |   |-- Release.gpg
|   |   |-- main
|   |   |   |-- binary-amd64
|   |   |   |-- binary-i386
|   |   |   |   |-- Packages
|   |   |   |   |-- Packages.gz
|   |   |   |   |-- Release
|   |   |   |-- i18n
|   |   |   |-- source
|   |   |-- multiverse
|   |   |   |-- binary-amd64
|   |   |   |-- binary-i386
|   |   |   |-- i18n
|   |   |   |-- source
|   |   |-- restricted
|   |   |   |-- binary-amd64
|   |   |   |-- binary-i386
|   |   |   |-- i18n
|   |   |   |-- source
|   |   |-- universe
|   |   |   |-- binary-amd64
|   |   |   |-- binary-i386
|   |   |   |   |-- Packages
|   |   |   |   |-- Packages.gz
|   |   |   |   |-- Release
|   |   |   |-- i18n
|   |   |   |-- source
|-- pool
|   |-- main
|   |   |-- a
|   |   |   |-- abc.deb
|   |   |-- b
|   |   |   |-- bcd.deb
|   |   |-- f
|   |   |   |-- fci.deb
|   |-- multiverse
|   |-- restricted
|   |-- universe
|   |   |-- s
|   |   |   |-- stu.deb
|   |   |-- t
|   |   |   |-- test1.deb
|-- project
|   |-- myubtrepo-keyring.gpg
`
/*}}}*/


#### 使用源: 在 /etc/apt/sources.list.d/20-myubtrepo.list 加入   /*{{{*/
deb     file:///media/g/myubtrepo/ jaunty main universe
#deb-src file:///media/g/myubtrepo/ jaunty main universe
# 类型: deb,deb-src (二进制或源码包)
# 路径: file:///path/to,   http://www.name.org/ubuntu,   ftp://ftp.name.org/ubuntu,
# 发行版名: intrepid, jaunty,
# 软件包分类: main restricted universe multiverse (ubuntu默认固定使用)

#### 添加签名公钥
# 下载仓库的签名公钥并加入
sudo apt-key add myubtrepo-keyring.gpg

#### apt-get update 生成的软件包列表(下划线分隔目录,原目录下划线变成%5f)
/var/lib/apt/lists/_media_g_myubtrepo_dists_jaunty_main_binary-i386_Packages
/var/lib/apt/lists/_media_g_myubtrepo_dists_jaunty_Release
/var/lib/apt/lists/_media_g_myubtrepo_dists_jaunty_Release.gpg
/var/lib/apt/lists/_media_g_myubtrepo_dists_jaunty_universe_binary-i386_Packages
/*}}}*/

头像
lerosua
论坛版主
帖子: 8455
注册时间: 2007-11-29 9:41
联系:

Re: 创建自己的deb仓库

#2

帖子 lerosua » 2009-04-10 9:27

这个,帮顶。暂无此需要... :em06
头像
momova
帖子: 3381
注册时间: 2007-07-11 21:43
系统: archlinux
来自: 东江边

Re: 创建自己的deb仓库

#3

帖子 momova » 2009-04-10 12:42

我用aptoncd。
我来了,我看见了,我征服了!
求勾搭,不管饭。
头像
Jarson
帖子: 2371
注册时间: 2008-07-21 9:44
来自: 深圳
联系:

Re: 创建自己的deb仓库

#4

帖子 Jarson » 2009-04-10 12:49

mark
头像
wakedown
帖子: 72
注册时间: 2009-04-03 11:34

Re: 创建自己的deb仓库

#5

帖子 wakedown » 2009-04-10 13:26

:em11
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 创建自己的deb仓库

#6

帖子 tusooa » 2009-08-18 21:22

代码: 全选

18/08/2009 21:23:01
tusooa (~)
>> ls /var/www/tusooa-site/beta/archive/ubuntu/
dists  pool  project  update.bash  update.bash~  update_jaunty.bash~
18/08/2009 21:23:26
tusooa (~)
>> ls /var/www/tusooa-site/beta/archive/ubuntu/dists/
stable  support  testing  unstable
18/08/2009 21:23:32
tusooa (~)
>> ls /var/www/tusooa-site/beta/archive/ubuntu/dists/testing/
apt.conf  apt.conf~  Contents-amd64.gz  Contents-i386.gz  main  Release  Release.gpg  Sources  universe
18/08/2009 21:23:42
tusooa (~)
>>
cat > dists/jaunty/apt.conf <<"EOF"

代码: 全选

] ls -ld //
头像
guishugan
帖子: 379
注册时间: 2009-03-02 19:30
来自: 河北石家庄

Re: 创建自己的deb仓库

#7

帖子 guishugan » 2009-09-11 22:30

还是从简做起 :em06
除了真相,女人也是赤裸裸的
manbuzhe
帖子: 13
注册时间: 2008-05-09 22:39
联系:

Re: 创建自己的deb仓库

#8

帖子 manbuzhe » 2012-05-10 11:05

我按照如下方式建立仓库报错 。。。。

存在目录 pools/main/*.deb

mkdir -pv dists/jaunty/main/binary-amd64/

apt-ftparchive packages pools/main > dists/jaunty/main/binary-amd64/Packages

cat dists/jaunty/main/binary-amd64/Packages | gzip -9c > dists/jaunty/main/binary-amd64/Packages.gz

apt-ftparchive contents pools/main | gzip -9c > dists/jaunty/Contents-amd64.gz

cat > dists/jaunty/apt.conf <<"EOF"
APT::FTPArchive::Release {
Origin "Ubuntu";
Label "Ubuntu";
Suite "jaunty";
Codename "jaunty";
Version "9.04";
Architectures "amd64";
Components "main restricted universe multiverse";
Description "My test Ubuntu Depository";
};
EOF

apt-ftparchive -c dists/jaunty/apt.conf release dists/jaunty > dists/jaunty/Release


vim /etc/apt/sources.list

deb file:///mnt jaunty main

apt-get update

root@Aspire-4820TG:/mnt/dists/jaunty# apt-get update
忽略 file: jaunty InRelease
忽略 file: jaunty Release.gpg
获取:1 file: jaunty Release [1,528 B]
忽略 file: jaunty/main TranslationIndex
错误 file: jaunty/main i386 Packages
无法找到该文件
忽略 file: jaunty/main Translation-zh_CN
忽略 file: jaunty/main Translation-zh
忽略 file: jaunty/main Translation-en
W: 无法下载 file:/mnt/dists/jaunty/main/binary-i386/Packages 无法找到该文件
rediscover
帖子: 3173
注册时间: 2010-01-13 23:26

Re: 创建自己的deb仓库

#9

帖子 rediscover » 2012-08-19 11:00

用 mini-dak 多简单。
Here I am.
Ubuntu 桌面培训 - 全中文官方文档,含汉化截图,提供PDF
回复