web-dev-qa-db-ja.com

依存パッケージを削除するapt-getをオーバーライドするにはどうすればよいですか?

Ubuntuテストサーバーでpostfixをexim4に置き換えて、本番サーバーでの設定を反映させたいのですが、apt-getとaptitudeは(当然のことながら)メールスタックに依存するいくつかのパッケージを削除することを要求しています。ただし、この場合、eximは依存パッケージのすべての要件を満たし、アプリケーションにメールおよびsendmail機能を提供する必要があるため、apt-getの疑いのない良識を無効にする準備ができています。何ヶ月もの労力が費やされており、バックアップされていても、適切に再構築するのは面倒なので、依存パッケージを削除したくありません。

4
iainH

Postfixの代わりにexim4をインストールすることができました。やった:

    dpkg --force-all -r postfix
    apt-get purge postfix

Postfixを再インストールしようとしたため、apt-get -f installへのアドバイスを無視しました。次に:

    aptitude install exim4-daemon-heavy sa-exim

これで、本番サーバーと同じようにテストサーバーのMTAを構成できるようになりました。

4
iainH

通常、あなたは新しいメールサーバーをインストールするように適性を求めるだけです:

   aptitude installl exim4

これが私にとってどのように見えるかです:

datacompboy@nuuzerpogodible:~$ LANG=C Sudo aptitude install postfix
The following NEW packages will be installed:
  postfix{b} 
0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 1565 kB of archives. After unpacking 3479 kB will be used.
The following packages have unmet dependencies:
 postfix : Conflicts: mail-transport-agent which is a virtual package.
 exim4-daemon-light : Conflicts: mail-transport-agent which is a virtual package.
 exim4-config : Conflicts: postfix but 2.9.1-2 is to be installed.
The following actions will resolve these dependencies:

     Remove the following packages:
1)     exim4                       
2)     exim4-base                  
3)     exim4-config                
4)     exim4-daemon-light          



Accept this solution? [Y/n/q/?] y
The following NEW packages will be installed:
  postfix 
The following packages will be REMOVED:
  exim4{a} exim4-base{a} exim4-config{a} exim4-daemon-light{a} 
0 packages upgraded, 1 newly installed, 4 to remove and 0 not upgraded.
Need to get 1565 kB of archives. After unpacking 417 kB will be freed.

これは正しい動作です。PITAなしでシステムに存在できるMTAは1つだけです。

必要以上に多くのパッケージを削除しようとする場合は、

適性なぜsomepackage

パッケージがインストールされる理由に関する情報を取得します。今、あなたは決める必要があります。削除ポリシーが{a}の場合-これは、自動依存関係のためにパッケージがインストールされたことを意味します。自動的にインストールされたという事実を削除し、を使用して手動に設定できます。

aptitude unmarkauto somepackage

その後、一部のパッケージは手動でインストールされると脅かされ、競合が発生した場合にのみ削除されます。使用されなくなったためではありません。

0
datacompboy