エラーメッセージ「sudo:ホストを解決できません(なし)」

私が走るとき sudo 端末は数秒間停止し、エラーメッセージが出力されます。 私の端末は次のようになります:

ubuntu@(none):~$ sudo truesudo: unable to resolve host (none)

それを解決するために私は何ができますか?

チェックする2つのこと(あなたのマシンが呼び出されていると仮定 my-machine、必要に応じて変更できます):

  1. それは /etc/hostname ファイルには、マシンの名前だけが含まれています。

  2. それは /etc/hosts のエントリを持っています localhost. それは次のようなものを持っているはずです:

     127.0.0.1localhost。localdomain localhost127.0.1.1my-machine

これらのファイルのいずれかが正しくない場合(sudoできないため)、マシンをリカバリモードで再起動して変更を加え、通常の環境で再起動する必要があ

編集 /etc/hosts 新しいホスト名を127.0.0.1行に追加します(または、必要に応じて新しい行を作成します)。

私は次のように見えます:

127.0.0.1       localhost localhost.localdomain penguin# The following lines are desirable for IPv6 capable hosts::1     ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allrouters

置換 penguin 上記の例では、次のように新しいホスト名で指定します。 /etc/hostname ファイル。

にホスト名を追加します。 /etc/hosts そうのように:

echo $(hostname -I | cut -d\  -f1) $(hostname) | sudo tee -a /etc/hosts

注意してください、これはへの答えです この質問 これはこれとマージされています。

あなたのホスト名(dave00-G31M-ES2L)で表されない /etc/hosts. を追加します。 L この行に:

127.0.1.1   dave00-G31M-ES2

だから、それはなります:

127.0.1.1   dave00-G31M-ES2L

これを行うには、コンソールを開きます(を押します Ctrl+Alt+T)とタイプ:

sudo gedit /etc/hosts

文字を追加する L 前述のように、保存して終了します。

VPSでubuntuを使用していたときにこの問題が発生しました。 /Etc/hostsファイルを編集して解決しました。

次のコマンドを実行します:

sudo nano /etc/hosts

そして、追加します:

127.0.0.1   localhost.localdomain localhost127.0.1.1   ubuntu

私はそれがあなたの問題を解決することを願っています:)

PS:お使いのコンピュータを再起動することを忘れないでください!

/Etc/hostnameファイルと/etc/hostsファイルのホスト名が一致していても、同じ問題が発生していました。

私のホスト名は"staging_1"でした。 ホスト名にアンダースコアを付けることができないことが判明したため、このエラーが発生していました。 アンダースコアをハイフンに変更すると、私の問題が修正されました。

AWSで、vpcに移動し、「DNSホスト名」をオンにします。

質問で与えられた症状は、このより具体的な問題と強く相関する可能性があります:

$ hostname --fqdnhostname: Temporary failure in name resolution

これを解決するにはさまざまな方法がありますが、その1つはホスト名をlocalhostとして追加することです /etc/hosts (他のいくつかの回答に示されているように)。 これは一般的に正しいことかもしれませんが、可能な解決策はそれだけではありません。

"完全修飾ドメイン名"は、外部DNSサーバーまたは類似のもの(ネットワーク上で利用可能な場合)によって提供されることがあります。 この場合, sudo で不足しているエントリにもかかわらず、文句を言うことはありません /etc/hosts.


メモ: sudo 必ずしも必要ではないにもかかわらず、sudoersファイルのオプションの機能のために、ホスト名を逆参照しようとします。 参照 ホスト名を検索しようとしているsudoコマンド.

遅延が長すぎない限り、このエラーメッセージは通常無害です。

誰もが変更することをお勧めします /etc/hosts. しかし、場合によっては、これが不可能な場合があります(たとえば、dockerコンテナ内)。 だから、私はより良い方法を見つけなければならなかったし、私はこれを思いついた:

echo "alias sudo='sudo -h 127.0.0.1'" >> ~/.bash_aliasessource ~/.bashrc

エイリアスはbashスクリプトでは機能しませんが、変数を使用できます: sudo='sudo -h 127.0.0.1'

私はこの同じエラーメッセージが発生しました。 私はAWS Developer Forumsでのこの議論のスレッドがより良い解決策だと思います:

"VPC管理コンソールに移動し、VPCを選択し、アクションをクリックし、DNSホスト名の編集を選択し、はいを選択します。"

https://forums.aws.amazon.com/thread.jspa?messageID=699718

私はこの質問をtoo localizedとして閉じることをお勧めします。 誤って、彼らは彼らの"ホスト"ファイルに一つの名前を入れたが、代わりに別の名前に入れたと思うかもしれない多くのユーザーがあります,多くのネットワー この質問(および回答)は、誰かがその問題を検索したときに表示され、正確なスペルミスが異なっていても、そのような不一致をチェックするように

hostshostnameが同じであることを確認してください。 たとえば、ホスト名はubuntu-pcであり、ホストはubuntu-pc同じでなければなりません。

'/Etc/hostnameと'/etc/hostsの内容を投稿してください。

この質問は保護されており、ここでは十分な評判がないため、回答を投稿することはできません。 私の場合、network-managerを再起動することで問題を解決しました:sudo/etc/init。d/network-managerの再起動'。 しかし、私はなぜ最初にsudoがネットワーク関連のものを待つ時間を無駄にするのだろうかと思っています。 ネットワークが利用できないときにsudo`は問題なく動作するべきではありませんか?

私は今日これに遭遇しました。 問題は、私がホスト名に持っていたものが/etc/hostsになかったことでした。 Gre hostname=>‘mybox’gre grep’mybox’/etc/hosts=>192.168.1.2mybox.example.com/etc/hosts=>192.168.1.2のドメイン名の後に’mybox’を追加する必要がありましたmybox.example.com マイボックス

Why does the question have <USER>"最後に? これは、質問の本文に表示されている実際の出力と矛盾します。'(none)'改善のための提案:削除

@arielfあなたはここで質問を改善することができます。 別のユーザーによって変更されました。 私も知らない :stuck_out_tongue: