WSLにlatexを入れる(自分用メモ)

■やめといたほうがいい: sudo apt install texlive

■おすすめ:
sudo apt install wget perl-tk
mkdir tmp; cd tmp
wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
tar -xzf install-tl-unx.tar.gz
cd install-tl-*
sudo ./install-tl

★最後に ~/.bashrc を編集して
export PATH=/usr/local/texlive/2018/bin/x86_64-linux:$PATH
export INFOPATH=$INFOPATH:/usr/local/texlive/2018/texmf-dist/doc/info
export MANPATH=$MANPATH:/usr/local/texlive/2018/texmf-dist/doc/man

(2018 のところは年によって数字が違うが,上のインストールスクリプト完了時のメッセージを参考にして欲しい).

■ネットワークインストーラがうまく動かない場合は iso を使う.ここが参考になる. 数GBあるのでFree Download Manager などのダウンロードツールを使う.

Windows10ではisoファイルを通常のフォルダのように開けるがWSLからはそのままでは見えない.isoファイルをダブルクリックして開いたときに割り当てられているドライブレターを確認しておく.手元のノートパソコンで試したときにはDドライブになっていた.

$ sudo mkdir -p /mnt/d
$ sudo mount -t drvfs D: /mnt/d
$ sudo /mnt/d/install-tl
広告

(自分用メモ)tldr というコマンド

これは何ですか?
tldr コマンド名 とやるとコマンドの使用例を教えてくれるやつ.

情報源
https://github.com/raylee/tldr

インストール
$ mkdir -p ~/bin
$ curl -o ~/bin/tldr https://raw.githubusercontent.com/raylee/tldr/master/tldr
$ chmod +x ~/bin/tldr

最後に ~/bin にパスを通す.(例えば ~/.bashrc に
export PATH=$PATH:~/bin
という一行を加えて保存し,source ~/.bashrc する.)

使用例
オプションを忘れてしまっても使用例で教えてくれて助かる例:

$ tldr tar
tar

Archiving utility.
Often combined with a compression method, such as gzip or bzip.

- Create an archive from files:
tar cf target.tar file1 file2 file3

- Create a gzipped archive:
tar czf target.tar.gz file1 file2 file3

- Extract an archive in a target folder:
tar xf source.tar -C folder

- Extract a gzipped archive in the current directory:
tar xzf source.tar.gz

- Extract a bzipped archive in the current directory:
tar xjf source.tar.bz2

- Create a compressed archive, using archive suffix to determine the compression program:
tar caf target.tar.xz file1 file2 file3

- List the contents of a tar file:
tar tvf source.tar

- Extract files matching a pattern:
tar xf source.tar --wildcards "*.html"

(自分用メモ)WSLが立ち上がらないとき:LxssManager

WSLを立ち上げようとしてもこんな風になってうまくいかないことがある:
WSLbozo

こんなときには「サービス」で検索し
サービスを探す
LxssManager をスタートさせれば良い.

texdoc(自分用メモ)

texlive を入れると自動的に texdoc というコマンドもついてくるが,ドキュメントを(カスタムインストールの設定などで)省いてしまった場合,
$ sudo apt install texlive-*-doc --fix-missing
のようにして補うと良い.

texdoc amsfont

のようにして調べ物をすると自動的に evince が呼ばれてPDFが表示される.

WSLでgitを使うときの注意

$ git config –global core.autocrlf input

WSLからevinceを使う方法

Windowsでevinceを使いたい人からの検索流入があるのでこの記事を書いた.
(MSYS2ではなく)WSLから $ evince と呼んで使えるようにする方法を書いておく.

■ step1. evinceのインストール
$ sudo apt install evince

インストール後に evince を起動しようとするとこうなる:
$ Unable to init server: Could not connect: Connection refused
Cannot parse arguments: Cannot open display:

いわゆるX環境が不足しているようだ.

■ step2. Xming X Server for Windows のインストール

X Server for Windows のページに書いてあるとおりにインストールすればよい.ダウンロードページに行きXming-*-setup.exe をダウンロードし,そのままダブルクリックして「Next」をどんどん選んで行けばインストールが完了する.

■ step3. WindowsからXmingを検索し,右クリックして「タスクバーにピン留め」しておく.
■ step4. X11を使うための設定
~/.bashrc に次のような行を加える:
export DISPLAY=localhost:0.0
変更を保存したら一度 WSLを終了する.

■ step5. evinceを使う.
$ evince myPDF.pdf & したときに「Unable to init server:」と言われたらタスクバー上のXmingをクリックしてからもう一度実行すればよい.evinceが立ち上がった場合,
(evince:18): GLib-GIO-CRITICAL **: 10:56:55.137: g_dbus_proxy_new_sync: assertion ‘G_IS_DBUS_CONNECTION (connection)’ failed
という警告が出てくるが,いまのところ無視している.

参考にした記事
俺の Bash on Windows10 環境

WSLで blas と lapack (自分用メモ)

