0

私は企業のファイアウォールの背後にいて、rsync アウトを許可しておらず、HTTP/HTTPS 用のプロキシが必要です。この環境の macports ステップで rvm が壊れるという問題が発生しています。

要約すると:

  • 私はやろうとしていますrvm install ruby-1.9.3-p286

  • rvm は macports を使用したいと考えています。

  • macports は rsync を使用して更新したいのですが、rsync アウトできません。

  • ローカルの macports ソース リポジトリをセットアップしましたが、役に立たないようです。macports はまだ rsync を使用したいと考えています。

  • 同様の質問に対する提案では、rvm のスクリプトを変更port selfupdateすることを提案しました。port syncしかし、それは助けにはなりませんでした。svn update

  • しかし、私はsvn update手動で問題なく実行できるので、どこに問題があるのか​​ わかりません。


詳細は次のとおりです。

このガイドに従って、ファイアウォールの背後で macports を使用し、リポジトリをローカルでチェックアウトし、/opt/local/etc/macports/sources.conf.

    #rsync://rsync.macports.org/release/tarballs/ports.tar [default]
    file:///opt/local/var/macports/sources/svn.macports.org/trunk/dports/ [default]

ガイドとの唯一の相違点は、10.5 ではなく 10.8 用の macports をインストールしたことです。

ただし、rvm の macports は何らかの理由でまだ rsync を使用しているようです。

$ rvm install ruby-1.9.3-p286
Searching for binary rubies, this might take some time.
No binary rubies available for: osx/10.8/x86_64/ruby-1.9.3-p286.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Installing requirements for osx, might require sudo password.
Password:
DEBUG: Copying /Users/tim/Library/Preferences/com.apple.dt.Xcode.plist to 
    /opt/local/var/macports/home/Library/Preferences
DEBUG: MacPorts sources location: 
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs --->  Updating MacPorts base sources using rsync
rsync: failed to connect to rsync.macports.org: Connection refused (61)
rsync error: error in socket IO (code 10) at /SourceCache/rsync/rsync-42/rsync/clientserver.c(105) [receiver=2.6.9]
Command failed: /usr/bin/rsync -rtzv --delete-after     rsync://rsync.macports.org/release/tarballs/base.tar     /opt/local/var/macports/sources/rsync.macports.org/release/tarballs
Exit code: 10
DEBUG: Error synchronizing MacPorts sources: command execution failed
while executing
"macports::selfupdate [array get global_options] base_updated"
Error: /opt/local/bin/port: port selfupdate failed: Error synchronizing MacPorts sources: command execution failed

これは、この質問と非常によく似ています。回答では、次の変更が提案されています。

$ diff -u .rvm/scripts/functions/requirements/osx_port.org .rvm/scripts/functions/requirements/osx_port
--- .rvm/scripts/functions/requirements/osx_port.org 2013-05-28 16:58:37.000000000 +0900
+++ .rvm/scripts/functions/requirements/osx_port 2013-05-28 16:58:50.000000000 +0900
@@ -82,7 +82,7 @@

 requirements_osx_port_update_system()
 {
- __rvm_try_sudo ポート -dv selfupdate || $を返しますか?
+ __rvm_try_sudo ポート -dv 同期 || $を返しますか?
 }

 requirements_osx_port_define()

残念ながら、それは次の結果になります。

