Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何为debian non-free创建脱机存储库?_Linux_Debian_Packages - Fatal编程技术网

Linux 如何为debian non-free创建脱机存储库?

Linux 如何为debian non-free创建脱机存储库?,linux,debian,packages,Linux,Debian,Packages,我正在使用debian Squence,希望为debian非免费分支创建一个脱机存储库或cd/dvd。我环顾了一下互联网,发现没有iso映像,也没有用于创建此类映像的jidgo文件,因此我想到使用以下方法从debian软件包服务器之一获取软件包: wget -r --no-parent -nH -A*all.deb,*any.deb,*i386.deb \ ftp://debian.oregonstate.edu/debian/pool/non-free/ 我知道我必须在我的*/etc/a

我正在使用debian Squence,希望为debian非免费分支创建一个脱机存储库或cd/dvd。我环顾了一下互联网,发现没有iso映像,也没有用于创建此类映像的jidgo文件,因此我想到使用以下方法从debian软件包服务器之一获取软件包:

 wget -r --no-parent -nH -A*all.deb,*any.deb,*i386.deb \
 ftp://debian.oregonstate.edu/debian/pool/non-free/
我知道我必须在我的
*/etc/apt/sources.list*
中使用file:来表示本地存储库,但我如何实际创建一个存储库,以便apt或aptitude理解这一点

(在有疑问的编辑中回答。转换为社区wiki答案。请参阅)

OP写道:

更新:通过一些丑陋的技巧,我能够从池和dist文件夹中提取所需的数据

我使用解压缩的
Package.gz
来执行此操作:

grep '^Package\:.*' Packages|awk '{print $2}' >> Names.lst
grep '^Version\:.*' Packages|awk '{print $2}' >> Versions.lst
grep '^Architecture\:.*' Packages|awk '{print $2}' >> Arch.lst
使用
vim
我在文件
Versions.lst
中找到并删除“:”,并生成一个较短的
Content.lst
文件,使用bash工具更容易解析:

paste Names.lst Versions.lst Arch.lst >> Content.lst
现在我这样做:

cat content.lst | while read line; \
do echo "$(echo $line|awk '{print $1}')\
_$(echo $line|awk '{print $2}')_$(echo $line|awk '{print $3}')";\
done >> content.lst.tmp && mv content.lst.tmp content.lst
这会在我需要的debian目录中生成文件名。使用
wget
完成下载时,我会找到并
rsync
所需的文件名
mv
在这里不起作用,因为我需要它在
包中引用的结构。gz

cat content.lst |while read line; \
do find debian/ -type f -name ${line}.deb -exec \
rsync -rtpog -cisR {} debian2/ \; ;done 
rm -r debian && mv debian2 debian
为了接收完整的dists树结构,我再次使用了
wget

wget -c -r --no-parent -nH -A*.bz2,*.gz,Release \
ftp://debian.oregonstate.edu/debian/dists/squeeze/non-free/binary-i386/
我想我现在唯一要做的就是创建
Contents.gz
文件

使用
apt ftparchive
程序可以轻松创建
Contents.gz
文件:

apt-ftparchive contents > Contents-i386 && gzip -f Contents-i386

我建议阅读Debian关于建立自己的apt回购的文档:哦,谢谢,我没有在那里看到它。apt ftparchive为我解决了这个问题。