京橋のバイオインフォマティシャンの日常

まずは、データ分析、コマンドラインのメモとして

最近、CentOS7で、R言語のインストールでややハマった件

CentOS7でのR言語のインストールにハマったので、メモを残しておく。

結局、デフォルトのままだと、EPELリポジトリが無効になっているっぽい。

まずは、パッケージのバージョンを最新版にあげておく、

#リポジトリのアップデートなど
$ sudo yum update

#OR
#Brokenエラーで止まる場合には、--skip-brokenフラッグを入れるらしい。
$ sudo yum update  --skip-broken

つぎに、EPELリポジトリをダウンロードする。

なぜか、EPELリポジトリのインストールが、 yum でうんともすんともうまくいかないので、wgetでダウンロードする。

#ダウンロード
$ wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-13.noarch.rpm

#Epelをインストールする。
$ sudo rpm -ivh ~/epel-release-7-13.noarch.rpm 

# -i : パッケージのインストール
# -v : 詳細の情報表示
# -h : インストールの経過表示

#いちおう消しておく
#rm -rf epel-release-7-13.noarch.rpm

だが、これでも、まだダメみたい。。。

$ sudo yum install -y R
#=> まだ、うまくインストールできない・・・

そこで、リポジトリの有効・無効を調べてみる。

$ yum repolist all

読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp-srv2.kddilabs.jp
 * updates: ftp-srv2.kddilabs.jp
リポジトリー ID                      リポジトリー名              状態
C7.0.1406-base/x86_64                CentOS-7.0.1406 - Base      無効
#(中略)
epel/x86_64                          Extra Packages for Enterpri 無効
epel-debuginfo/x86_64                Extra Packages for Enterpri 無効
epel-source/x86_64                   Extra Packages for Enterpri 無効
epel-testing/x86_64                  Extra Packages for Enterpri 無効
epel-testing-debuginfo/x86_64        Extra Packages for Enterpri 無効
epel-testing-source/x86_64           Extra Packages for Enterpri 無効
extras/7/x86_64                      CentOS-7 - Extras           無効
extras-source/7                      CentOS-7 - Extras Sources   無効
fasttrack/7/x86_64                   CentOS-7 - fasttrack        無効
intel-daal-repo                      Intel(R) Data Analytics Acc 無効
intel-ipp-repo                       Intel(R) Integrated Perform 無効
intel-mkl-repo                       Intel(R) Math Kernel Librar 無効
intel-tbb-repo                       Intel(R) Threading Building 無効
intelpython                          Intel(R) Distribution for P 無効
updates/7/x86_64                     CentOS-7 - Updates          有効:  1,580+60
updates-source/7                     CentOS-7 - Updates Sources  無効
repolist: 11,742

どうもepelが無効化されている。。。

ということで、結局、yumに--enablerepo=epelのフラッグを追加すると、Rがインストールできた。

$ sudo yum --enablerepo=epel install -y R 

#関連パッケージもまとめて、インストール
$ sudo yum install -y libpng-devel libjpeg-turbo-devel libxml2-devel libcurl-devel openssl-devel libssh2-devel

次に、Rのセットアップもついでに行っておく。

# R起動
$ R

############
#パッケージ・リスト
pkg_list = c('tidyverse', 'rmarkdown', 'shiny', 'flexdashboard', 'shinydashboard',                                               
             'devtools', 'testthat', 'roxygen2', 'profvis', 'RSQLite', 
             'RcppArmadillo', 'rbenchmark', 'microbenchmark', 'zoo', 'xts', 'forecast',                                                          
             'maps', 'maptools', 'mapproj', 'mapdata', 'ggmap', 'GGally', 'ggrepel', 'ggraph',
             'cowplot', 'gridExtra', 'patchwork', 'tidytext', 'survey', 'fivethirtyeight', 'nycflights13', 
             'babynames', 'neiss', 'ggplot2movies', 'caTools', 'bitops',
             'PKI', 'RCurl', 'RJSONIO', 'packrat', 'rstudioapi', 'rsconnect', 'miniUI')
             
# Rパッケージのインストール
install.packages(pkg_list,
                 repos = "https://cloud.r-project.org",
                 Ncpus = 2)

## Bioconductor - EBImageのインストール
install.packages("BiocManager", repos = "https://cloud.r-project.org")
BiocManager::install("EBImage")

これで、CentOSでのR言語のセットアップは完了である。

参考資料

qiita.com

qiita.com

www.atmarkit.co.jp

Macターミナル・コマンドのショートカットメモ

(削除) ショートカットキー
1文字の削除 Delete
Ctrl (Control) + h
1単語の削除 Ctrl + w
カーソル位置から行頭まで削除 Ctrl + u
カーソル位置から行末まで削除 Ctrl + k
カーソル上の1文字削除 Ctrl + d
(履歴) ショートカットキー
一つ前のコマンド履歴 Ctrl (Control) + p
次のコマンド履歴 Ctrl + n
インクリメンタル検索 Ctrl + r
(カーソルの移動) ショートカットキー
後退 Ctrl (Control) + b
前進 Ctrl + f
行頭へ移動 Ctrl + a
行末へ移動 Ctrl + e
一語後退 Ctrl + b
一語前進 Ctrl + f
(処理系) ショートカットキー
実行中のコマンドを強制終了 Ctrl (Control) + c
実行中のコマンドを一時停止 Ctrl + z
処理の停止(quit) Ctrl + \ (or ¥ )
終了、Logout Ctrl + d
(その他) ショートカットキー
画面をクリアする Ctrl (Control) + l
一つ前とカーソルの文字を入れ替える Ctrl + t
Enter Ctrl + m, Ctrl + j, Ctrl + o

