Я использую 15.04.
Итак, я работаю с git и установил стандартную версию. Я установил ключи ssh и смог клонировать один из моих репозиториев в нужную папку. Все работало отлично, и тогда я решил, что это хорошая идея - установить больше пакетов. Я побежал sudo apt-get install git-all
. Я смотрю на коды ошибок, теперь приходится иметь дело с выскочкой.
start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
No apport report written because the error message indicates its a followup error from a previous failure.
dpkg: error processing package runit (--configure):
subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of git-daemon-run:
git-daemon-run depends on runit; however:
Package runit is not configured yet.
dpkg: error processing package git-daemon-run (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
runit
git-daemon-run
E: Sub-process /usr/bin/dpkg returned an error code (1)
Вот что происходит, когда я даже обновляю / обновляю свою систему. На данный момент все, что я хочу сделать, это иметь возможность установить программное обеспечение и обновить мое текущее программное обеспечение. Есть ли способ, которым я могу потенциально решить эту проблему или хотя бы исправить ее?
Редактировать: К счастью, эта проблема была решена только через день или два после того, как это произошло. Принятый ответ сработал отлично и позаботился о моей проблеме
Вам нужно будет принудительно удалить runit
. Запуск sudo dpkg -r runit
должен сработать. Возможно, вам понадобится использовать одну из опций --force-*
.
Попробуйте вместо этого:
sudo apt update
sudo apt --purge remove git
sudo apt install git
.
Вы, вероятно, используете Ubuntu на виртуальном хосте. Если это так, вам нужно будет изменить initctl, чтобы он возвращал true, выполнив следующие действия. Во-первых, вам нужно сообщить dpkg, что вы собираетесь изменить установку пакета выскочки, используя:
sudo dpkg-divert --local --rename --add /sbin/initctl
Затем вам нужно создать фиктивный initctl как ссылку на true:
ln -s /bin/true /sbin/initctl
Попробуйте удалить git-all
, установите git-daemon-sysvinit
, а затем снова установите git-all
. Если вы посмотрите на свойства пакета в Synaptic, то увидите, что git-all
зависит от либо от git-daemon-run
, либо от git-daemon-sysvinit
. git-daemon-run
- это тот, который по каким-то причинам устанавливается по умолчанию, даже если он сломан в Ubuntu 15.04 и выше. (См. https://bugs.launchpad.net/ubuntu/+source/runit/+bug/1448164) Но если вы сначала установите git-daemon-sysvinit
вручную, то зависимость git-all
будет удовлетворяться пакетом, который на самом деле работает. Затем вы можете установить git-all
, и всё будет в порядке.
Это происходит из-за этой ошибки https://bugs.launchpad.net/ubuntu/+source/runit/+bug/1448164
Вам необходимо удалить runit
и git-daemon-run
. Это должно решить проблему.
sudo apt-get purge runit git-daemon-run
Не забудьте посетить отчет об ошибке и нажать Да, эта ошибка затрагивает меня .
git-all
без ошибок Кажется, вы может иметь git-all
с поддержкой демона без сбоя при этой ошибке. git-all
рекомендует пакет git-daemon-run
или git-daemon-sysvinit
. apt
выбирал git-daemon-run
в качестве первого выбора. Но если вы явно укажете нужный пакет (например, git-daemon-sysvinit
), apt
не будет пытаться установить git-daemon-run
.
Все, что вам нужно сделать, это
sudo apt-get install git-all git-daemon-sysvinit
Надежда, что это поможет.