Ubuntu 17.04 に日本語LaTeX + Sublime Text 3環境を整える

レポートを書くときに必要だったので、メモ

Windowsの方はこちら

akashisn.hatenablog.com

環境

  • Ubuntu 17.04
  • TeX Live 2016.20170123-5
  • Sublime Text 3126
  • LaTeXTools

Latexのインストール

事前作業

$ sudo apt update
$ sudo apt upgrade

とりあえずアップデート

TexLiveのインストール

  • texlive-full : TexLive本体(フルインストール)
$ sudo apt install texlive-full

この方法でのインストールだとインストール先は/usr/share/texliveになります。

Sublime Text 3で使えるようにする

メニューの[Preferences] > [Package Control]を選択します。

もしない場合は、Installation - Package Controlにあるコードを[View] > [Show Console]で出たところに貼り付けて[Enter]を押します。 Sublime Textを再起動して[Preferences] > [Package Control]があればインストール成功です。

追記

Build 3124から[Tools] > [install Package Control..]から簡単にインストールできるようになってます Sublime Blog » Sublime Text 3 Build 3124

次に、Installと打ち込み、Package Control: Install Packageを選択します。

LaTeXToolsと入力してLaTeXToolsを選択します。

何もエラーが表示されなけれがLaTeXToolsのインストールは成功です。

次にLaTeXToolsの設定をします。

[Preferences] > [Package Settings] > [LaTeXTools] > [Settings - User]を選択します。

ダイアログはすべて[OK]を選択してください。

"builder_settings" : {

の次の行に

"command" : ["latexmk", "-cd",
        "-e", "$latex = 'platex %O -interaction=nonstopmode -synctex=1 %S'",
        "-e", "$biber = 'biber %O --bblencoding=utf8 -u -U --output_safechars %B'",
        "-e", "$bibtex = 'upbibtex %O %B'",
        "-e", "$makeindex = 'upmendex %O -o %D %S'",
        "-e", "$dvipdf = 'dvipdfmx %O -o %D %S'",
        "-f", "-%E", "-norc", "-gg", "-pdfdvi"],

と入力して、保存します。

これでSublime Text 3でLaTexを使うための設定は以上です。

使ってみる

\documentclass{jsarticle}
\begin{document}
こんにちは、世界
\end{document}

Sublimeでこのソースを打ち込みLaTexのハイライトになっていることを確認して、

[Ctrl+B]を押して一番上のLatexを選択します。

これで同じディレクトリにPDFファイルができました!やったね!

参考

AnsibleでNginx+PHP7+mariadb+Let’s encrypt(certbot)+wordpressでwordpress環境を構築

Ansibleとは

多数のサーバーや複数のクラウドインフラを統一的に制御できる構成管理ツールです。

構成管理ツールとしてAnsibleを選ぶべき理由-thinkit.co.jp

管理構成ツールは色々ありますが、今回はAnsibleを使ってみます。

Pythonで書かれたソフトウェアですが、設定はYAMLファイルに書くので、Pythonを覚える必要はありません。また、サーバに何かソフトウェアをインストール必要がなく、SSH接続ができれば使うことができるため、ConoHaでVPSを作成した後にすぐ使うことができます。

構成管理ツールAnsibleを使ってみよう-conoha.jp

管理対象のサーバーの環境

管理対象のサーバのシェルは(centos)$と、ローカルの環境は(ubuntu)$と表します。

前提として管理対象のサーバはドメインが割り当てられていて、外部からアクセスできるものとします。

(centos)$ cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)

今回対象のサーバーに導入するもの

  • Nginx:1.10.2
  • Let’s encrypt(certbot):0.12.0
  • PHP:7.0.17
  • Mariadb:5.5.52

ローカルの環境

(ubuntu)$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"

ローカルの環境にインストールするもの

  • Ansible 2.2.2.0

Ansibleのインストール

PPAを追加してインストール

(ubuntu)$ sudo apt-get install software-properties-common
(ubuntu)$ sudo apt-add-repository ppa:ansible/ansible
(ubuntu)$ sudo apt-get update
(ubuntu)$ sudo apt-get install ansible
(ubuntu)$ ansible --version
ansible 2.2.2.0

使ってみる

ホストの定義

操作する対象のホストを定義します。 ini形式でサーバーのグループとホストを定義します。

[グループ名]
  ホスト名

