執筆環境を整えた

修論執筆の環境を整えた。メモを残しておく。

やりたいこと

Overleaf ⇔ Git hub ⇔ なにかしらのlocal tex editor

執筆は基本的にOverleafでいいか~と思っていたが、海外出張が2回も入った=ネット無し作業時間が発生したのと、まあ何があるかわからんのでローカルでもバックアップとりつつ作業できるといいなと思ったので

 

環境

  • Overleaf professional

    • CERNのアカウントを通すと無償でprofessionalが使える

  • Git hub

  • VSCode

    • 今回はwin11で動かした

 

準備

  1. Overleafのアカウント登録

  2. Git hubのアカウント登録

  3. Git for windowsのインストール

  4. VSCodeのインストール

  5. TEX Liveのインストール

 

レポジトリを作る

今回はGit hubのブラウザページから新規レポジトリを作成

先輩から頂いていたテンプレートがあったので、vmware経由でこのレポジトリにまとめた

 

Overleafと連携する

OverleafのNew Projectに Import from Github があるのでそれを選択

最初はGit hub連携みたいなのに誘導されるので、それに従ってユーザー名やpwを入力

連携が完了すると、importできるようになる

 

VSCodeと連携する

sshの設定をする
  1. Git bushを開く

  2. ssh-keygen -t ed25519 -C "your_email@example.com"

    • rsaは2023年3月から使えなくなった…

  3. Enter3回

  4. eval "$(ssh-agent -s)"

    • agentのpidが出てくることを確認

  5. ssh-add ~/.ssh/id_ed25519

  6. clip < ~/.ssh/id_ed25519.pub

  7. Git hubのブラウザにアクセス→右上の自分のアイコン→settings→SSH and GPG keys→New SSH key

  8. 出てきた表示の一番広いところに、6でclipしたものをペースト(ctri+v)

  9. Add SSH keyをクリック→完了

  10. git bushで ssh -T git@github.com をして、Hi!みたいな陽気な返事が来たらOK

新しい SSH キーを生成して ssh-agent に追加する - GitHub Docs

gitの設定をする
  1. VSCodeを開く

  2. terminalを開く→git bushを開く

  3. git config --global user.name {your name}

    git config --global user.email {email}

  4. ssh -T git@github.com

  5. 何か聞かれたらyesをタイプして完了

Visual Studio Codeでgit for Windowsを使えるようにするまで | Tech Note Meeting

git cloneする
    1. Git hubを開き、cloneしたいレポジトリのhttpsをコピー

    2. VSCodeでcommand paletteを開く

    3. git cloneと検索→選択して開く

    4. 1でコピーしたURLを貼り付ける

    5. Git hubとの連携を尋ねられるので、誘導に従って連携

      • ユーザー名とpwを入力する感じのやつ

    6. レポジトリの保存先を聞かれるので指定

    7. 完了

 

Texを使えるようにする

  1. TEX Live managerからlatexmkがインストール済みか確認

  2. VSCodeでterminalを開く→power shellで

  3. C:のユーザー名直下に .latexmkrc を作成

    • $latex = 'platex  -halt-on-error -synctex=1 %O %S';

      $latex_silent = 'platex -synctex=1 -halt-on-error -interaction=batchmode';

      $bibtex = 'pbibtex %O %B';

      $dvipdf = 'dvipdfmx %O -o %D %S';

      $makeindex = 'mendex %O -o %D %S';

      $max_repeat = 10;

      $pdf_mode = 3;

  4. LaTex Workshopをインストール

  5. VSCode左下の歯車→右上のファイルマーク

  6. 開いた setting.json を編集

    • "latex-workshop.intellisense.package.enabled": true,
          "latex-workshop.latex.autoClean.run": "onBuilt",
          "latex-workshop.latex.clean.fileTypes": [
              "*.blg",
              "*.idx",
              "*.ind",
              "*.lof",
              "*.lot",
              "*.out",
              "*.toc",
              "*.acn",
              "*.acr",
              "*.alg",
              "*.glg",
              "*.glo",
              "*.gls",
              "*.ist",
              "*.fls",
              "*.log",
              "*.fdb_latexmk",
              "*.snm",
              "*.nav",
              "*.dvi",
              "*.synctex.gz"
          ],
         
          "latex-workshop.view.pdf.viewer": "tab",

       

          "latex-workshop.latex.tools": [
              {
                  "name": "latexmk",
                  "command": "latexmk",
                  "args":[
                      "%DOCFILE%"
                  ]
                },
          ],

       

          "latex-workshop.latex.recipes": [
              {
                  "name": "latexmk",
                  "tools": ["latexmk"]
                },
          ],

       

          "latex-workshop.latex.autoClean.run": "onFailed"
  7. 右上に▶のビルドボタンが出るので、それでビルド

  8. 生成されたpdfを開く→できた!

