web-dev-qa-db-ja.com

debconfのためにnginxを更新できません

私は14.04.5 LTSです。通常のapt-getアップグレードを実行すると、このエラーが発生します。

Setting up nginx-common (1.10.1-3+trusty1) ...
dpkg: error processing package nginx-common (--configure):  
 subprocess installed post-installation script returned error exit status 1

「パッケージnginx-commonはまだ構成されていません。」などによって引き起こされる後続のエラーはすべて省略しました。

.postinstをデバッグするために this answer のプロセスに従いましたが、3行目を超えることはありません:. /usr/share/debconf/confmodule –それが1を返すものです。

私はこのソリューションを試しましたが、助けにはなりませんでした。debconfは間違いなくアクセス可能です。そして、 これらのもの (エラーが続く)。私が知る限り、含まれているconfファイルにはipv6 listenディレクティブはありません。

Debconfをデバッグしてどのように失敗するのかを知る手掛かりがありません。誰が私が次に試すべきことを知っていますか?


編集:新しいアップデート、それらはインストールされますが、最後にこのエラーが表示されます:

Setting up nginx-full (1.10.1-3+trusty2) ...
initctl: invalid command: upgrade
Try `initctl --help' for more information.
invoke-rc.d: initscript nginx, action "upgrade" failed.

解決済みとしてマークする必要があるかどうかわかりません。

5
Walf

この特定の問題は修正されました。パッケージを更新してください!


UbuntuリポジトリLP Bug#1637058

Ubuntu Zestyが提案したリポジトリ(これは開発中のリリースです。これを使用していないことを願っています...)、1.10.1-0ubuntu5この問題に対処します。

Ubuntu Trusty、Xenial、およびYakketyでは、セキュリティチームは、この問題に対処するためにパッケージの更新バージョンをリリースし、パッケージ。この情報はバグで詳しく説明されており、対応する buntu Security Notice(USN-3114-2) で非常に簡単に説明されていますが、この問題はパッケージの以下のバージョンで修正されています。

  • Ubuntu Trusty:1.4.6-1ubuntu3.7(セキュリティおよび更新リポジトリ)
  • Ubuntu Xenial:1.10.0-0ubuntu0.16.04.4(セキュリティおよび更新リポジトリ)
  • Ubuntu Yakkety:1.10.1-0ubuntu1.2(セキュリティおよび更新リポジトリ)

Ubuntu Preciseリポジトリ内のバージョンは、最近の更新を促すCVEを導入した方法で変更されたことがないため、影響を受けません。 (これはUbuntuリポジトリにのみ適用され、PPAには適用されません。)


PPALP Bug#16372

この問題に対処する修正版パッケージをステージングPPAにアップロードし、修正プログラムを実装しました。これらは問題なくビルドされ、2016年10月27日(UTC-04:00)12:56 PMの時点で、LaunchpadのメインMainlineおよびStable PPAにコピーされました。

これには、Precise、Trusty、Xenial、およびYakketyの修正が含まれます。 PPAにはまだZestyサポートがありません。


義務的開示:

私はnginxパッケージを担当するUbuntu Server Teamの主要人物です。 https://launchpad.net/~nginx にあるチームの下にあるPPAも保守しています。

また、この問題についての直接的な知識と、修正が利用可能になるプロセスについても知っています。これは、最近行われたセキュリティ更新とDebianに影響する問題の発見を支援したためです。

9
Thomas Ward

公式の固定パッケージがリリースされました。それらを使用してください

TL; DR一番下までスクロール

自分でこの問題に遭遇しました。

さらにデバッグするには、次の環境変数を設定します。

export DEBCONF_DEBUG=developer

そうすれば、debconfが何をしているかを確認できます。

今実行します

dpkg --configure --pending

そして、以下を見ることができます:

 Setting up nginx-common (1.10.1-3+xenial1) ...
 debconf (developer): frontend started
 debconf (developer): frontend running, package name is nginx-common
 debconf (developer): starting /var/lib/dpkg/info/nginx-common.config configure 1.10.1-3+xenial0
 dpkg: error processing package nginx-common (--configure):
 subprocess installed post-installation script returned error exit status 1
 dpkg: dependency problems prevent configuration of libnginx-mod-http-image-filter:
 libnginx-mod-http-image-filter depends on nginx-common (= 1.10.1-3+xenial1); however:
 Package nginx-common is not configured yet.

これで、/var/lib/dpkg/info/nginx-common.configスクリプトを編集して、変更することができます

#!/bin/sh

#!/bin/sh -xもデバッグを有効にします。

dpkg --configure --pendingを再度実行すると、次のように表示されます。

Setting up nginx-common (1.10.1-3+xenial1) ...
debconf (developer): frontend started
debconf (developer): frontend running, package name is nginx-common
debconf (developer): starting /var/lib/dpkg/info/nginx-common.config configure 1.10.1-3+xenial0
+ set -e
+ . /usr/share/debconf/confmodule
+ [ ! 1 ]
+ [ -z  ]
+ exec
+ [  ]
+ exec
+ DEBCONF_REDIR=1
+ export DEBCONF_REDIR
+ logdir=/var/log/nginx
+ log_symlinks_check 1.10.1-3+xenial0
+ [ -z 1.10.1-3+xenial0 ]
+ dpkg --compare-versions 1.10.1-3+xenial0 lt-nl 1.10.1-0ubuntu1.1
+ return
dpkg: error processing package nginx-common (--configure):

そして今、スクリプトで問題のある行を見ることができます

dpkg --compare-versions 1.10.1-3+xenial0 lt-nl 1.10.1-0ubuntu1.1

終了コード1を返す必要があります-バージョン比較を実行しており、結果に応じて0または1を返します。

#1637058(Ubuntuの場合) および #1637200(PPAの場合) で追跡されている実際のバグであるため、適切に修正する方法についてはコメントしません。

回避策の修正

編集/var/lib/dpkg/info/nginx-common.config

log_symlinks_check関数の最初の行にreturnを追加します。

例えば。:

 log_symlinks_check() {
     return                <---- here
     # Skip new installations
     [ -z "$1" ] && return

これにより、アップグレードプロセスを続行できます。

EDIT@Thomas Wardが指摘したように、これはセットアップ手順をスキップします(安全でないシンボリックリンクを修正します-もしあれば--varで/ log/nginx)

7
Emil Burzo

同じ問題を抱えている:

  • 14.04.5 LTS (GNU/Linux 3.13.0-32-generic x86_64)
  • 16.04.1 LTS (GNU/Linux 4.4.0-45-generic x86_64)

Nginx-common(1.10.1-3 + trusty1)の設定... dpkg:エラー処理パッケージnginx-common(--configure):インストール後のサブプロセススクリプトがエラー終了ステータス1を返しましたdpkg:依存関係の問題によりlibnginxの構成が妨げられます-mod-http-auth-pam:libnginx-mod-http-auth-pamはnginx-common(= 1.10.1-3 + trusty1)に依存しています。ただし、パッケージnginx-commonはまだ構成されていません。

dpkg:エラー処理パッケージlibnginx-mod-http-auth-pam(--configure):依存関係の問題-未構成のdpkg:依存関係の問題によりlibnginx-mod-http-echoの構成が妨げられる:libnginx-mod-http-echoはnginxに依存する-common(= 1.10.1-3 + trusty1);ただし、パッケージnginx-commonはまだ構成されていません。

dpkg:エラー処理パッケージlibnginx-mod-http-echo(--configure):依存関係の問題-処理中に未構成エラーが発生しました:nginx-common libnginx-mod-http-auth-pam libnginx-mod-http-echo

解決済み

最初に/etc/nginxフォルダーのバックアップを作成することで、問題を修正できました。

Sudo tar -zcf ~/nginx.tgz /etc/nginx

次に、システムからnginxに関係するものをすべて削除しました。依存関係の問題が発生したため、段階的に実行する必要がありました。

Sudo apt-get purge nginx-full
Sudo apt-get purge nginx-common
Sudo apt-get purge nginx*

その後、nginxをシステムSudo apt-get install nginx-fullにインストールし直します。

最後に/etc/nginxフォルダーをSudo tar -zxf ~/nginx.tgzで復元し、Sudo service nginx restartを使用してnginxを再起動します

お役に立てれば!

6
Sergei Filippov