init.d/apache2ファイルがありません

init.d/apache2ファイルがありません

ApacheとTomcatをアンインストールした後にApache 2を再インストールしようとすると、init.d/apache2サーバーを起動/停止するファイルがありません。

新しいインストールが実際に動作するかどうかはわかりません。apt-get purge apache2最初からすべてを削除していません!

サーバーが正しく起動/インストールされているかどうかをテストするためにファイルを入手する方法init.d/apache2(ファイルとディレクトリを手動で削除しました)?

ベストアンサー1

(私はフォローしています。ガレブの答え、関連情報のほとんどはすでにコメントに記載されています。コメントを見るよりも要約してみると便利です。 )

したがって、Calebの投稿に記載されているように、問題はAlexanderが削除(または変更した可能性があります)して復元しようとしている/etc/init.d/apache2ことです。ファイルはにありますapache-2.2-common。しかし、apt-get install --reinstall apache2.2-commonファイルを回復できないようです。 Debian ポリシーによると、その理由は、設定ファイルが変更された場合、ユーザーが明示的に要求しない限り、システムがそのファイルに触れないためです。バラより設定ファイルの処理に関するDebianポリシー:セクション10.7.3。引用:

プロファイル処理は、次の動作に従う必要があります。

  1. パッケージのアップグレード中にローカルの変更を保存する必要があります。

  2. 構成ファイルは、パッケージが削除されたときに保持され、パッケージが削除されたときにのみ削除されます。

パッケージの追加と削除は次のように処理されます。包装袋。 dpkgは、ここでファイルが変更された場合とファイルが完全に削除された場合の2つの状況を区別します。 inで始まる--force-thingsオプションセクションのセクションを参照してください。dpkg マニュアルページ。 (Debian Skizeのマニュアルページをオンラインで見つけることができず、Ubuntuのdpkg 1.16ページにリンクします。アドバイスがあればコメントしてください。)

だからこの2つの状況について

  1. 削除されたconfファイルを再インストールで置き換えるには、 --force-confmissこのオプションをdpkgに渡す必要があります。

  2. 変更されたが削除されていないconfファイルをインストール時にデフォルトのバージョンに置き換えるには、dpkgに--force-confnewオプションを渡す必要があります--force-confask。マニュアルページで説明されているように、--force-confnew自体は、デフォルトが元のインストールされているデフォルトよりも新しい場合(つまり、アップグレード時に)、変更されたconfファイルのみをデフォルトに置き換えます。

aptを介してdpkgを呼び出す場合は、これらのオプションをaptに渡す必要があります。上記の2つのケースについては、次のように実行されます。

apt-get -o Dpkg::Options::="--force-confmiss" install --reinstall apache2.2-common

apt-get -o Dpkg::Options::="--force-confnew" -o Dpkg::Options::="--force-confask" install --reinstall apache2.2-common

どの文書も見つかりませんDpkg::Options。 Googleで見つけました。ご存知の方はコメントありがとうございます。

コメント:

  1. 設定ファイルをめちゃくちゃにして戻りたい状況に遭遇した場合は、 --force-confmissすべてのローカル修正をデフォルトのperに変更するのではなく、名前を変更して使用する方が安全な方法だと思います--force-confnew。これは通常そうではありません。あなたが欲しいものが必要です。

  2. 構成ファイルを使用している場合は、必ずバージョン管理下に置いてください。これにより、構成ファイルを混同する問題を解決できます。使用してお勧めします 水銀。この場合(いずれの場合も可能です:-)、この場合、分散バージョン管理を使用する方が、次のような集中型バージョン管理システムを使用するよりも優れています。 破壊。このための良いプログラムは マネージャーをお待ちください

  3. apache2.2-commonまた、squeezeでaptを使用しても完全に削除されないことに言及する価値があり、ここで混乱を招く可能性があります。エラーが発生しやすい 621720、これは削除ケースを正確にカバーしていますapache2.2-common。バグレポートによると、使用する必要があります。

    apt-get remove apache2.2-common -o pkgProblemResolver::FixByInstall=0`
    

    (直接確認しました)。

  4. バラより構成ファイルについて知っておくべきこと: dpkg で管理される構成ファイル dpkgの構成ファイルの処理に関する議論ラファエル・ヘルゾグ、dpkg開発者の一人。彼はこれが--force-confaskSqueezeの新機能だと述べた。彼はまた言及した

    dpkg --status apache2.2-common
    

    構成ファイルのリストとその他の情報を提供します。そうでなければ

    dpkg-query --showformat='${Conffiles}\n' --show apache2.2-common
    

    あなたがその情報が欲しいなら。

私の関連質問に答えてくれたDavid KalnischkiesとRaphaël Hertzogに感謝します。 (そして私が間違ったメーリングリストに投稿したことを私に知らせました。)私はDebianのドキュメントがこの分野で改善されるかもしれないと思います。具体的には、dpkg のマニュアルページでは追加の使用例を提供できます。私はここにいる人(明らかに助けたい)がDebianのようなフリーソフトウェアプロジェクトにドキュメントパッチを寄与するのに時間を費やすことをお勧めします。価値あることですが、これを行う人は十分ではありません。

おすすめ記事