$ rvm install ruby​​-1.9.3-p286
バイナリ ルビーを検索しています。これには時間がかかる場合があります。
osx/10.8/x86_64/ruby-1.9.3-p286 で使用できるバイナリ Ruby はありません。
コンパイルを続行します。バイナリ ルビーの詳細については、「rvm ヘルプ マウント」を参照してください。
osx の要件をインストールするには、sudo パスワードが必要になる場合があります。
パスワード:
デバッグ: /Users/tim/Library/Preferences/com.apple.dt.Xcode.plist を /opt/local/var/macports/home/Library/Preferences にコピーしています
---> ポート ツリーの更新
file:///opt/local/var/macports/sources/svn.macports.org/trunk/dports/ からのローカル ポート ツリーの同期
デバッグ: /usr/bin/svn update --non-interactive /opt/local/var/macports/sources/svn.macports.org/trunk/dports
DEBUG: euid/egid の変更 - 現在の euid: 0 - 現在の egid: 0
svn: 'http://svn.macports.org/repository/macports/trunk/dports' のオプション: サーバーに接続できませんでした (http://svn.macports.org)
コマンドが失敗しました: /usr/bin/svn update --non-interactive /opt/local/var/macports/sources/svn.macports.org/trunk/dports
終了コード: 1
デバッグ: コマンドの実行に失敗しました
    実行中
「システム $svn_commandline」
エラー: ローカル ポート ツリーの同期が svn update の実行に失敗しました
デバッグ: 1 つのソースの同期に失敗しました
    実行中
「mportsync [array get global_options]」
ポートの同期に失敗しました: 1 つのソースの同期に失敗しました

macports で直接試す:

$ ポート -d 同期
---> ポート ツリーの更新
file:///opt/local/var/macports/sources/svn.macports.org/trunk/dports/ からのローカル ポート ツリーの同期
デバッグ: /usr/bin/svn update --non-interactive /opt/local/var/macports/sources/svn.macports.org/trunk/dports
svn: 'http://svn.macports.org/repository/macports/trunk/dports' のオプション: サーバーに接続できませんでした (http://svn.macports.org)
コマンドが失敗しました: /usr/bin/svn update --non-interactive /opt/local/var/macports/sources/svn.macports.org/trunk/dports
終了コード: 1
デバッグ: コマンドの実行に失敗しました
    実行中
「システム $svn_commandline」
エラー: ローカル ポート ツリーの同期が svn update の実行に失敗しました
デバッグ: 1 つのソースの同期に失敗しました
    実行中
「mportsync [array get global_options]」
ポートの同期に失敗しました: 1 つのソースの同期に失敗しました

そのsvnコマンドをうまく実行できるので、これは奇妙です:

 $ /usr/bin/svn update --non-interactive /opt/local/var/macports/sources/svn.macports.org/trunk/dports
 At revision 107532.

root もその svn コマンドを正常に実行できるため、ユーザーのアクセス許可/プロファイルの問題ではありません。

 $ sudo /usr/bin/svn update --non-interactive /opt/local/var/macports/sources/svn.macports.org/trunk/dports
 At revision 107532.

チェーン内の何かがプロキシを正しく認識していないと思います。でも:

  • http_proxyおよびhttps_proxy環境変数でプロキシが正しく設定されている
  • また、~/.subversion/servers(変数としてhttp-proxy-hostおよびセクションhttp-proxy-portで)設定されます[global]
  • また、/opt/local/etc/macports/macports.conf(変数proxy_httpおよびとしてproxy_https)に設定されます

その他の情報:

  • ルビー1.8.7
  • rvm1.21.4
  • OS X 10.8.3
  • Mac ポート 2.1.3

他に役立つ情報があれば教えてください。

私の質問は、この環境でどのように仕事をすることができますか? port sync(これも修正されることを望んでいますrvm

4

1 に答える 1

3

回避策として、次のことを試してください。

rvm autolbs read-fail

パッケージは自動的にはインストールされません。パッケージが欠落している場合は失敗し、このパッケージの名前が通知されます。macports を使用して手動でインストールするだけで問題ありません。


他の解決策は、次のように切り替えることです。

rvm autolibs homebrew

macports の代わりに自作を使用するには、または:

rvm autolibs rvm_pkg

で既にインストールされているものを検出pkg-configし、古いもので残りをインストールしようとしrvm pkg install ...ます。


autolibs の詳細: http://rvm.io/rvm/autolibs

于 2013-07-02T16:52:49.747 に答える