0からTeX環境を構築する - Qiita

VScodeでLaTex環境を整える際のあれこれ

VSCodeでのLaTeXの環境構築

 

git push / pull する

Overleaf

左上のMenu→Git hubでこのポップアップが出てくる

VSCode

左上のsource controllからcommitやpushが可能

コメント必須っぽい?

 

 

 

WSL2でVPN接続

WSL2でUbuntuを動かしてCiscoを使ってVPN接続しようとしたら存外に面倒だったという話。実際に実行した手順で雑にメモしておく。気が向いたら「こうすればよかったよね」案も示す。

夜な夜な書いているのでちょいちょい日本語がおかしい

 

 

目標

WSL2で動いているUbuntu20.04にCisco annyconnectを使ってVPN接続できるようにする。

 

環境

・WSL2を利用したUbuntu20.04

 - GUIは使えない

・PCは Windows11 / AMD Ryzen7 / メモリ16GB

 

注意

WinでVPN接続しているとWSLでネットワーク接続できないっぽいので、WinでVPN繋いでいたら切りましょう。ケースによるだろうし対処法もあるんだろうけど…

 

0.はじめに

$sudo apt update

$sudo apt upgrade

とりあえずこれはやっておきましょう

 

1.ネットワークが使えるか確認する

$ping youtube.com

┗なんかいろいろデータ来てるっぽかったらOK(どんどん行が追加されていればOK)

$name resolution failure とか言われたら $ping 8.8.8.8 を試す。

 ┗うまくいってる=DNSがしんでるので設定確認*

 ┗うまくいかない=ネットワークにつなげていないのでpower shellとかWin側から確認

 

*DNSを何とかするヒント:「WSL2 名前解決」とかでググると先人の知恵がある。雑に言えば、WSL2では毎度毎度新たにIPが振られてそれが問題起こしがちなので、 $resolv.conf を書き換えるなりころして新しいファイルにするなりして、IPアドレスを固定してやればいい。固定先は $8.8.8.8 とか。

 

2.Ciscoを入れる

