pak パッケージで RMeCab のインストールに挑戦

## はじめに
[pakパッケージ](https://github.com/r-lib/pak) を使って、GitHub から R パッケージのインストールを試すために、[RMeCab](https://github.com/IshidaMotohiro/RMeCab) のインストールに挑戦しました。
## インストール準備
```bash
# パッケージリストの更新とプログラムパッケージのアップデート
sudo apt update && sudo apt upgrade -y
```
## MeCab のインストール
```bash
# MeCab のインストール
sudo apt install -y mecab libmecab-dev mecab-ipadic-utf8
```
## R のインストールと R の起動
Debian の場合、次のコマンドで R をインストールする。 
```bash
# R のインストール
sudo apt install r-base r-base-dev
```
```bash
# R の起動
R
```
## P3M リポジトリ設定用.Rprofileファイルの作成
P3M（Posit Public Package Manager）については、[こちら](https://packagemanager.posit.co/client/#/)
```bash
# 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 パッケージのインストール
```bash
# 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
# R の終了
q()
# R の起動
R
```
## あったら便利かなと思い tidyverse をインストール
```r
# tidyverse のインストール
pak::pak("tidyverse")
```
## pak で GitHub から RMeCab のインストールに挑戦
2024/12/14 での結果です。
```r
# 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()` でインストールできるか確認してみました。
```r
# 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 のバージョン確認
R.version.string
```
> ```
> [1] "R version 4.2.2 Patched (2022-11-10 r83330)"
> ```
やはり、R のバージョンは要件を満たしていませんでした。
## pak で URL でのインストールに挑戦
次の `install.packages()` でのインストールを確認しました。
```r
install.packages("RMeCab", repos = "https://rmecab.jp/R", type = "source")
```
これはインストールできました。
そこで、pak でも URL からインストールするためにマニュアルを確認してみると
> Install a package from a URL:
> ```r
> 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
> ```
から、次のコマンドを試してみました。
```r
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](https://github.com/r-lib/rig) をつかって、最新の R をインストールしました。
Ubuntu/Debian の場合、次のコマンドで rig と R をインストールする。 
```r
# rig のリポジトリの署名キーの追加
`which sudo` curl -L https://rig.r-pkg.org/deb/rig.gpg -o /etc/apt/trusted.gpg.d/rig.gpg
```
```r
# rig のリポジトリの追加
`which sudo` sh -c 'echo "deb http://rig.r-pkg.org/deb rig main" > /etc/apt/sources.list.d/rig.list'
```
```r
# rig のインストール
`which sudo` apt update
`which sudo` apt install r-rig
```
```r
# 最新の R のインストール
rig add release
```
R のバーションを確認してみると
```r
# R のバージョンの確認
rig list
```
結果は
> ```
> * name   version  aliases
> ------------------------------------------
> * 4.4.2           release
> ```
RMeCab を GitHub からインストールするための R バージョンの要件を満たしていたので
```bash
# R の起動
R
```
```r
# GitHub から RMeCabのインストール
pak::pak("IshidaMotohiro/RMeCab")
```
で、なんの問題もなく RMeCab のインストールに成功しました。

次を試してみると
```r
library(RMeCab)
res <- RMeCabC("すもももももももものうち")
unlist (res)
```
結果は、正しく出力されました。
> ```
>     名詞     助詞     名詞     助詞     名詞     助詞     名詞 
> "すもも"     "も"   "もも"     "も"   "もも"     "の"   "うち"
> ```