/etc/ansible/hosts

[web-server]
  server01

このホスト名は~/.ssh/configを参照するのでSSHの設定はそっちでやるほうが賢明です。 記述したホスト名で暗号鍵を使ってSSH接続できるようにしときます。

~/.ssh/config

Host server01
  HostName xxx.xxx.xxx.xxx
  Port 22
  User root
  IdentityFile ~/.ssh/server01-key

IdentityFileに接続先の秘密鍵を格納し、対象サーバーの/root/.ssh/authorized_keysに公開鍵を格納する

接続確認

ansibleコマンドの第一引数に先程定義したグループ名を指定します。

オプションで-mでansibleが実行するモジュールを指定します。 今回はpingを実行してみます。

(ubuntu)$ ansible web-server -m ping
xxx.xxx.xxx.xxx | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

SUCCESSと出たら接続成功です。

PlayBookとは

Ansibleにはplaybookと言う仕組みがあります。YAMLフォーマットで書かれたファイルにサーバに対する操作を定義していき、それをansible-playbookコマンドで実行することで、サーバを常にplaybookで定義した状態にしておくことができます。

構成管理ツールAnsibleを使ってみよう-conoha.jp

実際に作ってみたのでGitHubを参考にしてください

https://github.com/AkashiSN/Ansible-Playbook-Nginx-PHP-7-mariadb-certbot-Wordpress

参考にさせていただいたサイト

Ansible 入門-qiita.com

centos7-php70-nginx-mariadb-ansible-github.com

Let’s Encrypt の証明書を Ansible と certbot で Nginx にインストール & 自動更新-blog.yuyat.jp

Centos+nginxでLet’s encrypt(certbot)導入と自動更新まで-blog.potproject.net

Wine2.0-rc5をソースコードからビルドする

Windows10を使っていたPCでブルースクリーンが頻発するようになったので、Windows10をアンインストールしてUbuntuをインストールした。

やっぱりWindowsのソフトを動かしたくなったので、Wineをインストールすることにした。最新版をインストールしてみる。

環境

  • Ubuntu 16.04(64bit)

Wineとは・・・

https://ja.wikipedia.org/wiki/Wine

Wine (ワイン)は、オープンソースの Windows API 実装を通じて、主としてx86アーキテクチャ上のUnix系オペレーティングシステム (OS) においてWindows用アプリケーションをネイティブ動作させることを目標とするプログラム群である。

https://www.winehq.org/

Wineのインストール

今回はホームページにある開発版の最新版であるWine 2.0-rc5をインストールしてみる。

ソースコードをダウンロードして解凍

$ wget http://dl.winehq.org/wine/source/2.0/wine-2.0-rc5.tar.bz2
$ tar -jxvf wine-2.0-rc5.tar.bz2
$ cd wine-2.0-rc5/

64bit版のWineをビルドする場合

$ sudo add-apt-repository ppa:ubuntu-wine/ppa

ソースコードのレポジトリを追加

$ sudo vi /etc/apt/sources.list.d/ubuntu-wine-ubuntu-ppa-xenial.list

deb http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu xenial main
deb-src http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu xenial main
↑コメントアウトを外す

もし見つけられなければ、システム設定→ソフトウェアとアップデート→他のソフトウェア

apt.png

http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu xenial main (ソースコード)のところにチェックを入れる

依存パッケージをインストールする

$ sudo apt update
$ sudo apt build-dep wine1.8

configureしてみる

$ ./configure --enable-win64

configureで次のようなメッセージが出たら下のコマンドを実行すると回避できる

configure: libhal 64-bit development files not found, no legacy dynamic device support.

$ wget http://launchpadlibrarian.net/99811656/libhal1_0.5.14-8_amd64.deb 
$ sudo dpkg -i libhal1_0.5.14-8_amd64.deb
$ wget http://launchpadlibrarian.net/99811659/libhal-dev_0.5.14-8_amd64.deb
$ sudo dpkg -i libhal-dev_0.5.14-8_amd64.deb

configure: gstreamer-1.0 base plugins 64-bit development files not found, gstreamer support disabled

$ sudo apt install libgstreamer-plugins-base1.0-dev

configure: libudev 64-bit development files not found, plug and play won't be supported.

$ sudo apt install libudev-dev

もう一度configureしてみて次のように出たら成功

$ ./configure --enable-win64
configure: Finished.  Do 'make' to compile Wine.

