目前我正在运行 Wheezy 32 位,最近我从官方存储库安装了 FreeSWITCH。然而,我意识到,为了达到我想要的目的,我需要自己从源代码重建 FreeSWITCH,这比二进制版本号要新一些。安装。
只是为了确保我以后可以从官方存储库重新安装/重用 FreeSWITCH 二进制文件,而不必再次获取软件包 .deb 文件(这在我的慢速连接上花费了相当长的时间) - 我想因此卸载,而将包文件保存在 apt 缓存中。我怎样才能做到这一点?
此外,FreeSWITCH 软件包安装是使用元软件包(即“freeswitch-meta-vanilla”)完成的,该元软件包引入了所有其他 FreeSWITCH 软件包。我需要以不同的方式执行此卸载吗?
答案1
我在 ubuntuforums 上发现了这个帖子,标题为:HOWTO:制作和恢复 apt 缓存备份。
apt 的缓存
当您在 Ubuntu/Debian 上安装.deb
文件时,它们将存储在以下目录中:/var/cache/apt/archives/
.因此,如果您想将它们安全地保存在其他地方,您可以随时将它们复制出此处。这些文件应该被称为FreeSWITCH*.deb
.
dpkg 重新打包
您还可以使用名为 的工具dpkg-repack
,该工具将获取现有已安装的软件包并将其重新打包回 .deb 文件。
dpkg-repack 从已安装的 debian 软件包中创建一个 .deb 文件。如果在解压包时对包进行了任何更改(即修改了 /etc 中的文件),则新包将继承这些更改。
此实用程序可以轻松地将软件包从一台计算机复制到另一台计算机,或者重新创建系统上安装但在其他地方不再可用的软件包,或者在升级软件包之前存储软件包的当前状态。
可以像这样安装apt-get install dpkg-repack
。
笔记:重新打包软件包时,生成的.deb
文件将包含进行重新打包的系统上的任何配置文件,而不是最初包含的配置文件的原始版本!
例子
假设我想重新打包已经安装的bzip2
应用程序。
$ sudo dpkg -l|grep bzip2
ii bzip2 1.0.6-4 amd64 high-quality block-sorting file compressor - utilities
以下命令将其打包:
$ sudo dpkg-repack bzip2
dpkg-deb: warning: './dpkg-repack-16687/DEBIAN/control' contains user-defined field 'Original-Maintainer'
dpkg-deb: warning: ignoring 1 warning about the control file(s)
dpkg-deb: building package `bzip2' in `./bzip2_1.0.6-4_amd64.deb'.
.deb
您可以像这样确认文件的内容:
$ sudo dpkg -c bzip2_1.0.6-4_amd64.deb |head -15
drwxr-xr-x root/root 0 2013-08-22 00:08 ./
drwxr-xr-x root/root 0 2013-08-22 00:08 ./bin/
-rwxr-xr-x root/root 31152 2012-08-03 12:30 ./bin/bunzip2
-rwxr-xr-x root/root 2140 2012-08-03 12:30 ./bin/bzdiff
-rwxr-xr-x root/root 4877 2012-08-03 12:30 ./bin/bzexe
-rwxr-xr-x root/root 3642 2012-08-03 12:30 ./bin/bzgrep
-rwxr-xr-x root/root 31152 2012-08-03 12:30 ./bin/bzcat
-rwxr-xr-x root/root 10376 2012-08-03 12:30 ./bin/bzip2recover
-rwxr-xr-x root/root 1297 2012-08-03 12:30 ./bin/bzmore
-rwxr-xr-x root/root 31152 2012-08-03 12:30 ./bin/bzip2
drwxr-xr-x root/root 0 2013-08-22 00:08 ./usr/
drwxr-xr-x root/root 0 2013-08-22 00:08 ./usr/share/
drwxr-xr-x root/root 0 2013-08-22 00:08 ./usr/share/man/
drwxr-xr-x root/root 0 2013-08-22 00:08 ./usr/share/man/man1/
-rw-r--r-- root/root 1873 2012-08-03 12:30 ./usr/share/man/man1/bzmore.1.gz
...
...
答案2
只需用或其他方式卸载apt-get remove
即可。这不会删除下载的文件。仅当您运行apt-get clean
、使用 aptitude 中的“clean”命令或在包管理工具中执行类似操作时,才会删除下载的文件。
如果您想确保不会意外删除这些软件包,请在另一个目录中创建一个副本。您只需将文件复制回来即可将包注入回下载缓存中.deb
。