前過程でいろいろあってWinに~.tar.gzを入れていたのでそれを移してきて*展開した。

 *WinからWSLへ移すのは $cp /mnt/User/****といった感じ

ので、展開するところからの記録。

参考:

yumetodo.hateblo.jp

 

2.1解凍

 $tar -xf {ファイル名.tar.gz}

 

2.2インストール

 $sudo apt-get install network-manager-openconnect

 $cd {ファイルのあるディレクトリ}

 $sudo ./vpn_install.sh

とまあ、ここまではよかったのだが…

次の

 $sudo systemctl daemon-reload

を叩いたらエラーをはかれた。エラー文は正確には記録していないが

 System has not been booted with systemd as init system (PID 1). Can't operate.

のような感じ。

 

2.3systemctlを有効にする

 $systemctlが使えないことには先に進めないので、とりあえず使えるようにする。

ちなみに、$systemctl が使えないのは、PID 1がsystemdじゃないかららしい。

2.3.1genieを入れる

genieというのを入れて適用させれば、PID 1をsystemdにできる。便利なものを作ってくれた人がいるもんだ…

参考:

shikiyura.com

 

$sudo apt install -y daemonize dbus gawk libc6 libstdc++6 policykit-1 systemd systemd-container

$wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb

$sudo apt update;

$sudo apt upgrade;

$sudo apt install dotnet-runtime-5.0

 

$sudo su

--以下ルートユーザーで

$apt install apt-transport-https

$wget -O /etc/apt/trusted.gpg.d/wsl-transdebian.gpg https://arkane-systems.github.io/wsl-transdebian/apt/wsl-transdebian.gpg

$chmod a+r /etc/apt/trusted.gpg.d/wsl-transdebian.gpg

$cat << EOF > /etc/apt/sources.list.d/wsl-transdebian.list deb https://arkane-systems.github.io/wsl-transdebian/apt/ $(lsb_release -cs) main deb-src https://arkane-systems.github.io/wsl-transdebian/apt/ $(lsb_release -cs) main EOF

$apt update

$exit

--ルートユーザー抜ける

$sudo apt install systemd-genie

2.3.2genieを実行する

上記でインストールが完了したので、実行してみる。

$genie -s

…と、困ったことに2つほどエラーを吐かれた。

Failed units will now be displayed (systemctl list-units --failed)

: UNIT LOAD ACTIVE SUB DESCRIPTION

● systemd-remount-fs.service loaded failed failed Remount Root and Kernel File Systems

● multipathd.socket loaded failed failed multipathd control socket

↑こんな感じ

ただインターネットの海は素晴らしく、これについても対処法が見つかったのでそれを参考に実行。

参考:

zenn.dev

 

$mount | grep '\s/\s'

出力結果の最初の部分を確認 例:/dev/sdc

$sudo e2label {上で確認したやつ} cloudimg-rootfs

$sudo systemctl disable multipathd.socket

$sudo usermod -aG lxd $USER

$exit

 

これで再度実行

$genie -s

すると

Waiting for systemd....!!!!!

と表示されてエラーもなくめでたしめでたし。

元記事だとさらに何かしているようだけど、とりあえず今のところこれで回ってる。

 

2.4インストール続き

$systemdctl が使えるようになったので、Ciscoのインストールに戻る。

$sudo systemctl daemon-reload

$sudo systemctl start vpnagentd.service

これでインストール完了。

 

2.5起動

てなわけで起動してみる。GUIはないのでアイコンとか探せない。

 $cd /opt/cisco/anyconnect/bin

 $./vpn

 

できたー--!!!

 

あとは

 VPN>connect {繋ぎたい先}

でユーザーネームなりパスワードなりを入力していけばOK。

 

 

 

 

 

 

 

 

ROOT 6.24.00 を Ubuntu にインストール

CERNが提供しているROOTの6.24.00(2021.6.3現在の最新版)をインストールしたので備忘録。入れたてのUbuntuにROOTを仕込んだ。なお、現状私はコマンド操作etcに明るくないので無駄なことをしているかも。

エラーメッセージの記録を取っていないのでかなり雑 & 本当に必要だったのかわからない操作が多々ある...

 

 

目標

Ubuntu20.04 に ROOT/PyROOT を Python3 と Python2 の双方でimportできるようにインストールする。

 

環境

VirtualBox 6.1 を利用した Ubuntu20.04

 - メモリ割り当て 2GB

 - ストレージ 固定 25GB(利用可能19GB)

・PCは Windows 10 / Intel Core i7 / メモリ8GB

 

0.はじめに

0.1.updateとupgrade

$ sudo apt update

$ sudo apt dist-upgrade

 ・とりあえずこれはやる。

0.2.ビルドツールを入れる

$ sudo apt install build-essential

 ・もう入っているなら不要。

 

1.準備

1.1.Pythonを確認

$ Python3 --version

$ Python2 --version

 ・バージョンを確認。

$ which Python3

$ which Python2

 ・パスを確認。3.4.CMakeで環境チェック・build準備 で使うのでメモ。

▶ Ubuntu20.04の場合、デフォルトではPython3のみだったので $ sudo apt install Python2 を実行してPython2をインストールした。

1.2.CMakeをインストール

$ sudo apt install cmake

$ cmake --version

・バージョンが 3.14 以降であることを確認。

・CMakeは次の 2.1.Required Package を入れる のところでインストール可能だが、それだとうまくいかなかったので別途手動でインストールした。

 

2.パッケージを入れる

ROOTのHPに何が必要か書いてあるのでそれを参照。

2.1.Required packagesを入れる

$ sudo apt-get install dpkg-dev g++ gcc binutils libx11-dev libxpm-dev libxft-dev libxext-dev libssl-dev

 ・CMakeとPythonは別にインストールしたので含めなかったけど、たぶん「もう手動で入ってるから飛ばすね」ってなるだけだから含めても問題ないと思う。

2.2.Most common optional packagesを入れる

$ sudo apt-get install gfortran libpcre3-dev xlibmesa-glu-dev libglew1.5-dev libftgl-dev libmysqlclient-dev libfftw3-dev libcfitsio-dev graphviz-dev libavahi-compat-libdnssd-dev libldap2-dev python3-dev python2-dev libxml2-dev libkrb5-dev libgsl0-dev

 ・libqt4-dev は見つかりませんと警告されたので入れなかった(理由はわからない)。

 python-dev ではなく python3-dev と python2-dev を指定。

 

3.ROOTをインストール

ROOTをインストールしていく。ここからはROOTのHPに説明がある通りなので、それに即してコマンドを入力した。

3.1.gitを設定

$ sudo apt install git

・まずgitを入れる。これは案内がないので忘れずに。

3.2.ソースコードをもらう

$ git clone --branch latest-stable https://github.com/root-project/root.git root_src

 ・HP内には

 $ git clone --branch v6-2*-**-patches https://github.com/root-project/root.git root_src 

 とバージョンを指定する例もあったけれど、これだと最新の 6.24.00 はエラーになってしまった。

 ・latest-stable でインストールするとちゃんと最新の 6.24.00 になっていたので、最新を入れたければ latest-stable がいいのかもしれない。

3.3.ディレクトリ作成・移動

$ mkdir root_build root_install

$ cd root_build

 ・ソースディレクトリ(ソースコードclone したときにできたディレクトリ root_src )ではbuildできないらしい。移動を忘れずに。

3.4.CMakeで環境チェック・build準備

$ sudo cmake -DCMAKE_INSTALL_PREFIX=/home/*******/root_install -DPython3_EXECUTABLE=/usr/bin/python3.8 -DPython2_EXECUTABLE=/usr/bin/python2.7 /home/*******/root_src

 ・******* はユーザーネーム

 root_install python3.8 python2.7 root_src いずれも絶対パスで明記。なお、python3.8 python2.7 の場所は 1.1.Pythonを確認 でチェック済み。

 ・最初はオプション無しの

  $ sudo cmake -DCMAKE_INSTALL_PREFIX=/home/*******/root_install /home/*******/root_src

 を打ち込んでインストールしたが、動作確認したらPython2系にしか対応していなかったのでオプションをつけて入れ直しした。

 ・ sudo は1回目のインストール時には不要だったが、2回目のインストールではファイルを読み込めないとのエラーが出たので追加(理由はわからない)。

 ・ちなみにこのプロセスはbuildではなく、buildできる環境かチェックして必要なファイル等を用意してくれるらしい。

