Questions tagged «apt»

有关Debian及其衍生产品的标准软件包管理系统APT(高级包装工具)的使用,设计,功能等方面的问题。

6
在Debian上安装Git时未满足的依赖关系
我正在尝试安装git,Debian 8.6 Jessie并遇到了一些依赖问题。奇怪的是,在我最近Git适应Linux的同时,最近几次在VM中安装我没有任何问题。 apt-get install git 结果: The following packages have unmet dependencies: git : Depends: liberror-perl but is not installable Recommends: rsync but it is not installable E: Unable to correct problems, you have held broken packages. 更新 我的 sources.list 似乎与我的系统有关。我无法再正确安装任何东西。我在安装类似Pulseaudio几天前成功安装的东西时遇到了依赖性问题。

1
使用apt安装已安装软件包的推荐软件包
我之前安装了带有的软件包,但--no-install-recommends由于缺少这些软件包,因此现在缺少一些功能。有没有一种方法可以通过apt-get命令安装这些软件包而无需完全卸载(因为这也会删除大量依赖软件包)? 我知道我可以apt-cache depends *packagename* | grep Recommends用来获取这些软件包的列表,然后可以手动安装并手动将其设置为自动安装。但是我想知道您是否可以使用apt-get自动执行此操作。

4
正确的方法来获取与模式匹配的已安装软件包的列表?
我正在运行(相当近期)基于Debian的发行版的系统上。 我想生成一个与特定模式匹配的所有已安装软件包的简单列表。我可以通过运行说 apt list --installed "linux-image-*" | cut -d/ -f1 但是我得到了我不关心的行,例如: WARNING: apt does not have a stable CLI interface. Use with caution in scripts. Listing... 所以也许我最好不要使用apt。我可以像这样运行dpkg-query: dpkg-query --showformat='${Package}\n' --show "linux-image*" 但这不仅限于已安装的软件包。我可以用 dpkg-query --list "linux-image-*" | grep "ii" 但是然后我需要做大量的文本处理,谁能相信这些空间,对吗? 因此,底线是:获取与模式匹配的已安装软件包列表的正确方法是什么? 注意事项: 如果它可以是一个合适的正则表达式,而不只是一个shell glob,则可以加分。 不得不解析文本似乎不是一个理想的解决方案。如果这是您的建议,请说明为什么没有更好的方法。

1
倾向于安装比指定的软件包更多的软件包
我试图texmaker从存储库安装。为了进行安装,texlive我遵循此处描述的步骤。为此,我使用的控制文件是this。它包含文件texlive-binaries。 然后我试图安装texmaker的apt。它的依赖项列为 # apt-cache depends texmaker texmaker Depends: libc6 Depends: libgcc1 Depends: libpoppler-qt4-3 Depends: libqt4-network Depends: libqt4-xml Depends: libqtcore4 Depends: libqtgui4 Depends: libqtwebkit4 Depends: libstdc++6 Depends: zlib1g Depends: texmaker-data Recommends: aspell Recommends: ghostscript Recommends: netpbm Recommends: psutils texlive-local Recommends: texlive-latex-extra texlive-local |Recommends: <hunspell-dictionary> myspell-fr myspell-ru hunspell-an hunspell-ar hunspell-be hunspell-da hunspell-de-at …
11 debian  apt  latex 

2
为什么apt-key手册页建议不要使用其add命令?
apt-key的Ubuntu手册页包含以下有关以下内容的注释apt-key add: 注意:代替使用此命令,应将密钥环直接放置在/etc/apt/trusted.gpg.d/目录中,并使用描述性名称,并以“ gpg”或“ asc”作为文件扩展名。 我认为我从未在其他任何地方看到过此建议。托管自己的存储库的大多数项目都说要下载其密钥文件并使用进行添加apt-key。 该建议背后的动机是什么? 这是Ubuntu-ism,还是适用于任何基于APT的发行版?
10 apt 

2
如何使用我自己的标准软件包版本
我遇到了Nautilus的问题,除了下载源代码,进行一些更改并自行编译之外,没有找到其他解决方案。因此,现在我有两个版本的Nautilus,这是来自存储库的正式版本,还有一些改动。我想保留两者。 从应用程序内部启动Nautilus时,告诉应用程序使用我自己的Nautilus编译版本的好方法是什么?(例如,使用firefox打开“下载”文件夹) 我发现了firefox的调用,/usr/bin/nautilus所以我可以用一个指向我自己程序的符号链接代替它。但是,我相信在安装Nautilus更新后,此符号链接将被覆盖。我还能做些什么吗?
10 debian  apt 

