使用dpkg
,我看到 Chef 版本 11.2.0 当前已安装:
$ dpkg -l | grep -i 'chef'
ii chef 11.2.0-1.ubuntu.11.04 The full stack of chef
我正在构建另一台服务器并想使用它精确的包。我假设要么将它放在某处,apt
要么dpkg
将其放在某处,我如何确定原始安装程序位于何处?
我看到了一堆.deb
文件/var/cache/apt/archives/
,但似乎没有一个是针对 Chef 的。
编辑:
我在 Opscode 网站上找到了 debian 安装程序:
使用安装后sudo dpkg -i chef_11.2.0-1.ubuntu.11.04_amd64.deb
,我尝试locate
了沃尔蒂纳托,并且没有返回任何结果。
那么我是否可以假设安装的软件包手动像这样的没有添加到本地 apt 档案中?
答案1
你可以寻找它:
locate --regexp 'chef.*deb'
/var/cache/apt/archives
或者,如果已被清理,您可以获得一份新的副本。
请参阅man apt-get
,其中部分内容如下:
NAME
apt-get - APT package handling utility -- command-line interface
SYNOPSIS
apt-get [-asqdyfmubV] [-o=config_string] [-c=config_file] [-t=target_release] [-a=architecture] {update | upgrade | dselect-upgrade | dist-upgrade |
install pkg [{=pkg_version_number | /target_release}]... | remove pkg... | purge pkg... |
source pkg [{=pkg_version_number | /target_release}]... | build-dep pkg [{=pkg_version_number | /target_release}]... |
download pkg [{=pkg_version_number | /target_release}]... | check | clean | autoclean | autoremove | {-v | --version} | {-h | --help}}
特别是download pkg [{=pkg_version_number | /target_release}]
后面的部分:
download
download will download the given binary package into the current directory.
这apt-get download chef=11.2.0-1.ubuntu.11.04
就是我要开始的地方。我还没有测试过这个命令
答案2
因此,除了我在评论中发布的内容之外,经过一些搜索后,我发现了一个生成精确存储库的命令 - apt-cache policy packagename
。
例子:
$ apt-cache policy chef
chef:
Installed: (none)
Candidate: 11.8.2-2
Version table:
11.8.2-2 0
500 http://us.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages