在使用乘客 + apache 设置服务器以在 Rails 上托管 ruby 时,我应该在哪里划清使用 apt-get 和 gem 之间的界限?
它甚至重要吗?
在考虑软件更新等时混合包管理系统感觉是错误的。
应该怎么做呢?
我已经在 Ubuntu 上使用 apt-get 几年了,并尝试了几次 aptitude。我在一些博客中读到,一旦您在系统上使用了其中一种工具,就应该坚持使用它,而不是使用另一种,因为它们的工作方式不同,并且会导致问题。
现在,在阅读apt-get 和 aptitude 之间有什么区别?,我不明白为什么。
那么这是真的吗?在这种情况下,像 Ubuntu 这样的系统可能会在后台使用 apt-get 进行自动更新,是否甚至建议使用 aptitude ?
从本质上讲,我期待在.list文件中/etc/apt/sources.list.d/。他们每个人都有一个deb条目;我很想知道是否有办法查看任何条目是否存在任何新发行版。
我正在编写一个脚本来执行一些apt命令,但我遇到了apt/dpkg数据库被锁定的潜在问题,因此我的脚本无法使用。我想/var/lib/dpkg/lock在做任何事情之前检查锁定文件(即),就像apt它运行它的命令一样,但我不知道如何apt执行锁定。
锁定文件始终存在,并且apt-get不会对该文件进行群集操作。否则将如何检查它是否在使用中?从strace我看到apt-get打开文件,但就是这样。在我的脚本中,我可以在打开文件的同时apt-get打开它。
我已经将一个软件包安装到我自己的 debian 软件包存储库中,如下所示:
$ sudo reprepro -b /var/packages/ubuntu includedeb maverick my-package_0.8-0_all.deb
my-package_0.8-0_all.deb: component guessed as 'main'
Exporting indices...
Run Code Online (Sandbox Code Playgroud)
我已经使用 apt-get install 在几台机器上安装了我的软件包。
我现在为我的软件添加了新功能,并希望将我的软件包的新次要版本添加到存储库,以便我可以使用 apt-get upgrade 更新我的机器。
我尝试这样做:
$ sudo reprepro -b /var/packages/ubuntu includedeb maverick my-package_0.9-0_all.deb
my-package_0.9-0_all.deb: component guessed as 'main'
Skipping inclusion of 'my-package' '1.0-0' in 'maverick|main|i386', as it has already '1.0-0'.
Skipping inclusion of 'my-package' '1.0-0' in 'maverick|main|amd64', as it has already '1.0-0'.
Run Code Online (Sandbox Code Playgroud)
看起来我需要告诉 reprepro 这是同一个包的新版本,但我不知道如何做到这一点。我已经多次阅读 reprepro 手册页并在网上搜索了几个小时,但我没有找到任何答案。
我错过了什么吗?
非常感谢。
我想知道如何在没有配置基于 grub-pc ncurses 的对话框的情况下在 ubuntu 10.04 衍生发行版上更新 grub-pc。我曾尝试检查debconf-get-selections之前和之后的变化以及以下方面的变化:
apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" --force-yes -fuy install grub-pc
Run Code Online (Sandbox Code Playgroud)
以及设置 DEBIAN_FRONTEND:
export DEBIAN_FRONTEND=noninteractive
Run Code Online (Sandbox Code Playgroud)
一切都无济于事,我希望做的是保留配置文件的本地版本并在脚本中使用此代码进行离线安装。
在 Ubuntu 中,使系统更新的最方便的方法是调用 apt-get update,然后调用 apt-get upgrade。但是,在作为生产环境一部分的系统上,通常的做法是首先在离线系统上测试更新,然后应用已在生产系统上测试过的完全相同的更新。我想知道这是否可以通过 apt-get upgrade 进行 - 有没有办法更详细地指定升级,例如通过指定执行升级的日期?
从 apt-get 安装东西时,我经常遇到与运行在 OpenVZ 中的 Ubuntu 服务器上的 Java 和证书相关的错误。我很确定这与 Java 分配内存的方式有关。我知道失败计数器privvmpages非常高,所以问题一定是 Java 达到了这个限制。
我已经读到服务器 VM 将预先分配大量内存来抢占性能问题,但客户端 VM 不会这样做,并且可能更适合我正在做的事情。我弄乱了 jvm.cfg 使系统转到客户端 VM,但收到一个错误,说它找不到客户端 VM。
我已经尝试用 -Xms 和 -Xmx 设置调用 Java 的脚本替换 Java 二进制文件,这解决了我从命令行调用基本内容时的问题,但在执行 apt-get 配置证书等操作时却没有解决。
我不知道接下来要尝试什么。我需要让它工作,但简单地增加privvmpages不是一个可用的选项。我在下面粘贴了实际错误。
Setting up ca-certificates-java (20100412) ...
creating /etc/ssl/certs/java/cacerts...
Could not create the Java virtual machine.
error adding brasil.gov.br/brasil.gov.br.crt
error adding cacert.org/cacert.org.crt
error adding debconf.org/ca.crt
error adding gouv.fr/cert_igca_dsa.crt
error adding gouv.fr/cert_igca_rsa.crt
error adding mozilla/ABAecom_=sub.__Am._Bankers_Assn.=_Root_CA.crt
error adding mozilla/AOL_Time_Warner_Root_Certification_Authority_1.crt
error adding mozilla/AOL_Time_Warner_Root_Certification_Authority_2.crt
error adding mozilla/AddTrust_External_Root.crt
error …Run Code Online (Sandbox Code Playgroud) 我在 Ubuntu 上,/etc/nginx/sites-enabled/default当我不小心删除了整个文件夹时,我试图恢复原始设置。通过卸载和重新安装 nginxapt-get不会重新创建原始文件夹。
我能做些什么来恢复它们?
我知道我有一些包准备在运行时被删除apt-get autoremove,但我只想知道它们是哪些,而不是删除它们。如何在不删除它们的情况下列出将要删除的内容?或者,如何运行上述命令并强制它提示我?