質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.50%

  • Ubuntu

    1406questions

    Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

  • R

    306questions

    R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

Rのパッケージのインストールに失敗する

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 175

AnchorBlues

score 11

 やりたいこと

Rで、(ある特定の、ではなくて、ほぼすべての)パッケージのインストールに失敗する。
問題を解消して、パッケージがインストールできるようにしたい。

 詳細

Rで

install.packages("パッケージ名")

でパッケージをインストールしようとすると、以下のようなエラーが出てきてしまいます。

/usr/local/bin/ld: 無効なオプション -- 'p'
Try `ld --help' or `ld --usage' for more information.
collect2: error: ld returned 64 exit status
/usr/share/R/share/make/shlib.mk:6: ターゲット 'ranger.so' のレシピで失敗しました
make: *** [ranger.so] エラー 1
ERROR: compilation failed for package ‘ranger’
* removing ‘/home/username/R/x86_64-pc-linux-gnu-library/3.4/ranger’
Warning in install.packages :
  installation of package ‘ranger’ had non-zero exit status

The downloaded source packages are in/tmp/RtmpYzd1zJ/downloaded_packages’

上記はrangerパッケージをインストールしようとした時のエラーメッセージですが、
他のパッケージをインストールしようとしても、(”ranger"の部分の表記以外は)ほぼ同様のエラーが出てきてしまいます。

特に、最初の3行

/usr/local/bin/ld: 無効なオプション -- 'p'
Try `ld --help' or `ld --usage' for more information.
collect2: error: ld returned 64 exit status

は必ず共通して出てくるメッセージなので、逆に言うとこの部分の問題解決ができれば、
すべての問題が解決するものと思っております。

使用環境はUbuntu16.04 LTSで、
Rのバージョンは

> R.version
               _                           
platform       x86_64-pc-linux-gnu         
arch           x86_64                      
os             linux-gnu                   
system         x86_64, linux-gnu           
status                                     
major          3                           
minor          4.4                         
year           2018                        
month          03                          
day            15                          
svn rev        74408                       
language       R                           
version.string R version 3.4.4 (2018-03-15)
nickname       Someone to Lean On          


です。

また、/usr/local/bin/ldの情報は以下です。

$ ld --version
ld (elfutils) 0.165
Copyright (C) 2012 Red Hat, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Ulrich Drepper.

よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • angel_p_57

    2018/07/28 09:59

    エラーに「/usr/local/bin/ld: …」とあるので、この ld が深く関わっているのは間違いないでしょう。一方で /usr/local にあるということは、この ld は標準のものではありません ( 標準は /usr/bin/ld )。なので、この /usr/local/bin/ld が何者か情報がないと回答しようがないと思います。

    キャンセル

  • AnchorBlues

    2018/07/28 10:59

    ご指摘ありがとうございます。/usr/local/bin/ldの情報を追加しました。

    キャンセル

回答 1

checkベストアンサー

0

手元のelfutilsを見てみたのですが、ld が含まれていなかったので、その /usr/local/bin/ld の振る舞いがどういうものか、正直分かりません。

が、そこでエラーが出ている以上、R のパッケージビルド時に想定されているのは通常の GNU ld ( /usr/bin/ld ) でしょうから、/usr/local/bin/ld を使わない方向で行った方が良いと思います。

一番分かり易いのは、/usr/local/bin/ld を削除、或いはリネームして使えなくすることですが、そのシステムでどう使っているかが分からないため、一応最終手段としておきます。

無難な所では、PATH 環境変数で /usr/local/bin を省くか、或いは /usr/bin の方が /usr/local/bin より前 ( 左 ) に来るように順序を調整する、というところでしょうか。

もしどうしても /usr/local/bin/ld をビルドに活用したいとなると…。ビルドパラメータを色々弄ることは一応できるでしょうが。具体的な所までは分かりません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/30 22:07

    ありがとうございます。
    環境変数PATHの順番を、

    Sys.setenv("PATH" = "/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/sbin:/usr/local/bin")

    によって並び替えた結果、無事パッケージのインストールが通るようになりました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Ubuntu

    1406questions

    Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

  • R

    306questions

    R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。