次にビルドする

$ make
$ sudo make install

この時makemake -j2などと引数を与えると与えたスレッド数で並列化してくれる

64bit版のWineをビルドしたら、実行コマンド名がwine64となる。

このままだと不具合があるので、wineという名前でシンボリックリンクを作成しとく

$ sudo ln -s /usr/local/bin/wine64 /usr/local/bin/wine

Winetricksの導入

各種ライブラリやフォントなどの導入を簡単にしてくれるWinetricksをインストールする

https://github.com/Winetricks/winetricks/releasesから最新版をダウンロードする

$ sudo apt install cabextract
$ wget https://github.com/Winetricks/winetricks/archive/20170101.tar.gz
$ tar xzvf 20170101.tar.gz
$ cd winetricks-20170101
$ sudo make install

Wine-Monoの導入

.NET Framework環境を提供するwine-monoをインストールする

http://dl.winehq.org/wine/wine-mono/から最新版をダウンロードする

$ wget http://dl.winehq.org/wine/wine-mono/4.6.4/wine-mono-4.6.4.msi
$ sudo mkdir /usr/local/share/wine/mono
$ sudo mv wine-mono-4.6.4.msi /usr/local/share/wine/mono/ 

Wine-Geckoの導入

Internet Explorer の環境を提供するwine-geckoをインストールする

http://dl.winehq.org/wine/wine-gecko/から最新版をダウンロードする

$ wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86_64.msi
$ sudo mkdir /usr/local/share/wine/gecko
$ sudo mv wine_gecko-2.47-x86_64.msi /usr/local/share/wine/gecko/ 

Wine初期設定

$ echo 'export WINEARCH=win32 winecfg' >> ~/.bashrc
$ echo 'export WINEPREFIX="/home/USER/.wine/"' >> ~/.bashrc
$ winecfg

USERは各自のユーザーネームを入れて実行する

多分、文字化けしてるが後でフォントを入れるのでいい

文字化けするのを治す

フォントをインストールすることで文字化けが治る

 $ winetricks allfonts

Wineの設定

$ winecfg

winecfg.png

WindowsのバージョンをWindows7に変更する

確認

上記のことができたかを確認する

$ wine uninstaller

wine-uninstaller.png

このように文字化けがなくなっていてwine-monowine-geckoの最新版がインストールされてることが確認できたらここまで成功

使い方・実行方法

普通に

$ wine hoge.exe
$ chmod +x hoge.exe
$ ./hoge.exe

ともできる

msiの場合は、

$ msiexec /i setup.msi

で実行できる

エラーが出た場合

コマンドラインから実行したら、

例えば、

err:module:import_dll Library MFC42.DLL (which is needed by L"C:\\Program Files\\Microchip\\MPLAB IDE\\KEELOQ\\KeeLoqAlg.dll") not found

のように

err:module:import_dll Library [足りないライブラリ] (which is needed by L"[必要としてるDLL]") not found

という感じにエラーがでるので[足りないライブラリ]Winetricksでインストールしてやる

$ winetricks [足りないライブラリの名前]

今回は、

$ winetricks mfc42

ダイアログではJaを選択する(ドイツ語で「はい」らしい・・・)

.NET Framework をインストールしてみる

.NETには前のバージョンに依存するのがほとんど(.NET4.0は単独でインストールできる)だけど、

.NET Frameworkのインストールでエラーが出ないためにをやっていればWinetricksが自動で必要なバージョンの.NETをインストールしてくれる

Winetricks最高!

.NET4.5のインストール

$ winetricks dotnet45

〜32bit版のWineをビルドする場合〜

64bitのUbuntuに32bit版のWineをビルドしようとしたが、うまく行かなかった・・・

32bitのライブラリをインストールするので32bitのリポジトリを追加する。

$ sudo dpkg --add-architecture i386
$ sudo apt update

configureしてみる

$ ./configure

configureで次のようなメッセージが出たら下のコマンドを実行すると回避できる

configure: error: Cannot build a 32-bit program, you need to install 32-bit development libraries.

$ sudo apt install g++-multilib

configure: error: no suitable flex found. Please install the 'flex' package.

$ sudo apt install flex

configure: error: no suitable bison found. Please install the 'bison' package.

$ sudo apt install bison

