我即将将服务器从一个 Ubuntu 机器移到另一个机器上。我不是将旧盒子克隆到新盒子;我正在创建一个新系统,并将根据需要移动数据。我想将旧盒子上的所有软件安装到新盒子上。
有没有一种简单的方法可以找到我随时间给出的所有“sudo apt-get install”命令的历史记录?也就是说, dpkg -l 向我显示所有已安装的软件包,但不显示安装了它们的顶级软件包。如果dpkg有办法给我安装包,我可以在那里找到唯一的;否则,我想说“你安装了这 24 个软件包”。
当我 apt-get 一个包时,如何获取已安装或将要安装的文件列表?相反,我能否找到导致安装特定文件的软件包?
我正在为 a ubuntu vagrant vm, on a构建配置脚本ubuntu host,12.10 64bit当安装以下软件包时:
sudo apt-get -y install php5-xsl graphviz php-pear unison
Run Code Online (Sandbox Code Playgroud)
我收到警告:
dpkg-reconfigure: unable to re-open stdin: No file or directory
Run Code Online (Sandbox Code Playgroud)
已经尝试过搜索,但结果是使用 apt-get 可能抛出所有其他错误,无法找到如何抑制上述警告。安装工作,但上面的警告导致 vagrant up 标准输出中的错误行。
任何人都知道可能是什么原因或如何抑制警告
我正在使用 puppet 来管理一组 debian 服务器。我需要更改集群上每台机器的时区。执行此操作的正确 debian 方法是使用dpkg-reconfigure tzdata. 但是如果我使用对话框,我似乎只能改变它。有什么方法可以从 shell 自动执行此操作,以便我可以编写一个 Exec 来简化此操作?
如果没有,我认为下一个最好的方法可能是让 puppet 分发/etc/timezone并/etc/localtime在整个集群中使用正确的数据。
任何输入表示赞赏!
我有一个 debian(技术上是 ubuntu)源包,即 .dsc、.tar.gz 等,我想构建它。将dpkg-buildpackage失败,因为我没有所有的编译依赖。
通常我会使用apt-get build-dep,但这个包不在 apt 中。
给定一个源包,是否有一种“干净”、“正确”的方式来安装所有构建依赖项。我知道我可以打开 debian/control 文件,但我很好奇是否有“正确”的方法。
我已经安装了build-essential,并且拥有所有正常的编译器等,这个包需要额外的软件。
我希望能够查看与要升级的程序包关联的脚本/触发器,以便我可以判断它是否会导致 Web 服务器重新启动。我找不到一个 aptitude 选项来向我展示(或 apt/dpkg);我能得到的最好的是内容(文件)。是否有一些我错过的模拟/详细/内容开关组合会显示这一点?
此外,如果某个包导致发生某些事情(例如服务重启),而我现在不想发生这种情况,是否有办法在不运行部分或全部脚本的情况下安装该包?
随着rpm -qV openssh-server我将获得与默认值相比已更改的文件列表。
~$ rpm -qV openssh-server
S.?....T. c /etc/ssh/sshd_config
~$
Run Code Online (Sandbox Code Playgroud)
可以dpkg在 Ubuntu 上做同样的事情吗?
我试图找出使用来自本地源 deb 文件的 puppet 更新/升级 deb 包的正确方法。我当前的配置看起来像这样......
class adobe-air-2-0-4 {
file { "/opt/air-debs":
ensure => directory
}
file { "/opt/air-debs/adobeair-2.0.4.deb":
owner => root,
group => root,
mode => 644,
ensure => present,
source => "puppet://puppet/adobe-air-2-0-4/adobeair-2.0.4.deb"
}
package { "adobeair":
provider => dpkg,
ensure => installed,
source => "/opt/air-debs/adobeair-2.0.4.deb"
}
}
Run Code Online (Sandbox Code Playgroud)
我首先将 deb 文件复制到客户端计算机,然后使用“package”,提供程序设置为“dpkg”。这有效,我安装了正确的版本。
我的问题是将来更新此软件包的正确方法是什么。我可以简单地更改源文件,puppet 会知道它是一个不同的版本并更新这个包吗?puppet 如何确定它安装的软件包版本与源 deb 文件的版本?
我对 puppet 还很陌生,所以如果您对我现有的配置有任何改进建议,我们将不胜感激。
每次安装任何软件包或执行apt-get upgrade. 不确定是什么原因造成的;这是在我的 OpenVZ 服务器上全新安装的 Debian,我没有更改任何 dpkg 设置。
下面是一个例子:
root@debian:~# apt-get install cowsay
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
filters
The following NEW packages will be installed:
cowsay
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 21.9 kB of archives.
After this operation, 91.1 kB of additional disk space will be used.
Get:1 http://ftp.us.debian.org/debian/ unstable/main cowsay all 3.03+dfsg1-4 [21.9 kB]
Fetched 21.9 …Run Code Online (Sandbox Code Playgroud) 我dpkg-buildpackage在获得apt-get source nginxnginx 的 backports 版本并修改debian/rules以包含 uwsgi 模块后运行。命令的最后结果是:
dpkg-deb: building package `nginx' in `../nginx_0.7.67-3~bpo50+1_i386.deb'.
dpkg-deb: building package `nginx-dbg' in `../nginx-dbg_0.7.67-3~bpo50+1_i386.deb'.
signfile nginx_0.7.67-3~bpo50+1.dsc
gpg: keyring `/home/shogun/.gnupg/secring.gpg' created
gpg: skipped "Faidon Liambotis <paravoid@debian.org>": secret key not available
gpg: [stdin]: clearsign failed: secret key not available
dpkg-genchanges >../nginx_0.7.67-3~bpo50+1_i386.changes
dpkg-genchanges: warning: the current version (0.7.67-3~bpo50+1) is smaller than the previous one (0.7.67-3)
dpkg-genchanges: not including original source code in upload
dpkg-buildpackage: binary and diff upload (original source NOT …Run Code Online (Sandbox Code Playgroud)