web-dev-qa-db-ja.com

mailxを変更する方法は?

VMに問題があります。

私はOpenVZで同じテンプレート(Debian 7min)を使用しましたが、何らかの理由で、これら2つは異なるmailxを使用しています。ステータスメールの送信に使用する小さなスクリプトがあります。

    mailx -v -s "$subject" -S smtp=$smtphost -S from="$mailfrom" -S smtp-auth-user=$smtpuser \
 -S smtp-auth-password=$smtppwd $emailto </dev/null

1つのサーバーで検索でき、もう1つのサーバーではエラーメッセージ「不明なコマンド-S」が表示されます。

わかりました。mailxは単なる仮想パッケージであり、通常はbsd-mailxをインストールしますが、両方のサーバーでセットアップが同じであることが示されています。

ls -al/etc/Alternatives/ma *

lrwxrwxrwx 1 root root 18 Feb  9 20:07 /etc/alternatives/mailx -> /usr/bin/bsd-mailx

dpkg --get-selections | grepメール

bsd-mailx                   install
fetchmail                   install
procmail                    install
rmail                       install
sendmail                    install
sendmail-base                   install
sendmail-bin                    install
sendmail-cf                 install
sendmail-doc                    install

問題は、mailxのようなバージョン情報はサポートされていないため、mailx--helpまたは--versionは「不明なオプション」とだけ表示するため、mailxの「バージョン」が何であるかさえわかりません。

これはサーバー1から出力されます

mailx: illegal option -- -
Usage: mailx -eiIUdEFntBDNHRV~ -T FILE -u USER -h Hops -r address -s SUBJECT -a FILE -q FILE -f FILE -A ACCOUNT -b USERS -c USERS -S OPTION users

これはサーバー2から出力されます

mailx: invalid option -- '-'
usage: mailx [-dEIinv] [-a header] [-b bcc-addr] [-c cc-addr] [-s subject] to-addr ...
             [-- sendmail-options ...]
       mailx [-dEIiNnv] -f [name]
       mailx [-dEIiNnv] [-u user]

明らかに同一ではありません。サーバー1からサーバー2にmailxを「取得」する方法はありますか?私は考えが足りません。

2
Chris

したがって、server1にはheilroom-mailx、つまり/etc/alternatives/mailx -> /usr/bin/heirloom-mailxがあり、2番目のサーバーはbsd-mailxを使用します。

Server1からmailxを取得する場合は、両方のサーバーでapt-get install heirloom-mailxを実行します。

インストール後、サーバーは自動的にheirloomをmailxとして使用する必要があります。そうでない場合は、次のようにします。

Sudo update-alternatives --set mailx /usr/bin/heirloom-mailx
2
Darek

@darekと@ nadir-latifからの回答を拡張するために、/usr/bin/mailも代替手段であり、Wheezy/Jessieのインストールをチェックすることから、heirloom-mailxの優先順位はmailx代替案のスレーブです。 60だからインストール使用

Sudo update-alternatives --install /usr/bin/mailx mailx /usr/bin/heirloom-mailx \
60 --slave /usr/bin/mail mail /usr/bin/heirloom-mailx \
--slave /usr/share/man/man1/mail.1.gz mail.1.gz \
/usr/share/man/man1/heirloom-mailx.1.gz --slave \
/usr/share/man/man1/mailx.1.gz mailx.1.gz \
/usr/share/man/man1/heirloom-mailx.1.gz

これにより、mailmailxの両方の選択肢を設定できます。 Stretchでは、mail.mailutilsの優先度は30で、manページから

リンクグループが自動モードの場合、グループのメンバーが指す選択肢は、優先度が最も高いものになります。

したがって、60の優先度を使用し、それを自動に設定している場合は、代替を明示的に設定する必要はありません。それ以外の場合は、@ darekの状態で使用されます。

Sudo update-alternatives --set mailx /usr/bin/heirloom-mailx
1
Alasdair