configure: error: X 32-bit development files not found. Wine will be built without X support, which probably isn't what you want. You will need to install 32-bit development packages of Xlib/Xfree86 at the very least. Use the --without-x option if you really want this.

$ sudo apt install libx11-dev:i386

configure: error: FreeType 32-bit development files not found. Fonts will not be built.

$ sudo apt install libfreetype6-dev:i386

configure: libxcursor 32-bit development files not found, the Xcursor extension won't be supported.

$ sudo apt install libxcursor-dev:i386

configure: libxi 32-bit development files not found, the Xinput extension won't be supported.

$ sudo apt install libxi-dev:i386

configure: libXxf86vm 32-bit development files not found, XFree86 Vidmode won't be supported.

$ sudo apt install libxxf86vm-dev:i386

configure: libxrandr 32-bit development files not found, XRandr won't be supported.

$ sudo apt install libxrandr-dev:i386

configure: libxinerama 32-bit development files not found, multi-monitor setups won't be supported.

$ sudo apt install libxinerama-dev:i386

configure: libxcomposite 32-bit development files not found, Xcomposite won't be supported.

$ sudo apt install libxcomposite-dev:i386

configure: libGLU 32-bit development files not found, GLU won't be supported.

$ sudo apt install libglu1-mesa-dev:i386

configure: libOSMesa 32-bit development files not found (or too old), OpenGL rendering in bitmaps won't be supported.

$ sudo apt install libosmesa6-dev:i386

configure: OpenCL 32-bit development files not found, OpenCL won't be supported.

$ sudo apt install ocl-icd-opencl-dev:i386

configure: pcap 32-bit development files not found, wpcap won't be supported.

$ sudo apt install libpcap0.8-dev:i386

configure: lib(n)curses 32-bit development files not found, curses won't be supported.

$ sudo apt install libncurses5-dev:i386

configure: libsane 32-bit development files not found, scanners won't be supported.

$ sudo apt install libsane-dev:i386

configure: libv4l 32-bit development files not found.

$ sudo apt install libv4l-dev:i386

configure: libgphoto2 32-bit development files not found, digital cameras won't be supported.

$ sudo apt install libgphoto2-dev:i386

configure: liblcms2 32-bit development files not found, Color Management won't be supported.

$ sudo apt install liblcms2-dev:i386

configure: OSS sound system found but too old (OSSv4 needed), OSS won't be supported.

$ sudo apt install oss4-dev

configure: libudev 32-bit development files not found, plug and play won't be supported.

$ sudo apt install libudev-dev:i386

configure: libcapi20 32-bit development files not found, ISDN won't be supported.

$ sudo apt install libcapi20-dev:i386

configure: libcups 32-bit development files not found, CUPS won't be supported.

$ sudo apt install libcups2-dev:i386 

configure: fontconfig 32-bit development files not found, fontconfig won't be supported.

$ sudo apt install libfontconfig1-dev:i386

configure: libgsm 32-bit development files not found, gsm 06.10 codec won't be supported.

$ sudo apt install libgsm1-dev:i386

configure: libtiff 32-bit development files not found, TIFF won't be supported.

$ sudo apt install libtiff5-dev:i386

configure: libmpg123 32-bit development files not found (or too old), mp3 codec won't be supported.

$ sudo apt install libmpg123-dev:i386

configure: libopenal 32-bit development files not found (or too old), OpenAL won't be supported

$ sudo apt install libopenal-dev:i386

configure: libldap (OpenLDAP) 32-bit development files not found, LDAP won't be supported.

$ sudo apt install libldap2-dev:i386

configure: WARNING: libxml2 32-bit development files not found (or too old), XML won't be supported.

$ sudo apt install libxml2-dev:i386

configure: WARNING: libxslt 32-bit development files not found, xslt won't be supported.

$ sudo apt install libxslt1-dev:i386

configure: WARNING: libgnutls 32-bit development files not found, no schannel support.

$ sudo apt install libgnutls28-dev:i386

ここまでのメッセージは消せたのだが、以下のメッセージは消えなかった・・・

configure: libpulse 32-bit development files not found or too old, Pulse won't be supported.

configure: gstreamer-1.0 base plugins 32-bit development files not found, gstreamer support disabled

configure: libdbus 32-bit development files not found, no dynamic device support.

誰か教えてください・・・

$ ./configure
$ make
$ sudo make install
$ wine --version
wine-2.0-rc5