9
如何重新创建/ var / lib / dpkg / status?
我已删除周围的一些文件/var/lib/dpkg/,即: /var/lib/dpkg/status /var/lib/dpkg/available /var/lib/dpkg/info/* 我了解Debian使用这些文件来保留有关已安装软件包的一些信息。现在,当我这样做时apt-get update,出现以下错误: Reading package lists... Error! E: Could not open file /var/lib/dpkg/status - open (2: No such file or directory) E: The package lists or status file could not be parsed or opened. 据我了解FHS,位于其中的文件/var不应该是系统关键的文件。评价者应为临时文件,日志,缓存等。 因此,有没有办法重新创建已删除的文件?

2
软件包升级后无法将文件系统重新安装回只读状态
在我的Debian系统上,我/在单独的分区上并已挂载read-only。只有/home/,/var/并且/tmp/是可写的。我还创建了Pre-Invoke和Post-Invoke apt hook,以便apt可以在安装或升级软件包时自动重新挂载系统以进行写入,并read-only在完成后将其重新挂载回: DPkg::Pre-Invoke {"mount -o remount,rw / ;}; DPkg::Post-Invoke {"mount -o remount / ;}; 整个设置工作良好,但有一个例外。有时,在安装/升级过程中,某些服务需要重新启动,或者在/挂载my时在短窗口中打开新文件read-write,这些文件会获得write许可打开。安装/升级完成后,我的Post-Invoke挂钩返回错误,因为它无法重新安装/到read-only。 有什么办法可以解决这个问题?这很烦人,因为在这种情况下,我通常必须重新启动服务器,这是不切实际的。 编辑 以下是我最新软件包升级的日志,该日志导致了所描述的错误: root@alpha# apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be upgraded: base-files curl libc-bin libc6 libcurl3 libcurl3-gnutls libmysqlclient18 libssl1.0.0 locales multiarch-support mysql-client …
10 debian  apt  readonly 

2
apt-get -f install卡在“损坏的文件系统tarfile”上
我apt-get在Raspberry Pi上遇到问题。这是我尝试安装软件包时的输出: pi@raspberrypi ~ $ sudo apt-get -f install cowsay Reading package lists... Done Building dependency tree Reading state information... Done You might want to run 'apt-get -f install' to correct these: The following packages have unmet dependencies: emacs23 : Depends: libm17n-0 (>= 1.6.1) but it is not going to …

2
SSH超时后如何安全地恢复智能分区升级?
我aptitude dist-upgrade在本地网络上通过SSH 启动。在某个时候,会话超时,但是升级没有完成(它留在了接受软件协议的屏幕之一中,我忘记了哪一个,所以我不知道升级的距离如何,但是关键是现在它闲着等待我接受)。 我通过SSH重新登录到服务器,并发现aptitude进程仍在运行。最安全的进行方式是什么?我没有使用过,screen所以有什么办法可以恢复正在运行的智能进程?如果不是,杀死并重新启动它的最安全方法是什么?
10 ssh  apt  aptitude 

5
在“ apt-get install”过程中出现“ tar:无法识别的选项--warning”
我刚apt-get upgrade在我的debian 5 vps上运行,却收到此错误: tar:无法识别的选项`--warning = no-timestamp' 现在,当我尝试安装其他软件包时,例如:imagemagick,我得到了相同的错误: li197-162:~# apt-get install imagemagick Reading package lists... Done Building dependency tree Reading state information... Done The following packages were automatically installed and are no longer required: pkg-config comerr-dev libssh2-1-dev libpcre3-dev libdb4.6-dev libsqlite3-dev libmysqlclient15-dev libldap2-dev libpcrecpp0 libexpat1-dev libpq5 libidn11-dev Use 'apt-get autoremove' to …
10 debian  upgrade  apt  tar 

2
查找要降级的早期版本
在Debian服务器上,我将SQLite软件包升级到版本,3.7.7但是发现它包含一个严重的bug,该bug破坏了包括Subversion存储库在内的几项功能。因此,我想降级到我以前使用的版本。但: 我不知道该版本是什么(我假设是3.7.6.3,但不确定)。 唯一的其他版本,我找到可供SQLite的包aptitude就是3.5.9.6这是我使用的颠覆包太早(这至少需要3.6)。 我如何识别并降级到我正在使用的SQLite版本,并且该版本可能仍在计算机的缓存中?或者,如果失败,我如何知道aptitude该软件包的中间版本在哪里下载?
10 debian  apt 


2
找不到软件包“ xcb-xrm”
我正在尝试安装很棒的4.0。要安装我运行的所有依赖项sudo apt-get build-dep awesome。如果我在很棒的目录中运行make,那么仍然缺少一些库: $ make Running cmake… -- git not found. -- asciidoc -> /usr/bin/asciidoc -- xmlto -> /usr/bin/xmlto -- gzip -> /bin/gzip -- ldoc -> /usr/bin/ldoc -- convert -> /usr/bin/convert -- Checking for modules 'glib-2.0;gdk-pixbuf-2.0;cairo;x11;xcb-cursor;xcb-randr;xcb-xtest;xcb-xinerama;xcb-shape;xcb-util>=0.3.8;xcb-keysyms>=0.3.4;xcb-icccm>=0.3.8;xcb-xkb;xkbcommon;xkbcommon-x11;cairo-xcb;libstartup-notification-1.0>=0.10;xproto>=7.0.15;libxdg-basedir>=1.0.0;xcb-xrm' -- No package 'xcb-xrm' found CMake Error at /usr/share/cmake-3.5/Modules/FindPkgConfig.cmake:367 (message): A required package …
10 apt  dpkg 

1
停止apt-get的交互式提示
apt-get在安装或升级软件包时,如何停止所有交互式提示? 我试图编写一个非交互式脚本来在服务器上安装软件包,每当升级需要安装新内核时,apt-get总是会忽略该-y选项,并提示我选择哪种选项来更新grub.lst。我一直想安装软件包维护者的版本。如何禁用此提示?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.