3  Tech. Memo

技術的なメモを記す。備忘録であり、有用かどうかは不明。

3.1 Window’s Installation of R, RStudio, TeX

Windows で、RStudio 上で R を使用し、さらに、RMarkdown 文書を PDF で出力するときに、アカウントが日本語名であること、および、OneDrive の設定が問題になることが報告されている。実験結果を以下に記す。

以下は、あくまでも、一つのPCでの実験結果で、普遍性があるかどうかは不明である。異なる、問題が生じた場合には、著者のホームページにある電子メールアドレスにご一報いただけると嬉しい。かなりの部分は、macOS でも同じであるが、ここでは、時々問題が起こる、Windows についてのみ記す。

3.1.1 環境について

いずれは、Windows 11 についても、調べてみたいが、以下は、Fujitsu LIFEBOOK A577/R 上に、Windows 10 を載せたモデルである。

3.1.1.1 Command Prompt: systeminfo

  • OS: Microsoft Windows 10 Home

  • OS Version: 10.0.19044 N/A ビルド 19044

  • System Model: FMVA18005

Windows は、Windows 10/11 それぞれに、非常にたくさんの種類があり、さらに、バージョンによっても、変わるため、すべてのシステムに対応することを確認することはできない。問題が出たときに、一つ一つ対応する以外に、方法はないように思われる。

3.1.2 目標とすること・トラブル概要

この項目では、管理者権限があるアカウントの場合について記する。管理者権限がない場合は、別項目を参照。

  1. R をインストール

  2. RStudio をインストール

    • Posit: Download RStudio から、RStudio Desktop Free を選択すると、RStudio Desktop のページに行き、R をまずは、インストールするように指示があり、その右から、ダウンロードできるようになっていますから、すべて初期設定(default)でインストール
  3. RNotebook を新規作成することで、いくつかのパッケージをインストール

    • RStudio を実行、New Project を作成し、File から New File > R Notebook を選択。この段階で、インストールが必要だと表示されるので、インストール。ファイル名を付けて保存。Preview を実行。Code Chunk を実行して、Preview。

    • RStudio が提供する、テンプレートを使うことで、それ自体には、問題がないので、確認がしやすい。自分で作成した、R Notebook などを使う場合は、その中に、他のエラーが含まれている場合もり、問題が複雑になるので、上記の方法をお勧めする。

  4. RNotebook を PDF で出力

    • R Notebook の knit より、knit PDF。TeXLive などが導入されていなければ、最初は、TeX System が見つけられないと出る。

    • Console で、tinytex::install_tinytex() を実行してから、knit PDF

    • 3 と同じ理由で、R Notebook のテンプレートを変更せずに、実行することをお勧めする。エラーの背後にある問題を切り分けるためである。

RNotebook を新規作成することで、かなりの数の、Package をインストールすることになり、パッケージインストールに関して、確認ができる。

PDF で出力することで、TeX (実際にはその総合開発環境の TeXLive) 環境の確認が可能である。加えて、個人的には、日本語環境の確認をすることにしているが、TeX 環境が適切に稼働していれば、適切に、PDF も作成できるので、日本語環境の問題は、別項目とする。

上記のプロセスで、全く問題がなければ、この項目でのトラブルシューティングは不要。以下簡単なメモ。

  1. R のインストールでは問題は起きないと思われる。ただし、言語を英語を選択しても、システムの言語が日本語だと、日本語になるようだ。

  2. RStudio は、通常のものは、管理者権限がないとインストールできない。管理者権限がない場合は、当該項目を参照。

  3. Package を、経験的には、27個ほど、インストールするが、この時点でエラーが起こる場合もあるようだ。Tools > Global Option > Packages から、Repository を 設定すれば、問題がないようである。ネット接続に問題がある場合は別対応。OneDrive で、HomeDirectory も、バックアップしている場合は、問題が起こるようである。対応は下に記する。

  4. PDF 作成には、TeX システムが必要であるが、TeX システムは、環境変数 Path に書き加えて、管理するが、このときに、Path に、日本語などの2バイト文字が含まれると、問題が起こる。その回避の方策は下に記する。

3.1.3 PDF の作成について

上にも書いたように、基本的に、TeX システムが適切に動いているかどうかが鍵となる。TeXLive のシステムを、PC にインストールできていれば良いので、R の Package tinytex よりも、利用者も多く、ネット上の情報も多いが、全てをインストールするには、6GB 程度のディスク容量が必要である。TeX を RMarkdown など、R 関連以外でも使う場合は別として、このディクス使用量は大きいので、tinytex を利用するのがおすすめである。TeXLive のインストールは、主要なものだけを、選択すれば、使用する ディスク容量も減るが、それでも、2GB 近く必要なので、tinytex を使って、必要なもののみ、インストールしていく方法が、お勧めである。環境変数を確認しながら、インストールしていくのが望ましいが、一応、それをしなくても、可能なようなので、まずは、その方法から書く。

3.1.3.1 tinytex, TinyTeX

紛らわしいが、これら二つは別物である。tinytex は、TeXLive を管理する、R のパッケージ。TinyTeX は、TeXLive の最小版である。そこで、R では、tinytex を使って、TinyTeX をインストールしたり、アンインストールしたりすることになる。

トラブルは、TinyTeX をインストールする段階と、これを使って、PDF を作成する段階と2箇所で起こりうる。

まずは、RStudio で、R Notebook を利用しようとすると、少し待つことになるが、tinytex が自動的にインストールされる。(右下の窓枠の Packages を見ると、最初は入っていないが、R Notebook を利用しようとして、インストールを許可すると、tinytex がチェックは入っていないが、リストには加わっていることが確認できる。)

PDF を作成しようとすると、TeX システムが見つからないと出、TinyTeX をインストールすることが最初のオプションとして示される。

tinytex::install_tinytex()

コンソールで実行する。すでに、TeXLive パッケージが入っていたり、以前、インストールした、TinyTeX の残骸(アンインストールしても、Path が残っているなどして)がある場合には、エラーになる。エラーが出ない場合も

tinytex::is_tinytex()

と、コンソールで実行すると、TRUE または FALSE と出る。

TRUE なら、R Notebook から、PDF を作成する。PDF が作成できれば、問題なし。アカウント名が日本語だったり、OneDrive の設定によっては、ここで、PDF が作成できない状態が生じる。

3.1.3.2 問題解決法

わたしの環境では、さまざまな設定を変えて実験したが、かならず問題が解決するというわけではないと思われることを言及しておく。以下の命令は、tinytexマニュアルによる。

  1. 問題が起こったら、TinyTeX を アンインストールする
    • tinytex::unstall_tinytex() を コンソールで実行
  2. サインアウトし、サインインしなおす
    • 環境変数(Path)の設定に、反映される必要がある。
  3. C ドライブの新しいディレクトリーにインストールする
    • tinytex::install_tinytex(dir = "C:/myTinyTeX") を コンソールで実行

    • myTinyTeX は自由に決めて良いが、C ドライブに、新しくディレクトリーを作成して、そのディレクトリーに、インストールを実行するものである。もし、すでに、ディレクトリーを作成した場合は、tinytex::install_tinytex(dir = "C:/myTinyTeX", force=TRUE) とする。

  4. サインアウトし、サインインしなおす
    • 環境変数(Path)の設定に、反映される必要がある。
  5. R Notebook から knit PDF を利用して、PDF を作成する。

3.1.3.3 問題が解決しないとき