Mac brew で、pythonの古いバージョンを管理するときのTips 〜「python3」から「python」にコマンド名を書き換える〜

pythonの古いバージョン(例えば、3.8とか)をインストールしたいとき、 パッケージのlinkをしないと、それが使えなくなっている。

今回、python3.8をbrewでインストールして、パッケージのlinkをやり直して、 コマンド名を「python」に書き換えるまでをやってみる。

#pythonのパス確認 => /usr/bin内のpythonが参照されている。
$ which python
/usr/bin/python

#python@3.8のインストール
$ brew install python@3.8

#...
#...
#==> Summary
#🍺  /usr/local/Cellar/tcl-tk/8.6.11_1: 3,041 files, 51.6MB
#==> Installing python@3.8
#==> Pouring python@3.8-3.8.7_2.catalina.bottle.tar.gz
#==> /usr/local/Cellar/python@3.8/3.8.7_2/bin/python3 -s setup.py --no-user-cfg i
#==> /usr/local/Cellar/python@3.8/3.8.7_2/bin/python3 -s setup.py --no-user-cfg i
#==> /usr/local/Cellar/python@3.8/3.8.7_2/bin/python3 -s setup.py --no-user-cfg i
#==> Caveats
#Python has been installed as
#  /usr/local/opt/python@3.8/bin/python3
#
#Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
#`python3`, `python3-config`, `pip3` etc., respectively, have been installed into
#  /usr/local/opt/python@3.8/libexec/bin
#
#You can install Python packages with
#  /usr/local/opt/python@3.8/bin/pip3 install <package>
#They will install into the site-package directory
#  /usr/local/lib/python3.8/site-packages
#...

ただ、これだけでは、pythonがアップデートされていない。

#pythonのパス確認
$ which python
/usr/bin/python

#python3のパス確認
$ which python3
/usr/bin/python3

そこで、python@3.8へとlinkを書き換える。

そうすると、/usr/local/bin内の、python3が参照される。

#リンクの上書き
$ brew link --overwrite python@3.8

#パス確認
$ which python3
/usr/local/bin/python3

次に、/usr/local/bin内で、pythonとpip関連コマンドのエイリアス名を書き換える。

#pythonとpip関連コマンドの表示
$ ls /usr/local/bin | grep -e "py" -e "pip"

#pip3
#pip3.8
#pydoc3
#pydoc3.8
#python3
#python3-config
#python3.8
#python3.8-config

#エイリアス名の書き換え
mv /usr/local/bin/pip3 /usr/local/bin/pip
mv /usr/local/bin/pydoc3 /usr/local/bin/pydoc
mv /usr/local/bin/python3 /usr/local/bin/python
mv /usr/local/bin/python3-config /usr/local/bin/python-config 

上記を行うと、python、pipコマンドがそれぞれ、python3.8と紐づけられる。

$ which python
/usr/local/bin/python

$ python -V
Python 3.8.7

$ which pip
/usr/local/bin/pip

$ pip -V
pip 20.3.3 from /usr/local/lib/python3.8/site-packages/pip (python 3.8)

以上、おしまい。

過去の関連記事は、以下を参照のこと。

skume.net

補足

2021年3月4日現在、brew infoで調べたところ、python@3.7以上しか、リポジトリにはないらしい。

$ brew info python@3.6

Error: No available formula or cask with the name "python@3.6".
==> Searching for a previously deleted formula (in the last month)...
Error: No previously deleted formula found.


$ brew info python@3.7

python@3.7: stable 3.7.10 (bottled) [keg-only]
Interpreted, interactive, object-oriented programming language
https://www.python.org/
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/python@3.7.rb
License: Python-2.0
==> Dependencies
Build: pkg-config ✔
Required: gdbm ✔, mpdecimal ✘, openssl@1.1 ✔, readline ✔, sqlite ✔, xz ✔
==> Requirements
Required: x86_64 architecture ✔
==> Caveats
Python has been installed as
  /usr/local/opt/python@3.7/bin/python3

Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
`python3`, `python3-config`, `pip3` etc., respectively, have been installed into
  /usr/local/opt/python@3.7/libexec/bin

You can install Python packages with
  /usr/local/opt/python@3.7/bin/pip3 install <package>
They will install into the site-package directory
  /usr/local/lib/python3.7/site-packages

See: https://docs.brew.sh/Homebrew-and-Python

python@3.7 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

==> Analytics
install: 33,684 (30 days), 73,067 (90 days), 197,222 (365 days)
install-on-request: 27,647 (30 days), 63,841 (90 days), 141,223 (365 days)
build-error: 0 (30 days)


$ brew info python@3.8

python@3.8: stable 3.8.8 (bottled) [keg-only]
Interpreted, interactive, object-oriented programming language
https://www.python.org/
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/python@3.8.rb
License: Python-2.0
==> Dependencies
Build: pkg-config ✔
Required: gdbm ✔, mpdecimal ✘, openssl@1.1 ✔, readline ✔, sqlite ✔, tcl-tk ✔, xz ✔
==> Caveats
Python has been installed as
  /usr/local/opt/python@3.8/bin/python3

Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
`python3`, `python3-config`, `pip3` etc., respectively, have been installed into
  /usr/local/opt/python@3.8/libexec/bin

You can install Python packages with
  /usr/local/opt/python@3.8/bin/pip3 install <package>
They will install into the site-package directory
  /usr/local/lib/python3.8/site-packages

See: https://docs.brew.sh/Homebrew-and-Python

python@3.8 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

==> Analytics
install: 348,989 (30 days), 851,949 (90 days), 4,803,149 (365 days)
install-on-request: 187,812 (30 days), 509,836 (90 days), 1,521,919 (365 days)
build-error: 0 (30 days)