Это - сырой ответ, и я надеюсь, что кто-то еще добивается большего успеха, но если никакая другая поверхность идей, присоединение gdb и не вынуждает процесс сделать несколько syscalls:
(gdb) attach 12345 # target PID
(gdb) p close(2)
(gdb) p open("errfile", O_WRONLY)
(gdb) c
Перечислять обеспечение пакетов mail-transport-agent
:
$ aptitude search '~Pmail-transport-agent'
p citadel-mta - complete and feature-rich groupware server
p courier-mta - Courier mail server - ESMTP daemon
p dma - lightweight mail transport agent
p esmtp-run - user configurable relay-only MTA - the reg
p exim4-daemon-heavy - Exim MTA (v4) daemon with extended feature
p exim4-daemon-light - lightweight Exim MTA (v4) daemon
p masqmail - mail transport agent for intermittently co
p msmtp-mta - light SMTP client with support for server
p nullmailer - simple relay-only mail transport agent
i postfix - High-performance mail transport agent
p sendmail-bin - powerful, efficient, and scalable Mail Tra
p ssmtp - extremely simple MTA to get mail off the s
p xmail - advanced, fast and reliable ESMTP/POP3 mai
Сделайте это aptitude search '~Pmail-transport-agent ~i'
только перечислять установленные пакеты (если таковые имеются).
Перечислять все виртуальные пакеты, обеспеченные в настоящее время устанавливаемыми пакетами:
aptitude search '~Rprovides:~i ~v'
См. руководство способности для объяснения шаблонов поиска.
Можно получить все виртуальные пакеты из АВТОРИТЕТНОГО СПИСКА ВИРТУАЛЬНЫХ ИМЕН ПАКЕТА. Что касается определения, если виртуальный пакет установлен, я использую dpkg -l
и то, что это имеет код выхода 0, если пакет установлен и код выхода 1, если это не установлено.
dpkg -l mail-transport-agent &> /dev/null; echo $?
dpkg -l mail-transport-agent
может возвратиться 0, даже если нет никакого пакета, если это, который в настоящее время устанавливается. Я думаю, что это основано на присутствии в /var/dpkg/lib/available
но я не уверен. Я действительно проверял это dpkg -l foo
возвраты 1 для пакета, который я никогда не устанавливал, но 0 для пакета, которого я просто произвел чистку.
– Gilles 'SO- stop being evil'
17.10.2013, 13:17
проблема здесь состоит в том, что существует тонкое различие между виртуальными пакетами и пакетами, обеспеченными другими пакетами.
различие, что пакет может обеспечить реальный пакет также, не только виртуальный пакет.
во всяком случае следующее будет искать все пакеты, которые обеспечивают пакет и распечатают и имя пакета и пакеты, которые это обеспечивает:
grep-available -sPackage -sProvides -FProvides -e '^.'
чтобы найти, установлен ли какой-либо пакет в Вашей системе, которая обеспечивает, учитывая один (например, агент передачи почты), использовать
grep-status -sPackage -sProvides -FProvides "mail-transport-agent"
grep-available
и grep-status
доступны, после того как Вы установили dctrl-tools
пакет.
– Totor
17.10.2013, 17:17
Вы можете определить наличие данного виртуального пакета, используя apt-cache showpkg <virtual>
для отображения списка пакетов-кандидатов, а затем dpkg -l <canddate> <candidate>...
для отображения статуса установки кандидатов.
Например:
$ apt-cache showpkg awk
$ dpkg -l original-awk mawk gawk
Вот полная распечатка:
$ apt-cache showpkg awk
Package: awk
Versions:
Reverse Depends:
base-files,awk
base-files,awk
Dependencies:
Provides:
Reverse Provides:
mawk:i386 1.3.3-17ubuntu2
gawk:i386 1:4.0.1+dfsg-2.1ubuntu2
original-awk 2012-12-20-1
mawk 1.3.3-17ubuntu2
gawk 1:4.0.1+dfsg-2.1ubuntu2
$ dpkg -l original-awk mawk gawk
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============-============-============-=================================
ii gawk 1:4.0.1+dfsg amd64 GNU awk, a pattern scanning and p
ii mawk 1.3.3-17ubun amd64 a pattern scanning and text proce
dpkg-query: no packages found matching original-awk
Я считаю, что dpkg
и apt-cache
являются инструментами более низкого уровня, чем aptitude
, grep-available
и grep-status
. Использование инструментов более низкого уровня может быть или не быть преимуществом, в зависимости от ваших конкретных требований.
aptitude
. Мне нравится explaination @umläute все же. – Totor 31.12.2013, 16:41aptitude search '~Pmysql-server ~i'
который даетmariadb-server-10.0
иmariadb-server-core-10.0
, но когда я делаюaptitude search '~Rprovides:~i ~v'
, Я не вижуmysql-server
в списке... Однако я действительно вижуvirtual-mysql-client
,virtual-mysql-client-core
,virtual-mysql-server
иvirtual-mysql-client-core
в списке. – Totor 09.06.2016, 18:14