丁寧に、エラーメッセージを確認するしか基本的に方法はないが、何度も、インストール、アンインストールを繰り返していたり、他の方法も含めて、試している場合には、環境変数が適切に書き換えられない場合もあるようなので、以下の確認をお勧めする。

  • Windows の検索ボックスに、set などと入力して、設定を開く。(他にも方法はたくさんある。)

  • 設定の検索窓に、kan などと入力、または環境変数の編集と入力すると、「環境変数の編集」を選択できる。

  • 上の段に、自分の環境変数雨、下に、システム環境変数が表示される。設定を開くときに、右クリックなどで、管理者として実行をすると、下の段のシステム環境変数を書き換えることができるが、トラブルが生じる場合もあり、現在の作業には、不要。

  • 環境変数(上の段の自分の環境変数)の Path を確認する。長いと、右端まで確認できないが、ダブルクリックすると、Path 上の、ひとつひとつの ディレクトリーが各行に表示され、確認がしやすくなり、編集も可能になる。なお、一続きの場合には、; が、区切りになている。

  • 環境変数のPathは初期状態では、次のようになっている。‘UseName’ がそのアカウント名である。ここに、日本語が入っていると、TeX や、TinyTeX はインストールできない。

    • Path: C:\Users\'UserName'\AppData\Local\Microsoft\WindowsApps
  • TinyTeX をインストールすると上の Path の後ろに、以下のようなものが追加される。‘myTinyTeX’ の部分が、実際にインストールされた場所になる。

    • C:\myTinyTeX\bin\windows
  • 注:\, /, ¥ で混乱した方もおられるかもしれないが、Windows システムでは、通常、/ forward slash を使うが、Unix などのシステムでは、\ を使い、日本語システムでは、\¥ マークに置き換わる。Windows では、場合によって、両方が使われている。どのような区別がされているかは、理解できていません。

  • R や RStudio や texlive 以外にも、さまざまなものをインストールすると、通常は、C:\Users\'UserName'\AppData\Local\Microsoft\WindowsApps にインストールされますが、texlive のように、システム全体に関わる作業をするものは、別の場所に、インストールされ、その Path が追加されます。どんどん、増えていき、非常に複雑になる場合もあります。一般的には、後ろに追加されます。問題が起こる場合は、Path をみて、TinyTeX 関連の Path がどのように記述されているかをみて、その部分だけ、削除し、一旦、サインアウトし、もう一度、サインインしてから、実行してみてください。

  • エラーメッセージ(左下のいくつかのタブにエラーメッセージが表示されます、また、TeX 関係は、右下の Files のもとに、.log とついたファイルが生成されます)を保存して、詳しい方に質問するのが良いでしょう。コンピュータの設定自体を聞かれたら、コマンドプロンプトで systeminfo としたり、R で Sys.getenv() として表示されるものに、情報が含まれています。

  • Console で、Sys.setenv(LANG = "en") と英語に切り替えると、エラーメッセージが英語で出されまう。Google 検索などで、そのエラーメッセージで検索すると、解決策が得られることがあります。日本語では、コミュニティが小さいので、解決策が限られます。日本語に戻すときには、Sys.setenv(LANG = "ja") です。

  • なにかプログラムをインストールするときは、アンインストールする方法も確認しておくことをお勧めします。Windows のアプリは、設定の、アプリの項目から、当該のアプリをみつけ、右クリックすると、アンインストールできるようになっています。その後には、必ず、サインアウトをして、サインインしなおしてください。

どうしても解決策が見つからないときは、別のアカウントを作成して、インストールすることをお勧めします。

3.1.4 別のアカウントを作成する方法

  1. 設定のアカウントから、新しいユーザを作成を選択

  2. その他のユーザーをこのPCに追加

  3. 「このユーザーのサインイン情報がありません」を選択、実行

  4. 「Micorsoft アカウントを持たないユーザを追加する」を選択、実行

  5. ユーザー名、パスワード を設定、その下の質問三つを選択して回答

    • 実験の場合は別として、ユーザー名は、ローマ字名(半角)にしてください。

    • 新しく作成すると、忘れることが多いので、記録を残す。

  6. アカウントを選択し、アカウントの種類の変更から、管理者を選択

3.1.5 非管理者として R と RStudio をインストール

  • R は管理者の場合と同じようにして、インストールできます。ただ、管理者ではないので、全てはインストールできないことの注意が表示され、さらに、インストールする場所を聞かれます。初期設定では、C:\Users\'UserName'\AppData\Programs の中のディレクトリーが指定されます。

    • 古いバージョンのものが必要になったり、もとのものを残して最新のものを試すなどにも使えます。管理者の場合に、すべてのユーザ向けではなく、自分用、または、実験用にインストールするときは、インストールするディレクトリーを、以下のものを参考にして設定してください。
  • RStudio は、通常のものは、インストールできません。同じページ RStudio Desktop の、下の方に、All Installers and Tarballs とあり、その下に、Zip/Tarballs とありますから、そこから、最後に Zip とついているファイルをダウンロードしてください。ダウンロードしたものを選択し、すべてを展開を選択して、展開します。すると、RStudio.exe が見つかると思います。エクスプローラの 表示から、拡張子にチェックをいれると、exe まで確認できると思います。

    • ダウンロードフォルダにある、Zip ファイルと、展開したものが紛らわしいので、Zip ファイルのほうは、展開後、消去しておくことをお勧めします。また、Windows のデストップで、右クリックすると、新規から、ショートカット作成を選び、RStudio のショートカットを作成しておくことをお勧めします。

あとは、他の場合と同様です。

3.1.6 TeXLive のインストール

  • 自分のアカウントを確認します。ファイル・エクスプローラから C: Users(ユーザー)の自分のアカウントを見て、半角英数になっていれば、問題ありませんが、もし、全角文字が使われていたら、インストールはできません。上に書いた方法で、別の管理者アカウントを作成し、そのアカウント名で、インストールしてください。そうすれば、自分のアカウントに戻って、利用することが可能なはずです。

    • アカウントを移動するのは、面倒ですから、その場合は、Full インストールしておくことをお勧めします。tlmgr という、TeXLive Manager で、不足しているパッケージなどをインストールするときに、アカウント名の問題が生じる可能性があるからです。
  • TeX Live on Windows に行き、ここでも推奨している、install-tl-windows.exe からダウンロードし、インストールします。「Windows によって、PC が保護されました。」というメッセージが表示されますから、詳細情報をクリックして、実行します。このあと、しばらくして、「高度な設定」と下にある画面が表示されます。ハードディクス容量が十分ああり、かつ、設定に自信がない場合は、すべてインストールすることをお勧めします。

    • スキームが 初期設定では、full スキームとなっていますから、変更として、basic スキーム(plain および latex)を選択し、言語を、日本語と英語、LaTeX 推奨パッケージを追加しておけば、ほとんど問題ありません。これだと、2GB 程度だと思います。ただ、一つだけ、足りないものがあります。

    • Windows の検索ボックスに、tex と入れて、TeX Live マネージャーを立ち上げ、framed を、すべての中から検索して、インストールしておきます。

    • 管理者権限で、コマンドプロンプトから、tlmgr update --self、次に、tlmgr install framed としても、インストールできます。この、tlmgr を使いたくないときは、全てをインストールしておくのが良いでしょう。

3.1.7 OneDrive の設定について

初期設定のままで使っていると、OneDrive に バックアップされる、設定になっていることが多く、ファイルが多くなってくると、最初の5GB を越してしまうため、別契約をすることになります。そのようにして使っておられる方もおられると思いますが、設定の部分(Home)が、OneDrive 上にある場合は、インストールがうまくできない場合があります。さらに、RMarkdown などで、文書を作成するときには、一時的にファイルが作成され、エラーがない場合はあとで削除、エラーが出ると、それを残すというような作業が行われるため、バックアップをしていると、どんどん、そのファイルが増えていきます。そこで、これらのためには、OneDrive を使わず、別の、場所で作業をすることをお勧めします。大切なファイルは、作業後、OneDrive にコピーするなり、Git-GitHub-RStudio 連携などを使うことをお勧めします。ただ、Git-GitHub-RStudio 連携は少し難しいので、興味のあるかたのみとします。

まず、ファイル・エクスプローラを開くと、OneDrive と書かれた、Directory が見えます。その中のファイルが基本的に、OneDrive にバックアップされているものです。

OneDrive を左クリックすると、設定がひらけます。基本的には、デスクトップ、ドキュメント、フォトをそれぞれ、OneDrive でバックアップするかという設定になっています。設定をやめても、削除はされませんが、その後の変更は反映されません。

すでに、OneDrive を使っている場合には、そのバックアップを停止したときに、どのようなことが起こるか確認が必要ですので、C ドライブ内に、R 用の、Directory を作成し、そこで作業するのが良いのですが、さまざまな設定が、Home ディレクトリにあり、それが、バックアップされている場合には、他のディレクトリに、たとえば、プロジェクトを作成したり、Library のディレクトリを指定しても、問題が解決しない場合が多いようです。その場合は、まずは、他のアカウントを作成し、そちらで作業をすることをお勧めします。

そのあとで、バックアップするディレクトリを整理して、OneDrive のバックアップで、デスクトップや、ドキュメントのバックアップをしているのを止め、OneDrive 内に、新たに、ディレクトリを作成して、バックアップしたいものを、その中に移して、能動的に、バックアップするディレクトリを決めるのがよいと思います。

個人個人で状況が異なりますので、この程度にしておきます。

3.1.8 備考

LLM の一つである Google Bard が 2023年5月中旬に公開され、試してみた時の一つの応答が、TeXLive および R Packages のインストールに関係しているので、覚書として記する。ChatGPT, GPT4 は、基本的に2021年9月までのデータに依存しているせいか、以下の回答に近いものは、得られなかった。

Q. 2021年、Windowsシステムで、TeXやRのパッケージでインストールができない問題がありましたが、現在では解決しています。一時ファイルのOneDriveの問題に関連して、これらの問題を扱うためのシステム変更があったのでしょうか。

Bard [2023.05.15]. はい、2021年にWindowsシステムでTeXやRのパッケージをインストールする際の問題に対処するためのシステム変更がありました。この問題は、OneDriveとTeX Liveインストーラーの競合によって引き起こされました。OneDriveは時々TeX Liveインストーラーと同じ場所に一時ファイルを作成し、インストーラーが正常に完了しないようにしました。

問題を解決するために、MicrosoftはOneDriveの一時ファイルの作成場所を変更する更新プログラムをリリースしました。この更新プログラムは2022年1月にリリースされ、ほとんどのユーザーの問題を解決しました。

ただし、一部のユーザーは引き続きWindowsシステムにTeXやRのパッケージをインストールする際に問題が発生する可能性があります。まだ問題が発生している場合は、次の手順を試してください。

• OneDriveをアンインストールします。

• コンピューターを再起動します。

• OneDriveを再インストールします。

• TeXとRのパッケージを再度インストールしてみてください。

それでも問題が解決しない場合は、Microsoftサポートにお問い合わせください。

3.2 Git-GitHub-RStudio

RStudio で、Git-GitHub を利用するときのメモを書いておきます。

3.2.1 Basics

用語:ワークツリー(work tree with branches)、ステージ(staging)、ローカルリポジトリ(local repository in the PC)、リモートリポジトリ(remote repository in GitHub)、アップストリームリポジトリ(upstream repository in the owner’s GitHub account)、プルリクエスト(pull-request and its approval)

Git では、-–- を使い分けるので注意が必要。- は、コマンドオプション、-- は、コマンドオプションと、コマンド変数を分けるためのもので、- のあとは、一文字。

  • Help:git -help COMMAND

    • 例:git commit --help

    • 例:git -help –-no-pager branch

  • 初期化:git init

    • RStudio: New Project 作成時に、Check または、Version Control Git
  • GitHub 初期設定:

    • git config --global user.name "Name"

    • git config --global user.email EmailAddress

    • RStudio: SSH などの初期設定をしてあれば、Version Control Git で、Set up 可能。確認:Project Option and Global Option

  • 変更記録:git add . / git add README.md

    • git commit -m "message"

    • RStudio: Add されたものが、Git Tab 上に表示、Staged に、チェックをつけ、それから、Commit

  • 状況確認:変更内容のチェック:diff/status

    • ワークツリーとの差分:git diff FileName

    • リポジトリーとステージの差分:git diff -staged

    • 変更ファイルのチェック:git status

    • RStudio: Git Tab のリストにあがっているものについて、Diff ボタンを押すと、表示される。

  • 履歴の確認:git log

    • RStudio: Git Tab の History を押すと、commit のリストが表示され、その、Log を見ることができる。
  • もとに戻す:git restore

    • ワークツリーの変更の取り消し:git restore FileName

    • ステージにあげた変更をワークツリーに戻す:git restore --staged FileName

    • RStudio: Staged にチェックをつけ、More の revert を選択すると、同様なことが可能のように思われる。

  • ブランチを作成:branch、ポインター HEAD

    • 作成:git branch BranchName

      • RStudio: New Branch から作成可能
    • ブランチの一覧表示:git branch

      • RStudio: New Branch の右の三角から表示、選択
    • GitHub も含めたブランチの一覧表示:git branch -a

      • RStudio: New Branch の右の三角から表示、選択
    • 切り替え:git switch BranchName

    • 新しいブランチを作成して切り替え:git switch --c BranchName

    • マージ:git merge BranchName

      • 難しい。RStudio では、Terminal からで、Editor(Default は、vi 慣れていなければ、Sys.setenv(EDITOR="nano")などとするのが得策。) が立ち上がる。
    • GitHub 上のものをマージ:git merge orign/main

    • コンフリクト conflict: 最終的なものを Editor  で残す。

  • GitHub Origin の追加:git add remote orign

    • git add remote origin URL

    • git add upstream origin URL なども可能

  • Push/Pull (Fetch+Merge)/Fetch: リモート名 ブランチ名

    • git push orign main

      • RStudio: Push ボタン
    • git pull origin main

      • RStudio: Pull ボタン
    • git pull (省略可能)

    • git fetch origin (リモート名)confilict が起こりそうな時は、fetch + merge

      • 変更途中の時は、fetch + merge 、main に取り込みたい時は、pull
    • git fetch --prune

    • git remote prune origin

      • RStudio では、Git Tab の一番右の、Refresh ボタン
  • Pull Request の手順

    • main を最新の状態に更新: 例:This branch is 2 commits behind icu-hsuzuki:main. Synk fork: This branch is out-of-date > Update branch

      • git branch

      • git pull origin main

    • ブランチを作成

      • git switch -c BranchName
    • ファイルを修正・コミット

      • git add .

      • git commit -m "message"

    • Push

      • git push origin BranchName
    • Pull Request

      • @GitHub: Pull Request > New Pull Request

      • base: main <- compare: BranchName(Comparing changes で、変更を提案している BranchName を確認)

      • Create Pull Request> Add Title, Comment > Create Pull Requst ボタン

      • File Changed を確認

      • Reviewer を追加しておいてみてもらう。

      • Merge Pull Request

      • Delet Branch: git branch -d BranchName (-D force)

      • Code で確認

    • Code Review

    • Merge

3.3 Removing Large Files

  • Scenario 1: The Large File Was Just Added in the Most Recent Commit

    • git rm --cached big_file_name

    • git commit --amend -C HEAD

  • Scenario 2: The Large File Was Committed Prior to The Most Recent Commit

    • Locating the Last “Good” Commit: git log --oneline

    • Initiate a Rebase Between the Last “Good” Commit and the Current Commit: git rebase -i 8464da4

    • This will open up a file in your Git editor (in my case, Vim), that looks something like this:

      • pick -> edit
    • git rm --cached csv_building_damage_assessment.csv

    • git commit --amend -C HEAD

  • Reset changes: git reset --hard SHA-Name

3.3.1 Simple Pull Request

  1. Log in to your GitHub account

  2. Go to the respository you want to comment

  3. Fork the repository

  4. Clone the repository (forked from the original) using ssh

    1. git clone git@github.com:account/repo

    2. Enter ssh permisssion

    3. less FileName

  5. git checkout -b Branch-Name

  6. edit the file

  7. git status

  8. git diff

  9. git add FileName

  10. git commit -m “short message”

  11. git push origin Branch-Name

  12. In GitHub acount: Compare & pull request

  13. Add a short comment

  14. Push Create a pull request

3.3.2 Owner Side Approval

  1. See commit, file changed

  2. Merges pull request

  3. Confirm merge

3.3.3 参考資料