はじめに
pakパッケージ を使って、GitHub から R パッケージのインストールを試すために、RMeCab のインストールに挑戦しました。
インストール準備
# パッケージリストの更新とプログラムパッケージのアップデート
sudo apt update && sudo apt upgrade -y
MeCab のインストール
# MeCab のインストール
sudo apt install -y mecab libmecab-dev mecab-ipadic-utf8
R のインストールと R の起動
Debian の場合、次のコマンドで R をインストールする。
# R のインストール
sudo apt install r-base r-base-dev
# R の起動
R
P3M リポジトリ設定用.Rprofileファイルの作成
P3M(Posit Public Package Manager)については、こちら
# P3M リポジトリ設定用.Rprofileファイルの作成
my.Rprofile <- 'local({
repos <- c(P3M = "https://packagemanager.posit.co/cran/__linux__/bookworm/latest")
options(repos = c(repos, getOption("repos")))
})
'
cat(my.Rprofile, file = ".Rprofile", append = TRUE)
pak パッケージのインストール
# pak のバイナリビルドパッケージのインストール
install.packages("pak", repos = sprintf(
"https://r-lib.github.io/p/pak/stable/%s/%s/%s",
.Platform$pkgType,
R.Version()$os,
R.Version()$arch
))
.Rprofileファイルを適用させるために R の再起動
.Rprofileファイルを読み込むコマンドがあるかもしれませんが...
# R の終了
q()
# R の起動
R
あったら便利かなと思い tidyverse をインストール
# tidyverse のインストール
pak::pak("tidyverse")
pak で GitHub から RMeCab のインストールに挑戦
2024/12/14 での結果です。
# GitHub から RMeCabのインストール
pak::pak("IshidaMotohiro/RMeCab")
次のようなメッセージが出て、失敗しました。
! Using bundled GitHub PAT. Please add your own PAT using `gitcreds::gitcreds_set()`. Error: ! error in pak subprocess Caused by error: ! Could not solve package dependencies: * IshidaMotohiro/RMeCab: Needs R >= 4.4.0 Type .Last.error to see the more details.
remotes::install_github()
でインストールできるか確認してみました。
# GitHub から RMeCabのインストール
pak::pak("remotes")
remotes::install_github("IshidaMotohiro/RMeCab")
やはり、次のようなメッセージが出て、失敗しました。
Downloading GitHub repo IshidaMotohiro/RMeCab@HEAD Running `R CMD build`... * checking for file ‘/tmp/RtmpfkOmkh/remotesc393bc1416a/IshidaMotohiro-RMeCab-e65a5ee/DESCRIPTION’ ... OK * preparing ‘RMeCab’: * checking DESCRIPTION meta-information ... OK * cleaning src * checking for LF line-endings in source and make files and shell scripts * checking for empty or unneeded directories * building ‘RMeCab_1.14.tar.gz’ Installing package into ‘/home/m/R/x86_64-pc-linux-gnu-library/4.2’ (as ‘lib’ is unspecified) ERROR: this R is version 4.2.2, package 'RMeCab' requires R >= 4.4.0 Warning message: In i.p(...) : installation of package ‘/tmp/RtmpfkOmkh/filec3927bb86c/RMeCab_1.14.tar.gz’ had non-zero exit status
GitHub からインストールするためには、R のバージョンが要件を満たしていないようです。
R のバージョンの確認
# R のバージョン確認
R.version.string
[1] "R version 4.2.2 Patched (2022-11-10 r83330)"
やはり、R のバージョンは要件を満たしていませんでした。
pak で URL でのインストールに挑戦
次の install.packages()
でのインストールを確認しました。
install.packages("RMeCab", repos = "https://rmecab.jp/R", type = "source")
これはインストールできました。
そこで、pak でも URL からインストールするためにマニュアルを確認してみると
Install a package from a URL:
pak::pkg_install( "url::https://cran.r-project.org/src/contrib/Archive/tibble/tibble_3.1.7.tar.gz" )
The URL may point to an R package file, made with R CMD build, or a .tar.gz or .zip archive of a package tree.
とあったので、上記のコマンドのメッセージ
Installing package into ‘/home/m/R/x86_64-pc-linux-gnu-library/4.2’ (as ‘lib’ is unspecified) trying URL 'https://rmecab.jp/R/src/contrib/RMeCab_1.10.tar.gz' Content type 'application/x-gzip' length 519922 bytes (507 KB) ================================================== downloaded 507 KB
から、次のコマンドを試してみました。
pak::pak("url::https://rmecab.jp/R/src/contrib/RMeCab_1.10.tar.gz")
これも失敗しました。
Error: ! error in pak subprocess Caused by error: ! Could not solve package dependencies: * url::https://rmecab.jp/R/src/contrib/RMeCab_1.10.tar.gz: ! pkgdepends resolution error for url::https://rmecab.jp/R/src/contrib/RMeCab_1.10.tar.gz. Caused by error: ! Cannot extract /tmp/RtmpTmR8Mv/filec923d689177/99e6e5f-RMeCab_1.10.tar.gz, unknown archive type. Type .Last.error to see the more details.
お手上げです。
最新の R をインストール
あきらめて、現在の R をアンインストールして、rig をつかって、最新の R をインストールしました。
Ubuntu/Debian の場合、次のコマンドで rig と R をインストールする。
# rig のリポジトリの署名キーの追加
`which sudo` curl -L https://rig.r-pkg.org/deb/rig.gpg -o /etc/apt/trusted.gpg.d/rig.gpg
# rig のリポジトリの追加
`which sudo` sh -c 'echo "deb http://rig.r-pkg.org/deb rig main" > /etc/apt/sources.list.d/rig.list'
# rig のインストール
`which sudo` apt update
`which sudo` apt install r-rig
# 最新の R のインストール
rig add release
R のバーションを確認してみると
# R のバージョンの確認
rig list
結果は
* name version aliases ------------------------------------------ * 4.4.2 release
RMeCab を GitHub からインストールするための R バージョンの要件を満たしていたので
# R の起動
R
# GitHub から RMeCabのインストール
pak::pak("IshidaMotohiro/RMeCab")
で、なんの問題もなく RMeCab のインストールに成功しました。
次を試してみると
library(RMeCab)
res <- RMeCabC("すもももももももものうち")
unlist (res)
結果は、正しく出力されました。
名詞 助詞 名詞 助詞 名詞 助詞 名詞 "すもも" "も" "もも" "も" "もも" "の" "うち"