3.5.buildする

 $ sudo cmake --build . --target install

 ・これでbuildが開始される。左端に[ 0%]とか出てきたらOK。

 ・$ sudo cmake --build . -- -j8 と打てば8スレッドで実行してくれる。(スレッド数はPCを確認)

3.6.環境設定

$ source /home/*******/root_install/bin/thisroot.sh

 ・ちゃんと起動できるように設定しているらしい。

 

4.動作確認

4.1.通常の起動

$ root

f:id:T0MAT0_PHYS:20210605172850j:plain

こうなればOK
4.2.Python3でimport

$ python3.8

>>>import ROOT

f:id:T0MAT0_PHYS:20210605172921j:plain

import したあとに >>> のみが表示されればOK
4.3.Python2でimport

$ python2.7

>>>import ROOT

f:id:T0MAT0_PHYS:20210605172944j:plain

import した後に >>> のみが表示されればOK

 

参考サイト

root.cern

blog.123abcsoft.com

 

 

おまけ:CMake最新版のインストール

結局必要なかったが、いろいろ迷走している段階でCMakeの最新版をインストールしたのでその流れをメモ。

1.libssl-devを入れる

$ sudo apt install libssl-dev

 ・これ入れないと$ ./bootstrapCould NOT find OpenSSLのエラーが出る。

2.ソースコードをもらって展開

 $ wget https://cmake.org/files/v3.20/cmake-3.20.3.tar.gz

 $ tar xvf cmake-3.20.3.tar.gz

 ・ $ tar xvf で展開 → cmake-3.20.3 ディレクトリができるってことらしい。

  ・2021/6/3現在 3.20.3 が最新だったのでそれを入れた。

3.インストール

$ cd cmake-3.20.3

$ ./bootstrap && make && sudo make install

 ・cmake-3.20.3 に移動してから bootstrap と install

4.PATHを通す

$ export PATH="/usr/bin:$PATH"

・指定する場所が分からない場合は $ cmake --version と打って $ bash:  の後ろを確認する。例えば、$ bash: /usr/bin/cmake: そのようなファイルやディレクトリはありません と表示された場合は /usr/bin/ を指定すればよい。

 

 参考サイト

qiita.com

qiita.com