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

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

新規登録して質問してみよう
ただいま回答率
85.50%
R

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

Ubuntu

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

Q&A

解決済

1回答

3598閲覧

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

AnchorBlues

総合スコア18

R

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

Ubuntu

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

0グッド

1クリップ

投稿2018/07/28 00:44

編集2018/07/28 01:59

やりたいこと

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.

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

angel_p_57

2018/07/28 00:59

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

2018/07/28 01:59

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

回答1

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 11:09

angel_p_57

総合スコア1672

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

AnchorBlues

2018/07/30 13:07

ありがとうございます。 環境変数PATHの順番を、 Sys.setenv("PATH" = "/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/sbin:/usr/local/bin") によって並び替えた結果、無事パッケージのインストールが通るようになりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問