23

thisthis questionを読みました。どちらも、Emacs は認証を処理できると言っていますが、私にはうまくいきません。

問題は次のとおりです。何が問題なのですか?

Emacs のバージョンは 24.0.97-1 で、64 ビット Linux で実行されています。

職場では、インターネット接続にプロキシ サーバーを使用する必要があります。そこで、次の環境変数を設定しました。

http_proxy="http://username:password@ip:port
https_proxy="https://username:password@ip:port
ftp_proxy="ftp://username:password@ip:port

これは機能します。問題なくパッケージをダウンロードできます。

Emacs で実行するM-x package-refresh-contentsと、プロキシ サーバーのログインとパスワードを求められますが、サーバーに接続できません。接続しようとさえしません。つまり、パスワードを入力してEnterEmacsを押すと、すぐに次のように報告されます。 Failed to download 'marmalade' archive

http_proxy変数からユーザー名とパスワードを削除した場合、またはurl-proxy-servicesEmacs で設定した場合 (システム変数の設定を解除した場合でも) は、同じことが起こります。

4

4 に答える 4

19

Emacs は と の一部のみHOSTPORT使用しhttp_proxyます。

次の方法で、ユーザーの操作なしで承認が機能します。

(setq url-proxy-services
   '(("no_proxy" . "^\\(localhost\\|10.*\\)")
     ("http" . "proxy.com:8080")
     ("https" . "proxy.com:8080")))

(setq url-http-proxy-basic-auth-storage
    (list (list "proxy.com:8080"
                (cons "Input your LDAP UID !"
                      (base64-encode-string "LOGIN:PASSWORD")))))

これは Emacs 24.3 で機能します。非公開の API トリックに基づいているため、別のバージョンの Emacs では機能しない可能性があります...

LOGINandを認証情報に置き換えPASSWORDてください...

もありますurl-http-proxy-digest-auth-storage。プロンプトに認証データを入力し、Emacs が使用する var を ( M-: var RETで) チェックするだけです...

于 2013-09-09T11:27:54.810 に答える
6

Emacs は認証に問題があるようです。そのため、Squid をインストールし、外部プロキシ サーバーとすべてのアプリケーションとの間の仲介として使用しています。Squid は認証なしのプロキシとして構成されており、すべてがうまく機能します。

多くの人がこのソリューションを推奨していますが、正確な指示はありません。私は/etc/squid/squid.conf別の目的のために設計された別のものから自分のものを作りました. おそらく、必要のないものが含まれているか、あるべきものが抜けている可能性があります。改善は大歓迎です:

# only access from localhost is allowed
acl localhost src 127.0.0.1/32
acl all src all
http_access allow localhost
http_access deny all
icp_access deny all

never_direct allow all

# turn off cache
cache_dir null /tmp
cache deny all

# logs
access_log /var/log/squid/access.log squid

# turn off proxy-headers (no idea what is it :))
via off
forwarded_for off

# describe external proxy server
cache_peer <proxy_ip> parent <proxy_port> 0 no-query default proxy-only login=<my_login>:<my_password>
http_port 10000
acl port10000 myport 10000
cache_peer_access <proxy_ip> allow port10000

このプロキシのアドレスは127.0.0.1:10000です。Emacs では、次のコードを実行する必要があります。

(setq url-proxy-services '(("http" . "127.0.0.1:10000")))
于 2012-06-14T07:03:32.357 に答える
5

ここには 2 つのバグがあります - 1 つは url-http.el にあり、http://debbugs.gnu.org/cgi/bugreport.cgi?bug= 12069 に送ったばかりのパッチで修正できます。試行するたびにパスワードの入力を求められ、プロンプトが表示されない場合は機能するはずです。

もう 1 つのバグはまだ追跡されていませんが、プロキシ サーバーが認証を要求すると、認証が要求され、すぐにプロキシ サーバーからの認証要求がパッケージ コードによって処理されるようです。その間、実際のリクエストはバックグラウンドで続行されます。

于 2012-07-27T17:32:44.017 に答える