執筆環境を整えた
修論執筆の環境を整えた。メモを残しておく。
やりたいこと
Overleaf ⇔ Git hub ⇔ なにかしらのlocal tex editor
執筆は基本的にOverleafでいいか~と思っていたが、海外出張が2回も入った=ネット無し作業時間が発生したのと、まあ何があるかわからんのでローカルでもバックアップとりつつ作業できるといいなと思ったので
環境
準備
レポジトリを作る
今回はGit hubのブラウザページから新規レポジトリを作成
先輩から頂いていたテンプレートがあったので、vmware経由でこのレポジトリにまとめた
Overleafと連携する
OverleafのNew Projectに Import from Github があるのでそれを選択
最初はGit hub連携みたいなのに誘導されるので、それに従ってユーザー名やpwを入力
連携が完了すると、importできるようになる
VSCodeと連携する
sshの設定をする
-
Git bushを開く
-
ssh-keygen -t ed25519 -C "your_email@example.com"
-
rsaは2023年3月から使えなくなった…
-
-
Enter3回
-
パスフレーズを設定するとだめらしい
-
-
eval "$(ssh-agent -s)"
-
agentのpidが出てくることを確認
-
-
clip < ~/.ssh/id_ed25519.pub
-
クリップボードにコピーしている
-
-
Git hubのブラウザにアクセス→右上の自分のアイコン→settings→SSH and GPG keys→New SSH key
-
出てきた表示の一番広いところに、6でclipしたものをペースト(ctri+v)
-
Add SSH keyをクリック→完了
新しい SSH キーを生成して ssh-agent に追加する - GitHub Docs
gitの設定をする
-
VSCodeを開く
-
terminalを開く→git bushを開く
-
git config --global user.name {your name}
git config --global user.email {email}
-
何か聞かれたらyesをタイプして完了
Visual Studio Codeでgit for Windowsを使えるようにするまで | Tech Note Meeting
git cloneする
Texを使えるようにする
-
TEX Live managerからlatexmkがインストール済みか確認
-
VSCodeでterminalを開く→power shellで
-
C:のユーザー名直下に .latexmkrc を作成
-
LaTex Workshopをインストール
-
VSCode左下の歯車→右上のファイルマーク
-
開いた setting.json を編集
-
"*.blg","*.idx","*.ind","*.lof","*.lot","*.out","*.acn","*.acr","*.alg","*.glg","*.glo","*.gls","*.ist","*.fls","*.log","*.fdb_latexmk","*.snm","*.nav","*.dvi","*.synctex.gz"],{"name": "latexmk","command": "latexmk","args":["%DOCFILE%"]},],{"name": "latexmk","tools": ["latexmk"]},],
-
-
右上に▶のビルドボタンが出るので、それでビルド
-
生成されたpdfを開く→できた!
-
左右表示もできる
-
ctrl+sで自動コンパイルしてくれる
-
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/****
といった感じ
ので、展開するところからの記録。
参考:
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にできる。便利なものを作ってくれた人がいるもんだ…
参考:
$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
↑こんな感じ
ただインターネットの海は素晴らしく、これについても対処法が見つかったのでそれを参考に実行。
参考:
$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
4.2.Python3でimport
$ python3.8
>>>import ROOT
4.3.Python2でimport
$ python2.7
>>>import ROOT
参考サイト
おまけ:CMake最新版のインストール
結局必要なかったが、いろいろ迷走している段階でCMakeの最新版をインストールしたのでその流れをメモ。
1.libssl-devを入れる
$ sudo apt install libssl-dev
・これ入れないと$ ./bootstrap
で Could 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/
を指定すればよい。