2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Ubuntu系でRパッケージインストール時に足りないものがあった時

Last updated at Posted at 2018-03-30

CRAN上のRパッケージはWindows向けにはバイナリで提供されていることがほとんどですが、Linux向けにはソースで提供され、コンパイルが必要です。
このため、install.packages('hoge')すると、

configure: error: "ODBC headers sql.h and sqlext.h not found"

といったメッセージが返ることがあります。

ほうほうODBCね、と思ってbashで

apt search odbc

するとうんざりするほどのodbcを名前に含むパッケージが!

経験豊かな人でなければ、どれを入れればいいか分かりません。

grepする

例えば、開発者向けパッケージが怪しいなら

apt search odbc | grep dev

として、grepで絞り込むことができます。

|はパイプで、左側の結果を右側のコマンドに渡してくれます。
この場合、左側の結果の中から、grepでdevを含むパッケージを絞り込みます。

バージョン(新旧)やアーキテクチャ(x64 or i836)の違いを除くと以下にまで絞れます。

  • libghc-haskelldb-hdbc-odbc-dev - HaskellDB support for the HDBC ODBC driver
  • libghc-hdbc-odbc-dev - unixODBC HDBC (Haskell Database Connectivity) Driver for GHC
  • libiodbc2-dev - iODBC Driver Manager (development files)
  • libocamlodbc-ocaml-dev - UnixODBC database bindings for OCaml
  • unixodbc-dev - ODBC libraries for UNIX (development files)

なんとなくunixodbc-devがprimitiveっぽくて怪しい気がしますが自身は持てません。
結局sql.hとsqlext.hを含んでいないものをインストールしてしまうと残念。

apt-file findする

apt-file findであるファイルを含むパッケージがどれか調べることができます。
これを用いてsql.hとsqlext.hを含むパッケージを探しましょう。

apt-fileが未インストールであればインストールします。

sudo apt update
sudo apt install apt-file

apt-fileを使いましょう

apt-file update
apt-file find ^sqlext.h$

まずupdateすることでファイル一覧を入手します。
その後findで欲しいファイルを含むパッケージを見つけます。

manには1つのファイルを含むパッケージを見つけるとあるので

apt-file find sql.h sqlext.h

としても両方含むものを見つけることはできません。
うまく結果を統合したいですが私のshell力が足りない。

sqlext.hを含むパッケージは

  • libiodbc2-dev: /usr/include/iodbc/sqlext.h
  • libwine-development-dev: /usr/include/wine-development/windows/sqlext.h
  • mingw-w64-common: /usr/share/mingw-w64/include/sqlext.h
  • mingw-w64-x86-64-dev: /usr/x86_64-w64-mingw32/include/sqlext.h
  • unixodbc-dev: /usr/include/sqlext.h
  • wine1.6-dev: /usr/include/wine/windows/sqlext.h

ですので、やはりunixodbc-devでよさそうです。

apt install unixodbc-dev

すればsql.hとsqlext.hが手に入ります。

Enjoy!!

追記: cran2debとかc2d4uの依存関係を見る

2018/03/30 16:23

yutannihilationさんに教えて頂きました。
ちょっとまだ試せていませんが、取り急ぎ。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?