blas とか lapack はちょっと高度な科学技術計算には必須のもので,MSYS2に入れるのが不可能である[要出典]ことが知られています[誰によって?].そこでWSLです.Ubuntuならば

$sudo apt-get update
$sudo apt install pkg-config
$sudo apt install libgsl0-dev liblapack-dev libatlas-base-dev

※事情があってこのブログからコピペできない人のために補足すると’libgsl0’の末尾二文字は「エルの小文字」「数字のゼロ」です.

多分こんな感じでいけるはず[曖昧な語尾].

(a)WSLをCドライブ以外の場所に置き,(b)homeも別の場所に置いて,(c)chmodも使えるようにする方法.(自分用メモ)

Windows 再インストールした結果としてWSL環境を作り直すことになった.せっかくなので次の(a)(b)(c)をやってみた:

(a) Cドライブ以外の場所にWSLを置き直すことにした.(Cドライブ以外の場所に置きたいのは,開発にともなってディスクの書き換えが頻繁に起こるからである).

(b) WSLのホームディレクトリをなるべく浅いところに置いた.(たとえばホームディレクトリ以下で生成したファイルなどを取り出す場合,ホームディレクトリがわかりやすい場所にあると楽だ.)

(c) chmod できるようにする.デフォルトではWSLではchmodが無視される.このことにより問題が起こる場合もあるのでこのfixは重要.

1. Fドライブ(でもなんでも)直下に WindowsSubsystemForLinux と WSLHOME というフォルダを作っておく.WindowsSubsystemForLinux にWSLが置かれる予定である.WSLHOMEが将来WSLのホームディレクトリになる.

2. WSLを入れる準備を行う.Power Shell を管理者権限で開き,次のように入力する:

PS C:\Users\Henrik> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

再起動を要求されるのでそれに従う.

3. Microsoft Storeを開き,linux で検索すると色々候補がでる.ここでは Ubuntu 18.04LTS を選んだ前提で話を進める.Ubuntu@WSL を初回起動し username/password を入れておく.以下では username = konrad とする.その後 exit して Ubuntu を終了する.

4. Power Shell を管理者として実行する.(しばらくPower Shell での作業が続く).
まずchocolatelyを入れる:

PS C:\Users\Henrik> Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

次にlxrunofflineを入れる:

PS C:\Users\Henrik> choco install lxrunoffline

質問されたら y で答えてインストールを完了し exit する.

5. 再び Power Shell を管理者権限で起動する
念のためユーザ名を確認しておく:

PS C:\Users\Henrik> whoami
desktop\henrik

すなわちWindowsのユーザ名は henrik であることが確認できた.(この「henrik」の箇所は各自読み替えてほしい).次にFドライブ直下のWindowsSubsystemForLinux フォルダに書き込み権限を与える:

PS C:\Users\Henrik> icacls F:\WindowsSubsystemForLinux /grant "henrik:(OI)(CI)(F)"
処理ファイル: F:\WindowsSubsystemForLinux
1 個のファイルが正常に処理されました。0 個のファイルを処理できませんでした
PS C:\Windows\system32>

次に

PS C:\Users\Henrik> lxrunoffline move -n Ubuntu-18.04 -d f:\WindowsSubsystemForLinux

する.確かに移動ができたことを確認しておく:

PS C:\Windows\system32> lxrunoffline get-dir -n Ubuntu-18.04
f:\WindowsSubsystemForLinux

以上でWSLがFドライブに置かれるようになった.

6. homeの移動.Ubuntu@WSL から

$ cd ~
$ cp -p .* /mnt/f/WSLHOME/

のようにして、「.bash_logout」、「.bashrc」、「.profile」などをなるべくそのまま(-p オプション)コピーしておく.

7. Ubuntu@WSL から
$ sudo vi /etc/passwd
して最後の方の行

konrad:x:1000:1000:"",,,:/home/konrad:/bin/bash

konrad:x:1000:1000:"",,,:/mnt/f/WSLHOME:/bin/bash

と変更し,:wqする.$ exitして一度WSLを終了する.

8. ふたたびWSLを起動して Ubuntu@WSL で

konrad@DESKTOP:~$ cd;pwd
/mnt/f/WSLHOME

となっていればよい.

9. chmod 対応.まず,/etc/wsl.conf というファイルを必要ならば作る:
$sudo touch /etc/wsl.conf
$sudo vim /etc/wsl.confのようにして編集する.
(case1)もし空ファイルだったら 

[automount]
options = "metadata"

のように書いて保存する.
(case2)もしすでに

[automount]
options = "foo"

という行があったら

[automount]
options = "metadata, foo"

のように修正し,保存する.

10. その他(git の設定)
改行コードを変更しないようにする.
$ git config --global core.autocrlf input

参考にした記事:
Can I move the linux subsystem to a different drive?
Bash on Windowsのホームディレクトリ変更
WSLからマウントしたWindowsのドライブでchmodしたい