“E: подпроцесс/usr/bin/dpkg возвратил код ошибки (1)”, Что это означает?

Это - больше проблемы маршрутизации. Необходимо изменить таблицу маршрутизации рабочей станции для добираний до работы.

Давайте предположим, что eth0 Машины A имеет IP 10.10.1.1 и wlan0 имеет IP 172.16.1.1.

Необходимо изменить таблицу маршрутизации машины так, чтобы маршрут по умолчанию указал на wlan0 в то время как маршрут для подсети 10.10.1.0 должен указать на eth0.

Можно сделать это при помощи iproute2 пакета.

Можно посмотреть на машину таблица маршрутизации:

$ sudo ip route show

Это должно показать Вам строку, указав, что Ваш шлюз по умолчанию является eth0. Необходимо удалить это использование строки после команды:

$ sudo ip route del default dev eth0

затем добавьте новый маршрут по умолчанию через wlan0.

$ sudo ip route add default dev wlan0 

И добавьте маршрут к другой машине B для маршрутизации трафика для того поля с помощью eth0

$ sudo ip route add 10.10.1.0/24 dev eth0
31
13.05.2015, 17:24
1 ответ

Это сообщение является общим. Это просто означает, что экземпляр dpkg, вызванный apt/apt-get, по каким-то причинам не удался. Он не объясняет, почему, как, и не дает подсказок, как его решить. Как диагностическое сообщение, это не полезно.

Нужно прочитать строки перед сообщением (иногда их довольно много), чтобы найти реальную ошибку, которая мешает завершить установку.

Да, но как ее решить?

Единого способа ее решения нет. Причин, по которым это может произойти, так много, что бесполезно пытаться перечислить их все в одном сообщении. Каждое обстоятельство почти уникально для данного пакета/окружения.

Но есть искупление. Тот факт, что вы видите это сообщение, означает, что, вероятно, в строках перед сообщением есть более важная информация. Для иллюстрации я воспользуюсь примером:

(Reading database ... 81657 files and directories currently installed.)
 Removing mongodb-10gen ...
 arg: remove
 invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
 dpkg: error processing mongodb-10gen (--remove):
  subprocess installed pre-removal script returned error exit status 100
 invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
 dpkg: error while cleaning up:
  subprocess installed post-installation script returned error exit status 100
 Errors were encountered while processing:
  mongodb-10gen
 E: Sub-process /usr/bin/dpkg returned an error code (1)

Теперь, чтобы найти проблему, вам нужно прочитать в обратном порядке:

  • E: Sub-process /usr/bin/dpkg вернул код ошибки (1) не говорит мне ничего полезного. Так что двигаемся дальше.
  • E: Ошибки возникли во время обработки: mongodb-10gen просто говорит мне, в каком пакете возникли проблемы. Это полезно, но недостаточно.
  • скрипт после установки подпроцесса вернул состояние выхода из ошибки 100: это говорит мне о том, что скрипт, который вышел из строя, был постинсталляционным, выполненным в пост-инсталляции. В некоторых ситуациях это пригодится, но не в этой.
  • dpkg: ошибка при очистке: здесь нет ничего полезного.
  • invoke-rc.d: неизвестный initscript, /etc/init.d/mongodb не найден. BINGO! Это говорит нам о том, что invoke-rc.d, двоичный файл, который управляет init-скриптом в большинстве систем, похожих на Debian, вышел из строя. Он провалился, потому что не смог найти скрипт /etc/init.d/mongodb. Это плохо. Нам нужно создать его или скопировать откуда-нибудь ещё, чтобы он снова заработал. Переустановка пакета также обычно является опцией для файла , не найденного ошибок.

    В этом случае сообщать об ошибке не нужно, так как вероятно, что именно мы удалили скрипт, но если вы полностью уверены, что не трогали файл (debsums -sla должны подтвердить это), то сообщите об ошибке.

Итак, что именно вам нужно, чтобы получить помощь? В идеале, полный вывод проблемы. Также полезно включить вывод sudo dpkg -C и sudo apt-get check, и вывод apt-cache policy package1 package2..., где "package1 package2..." включает все пакеты с проблемами.

.
30
27.01.2020, 19:38

Теги

Похожие вопросы