2020/04/21(火)Ubuntu 20.04 インストール (6)

ローカルにwebサーバが立ってると何かと便利なので、apacheを入れます。素のapacheと違ってhttpd.confが細分化されていて、debianの作法に従って設定する必要があって知らないと難しいです。
sudo apt install apache2
いくつかのモジュールを有効化します。
sudo a2enmod userdir
sudo a2enmod include
sudo a2enmod cgid
sudo systemctl restart apache2
これらは、実際には/etc/apache2/mods-availableにあるファイルから/etc/apache2/mods-enabledへリンクを張っていて、mods-enabled以下のファイルが設定に読み込まれるという仕組みです。

次に、自分のよく使う設定をしていきます。public_htmlの有効化とcgiの有効化です。デフォルトで使われている設定ファイルは/etc/apache2/sites-available/000-default.confですが、これをを適当な名前 (custom.confとした) でコピーして設定することにします。
<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root
        <Directory /home/*/public_html>
               (ここは各自違うと思う)
        </Directory>
</IfModule>

<IfModule mod_mime.c>
AddHandler cgi-script .cgi
</IfModule>
を(<VirtualHost *:80> </VirtualHost>の中に)加えます。

public_html以下の設定は、ユーザを最大限信用するなら、例えば、
                AllowOverride All
                Options All
                Order allow,deny
                Allow from all
のような感じでしょうか。
sudo a2dissite 000-default
sudo a2ensite custom
sudo systemctl restart apache2
で、000-defaultを無効化し、customを有効化します。

さらに、自分の好みで、public_html以下に置いたcgiはそのディレクトリのユーザの権限で動くようにする、suexecを設定します。
sudo apt install apache2-suexec-custom
/etc/apache2/suexec/www-data の2行目を、public_html/cgi-bin → public_html に。
sudo a2enmod suexec
sudo systemctl restart apache2
次にphpの設定。7.4になりました。
sudo apt install php
sudo apt install libapache2-mod-php
/etc/apache2/mods-available/php7.4.conf で、php_admin_value engine Off をコメントアウト
  (ユーザのpublic_html以下でphpを使えるようにする。)
sudo systemctl restart apache2
動作確認は、ホームに public_html/phpinfo.php を
<?php
  phpinfo();
?>
の内容で作成してブラウザでアクセスしてみると分かるでしょう。

最後に、logrotateの設定を。/var/log/apache2 以下のlogが、デフォルトだと14日しか保存されないので直します。/etc/logrotate.d/apache2 の中の、
daily
rotate 14
という行を、
monthly
rotate 120
とし、10年間はもつようにしました。

2020/04/21(火)Ubuntu 20.04 インストール (5)

プログラミングに必要なツールをいろいろ入れます。

C++

sudo apt install build-essential
これで、gccなど通常のbuild作業に必要なものが入ります。gccは9.3.0でした。
sudo apt install clang
clangは10.0.0が入りました。
sudo apt install libboost-all-dev
boostはやっぱり要る。1.71が入りました。

Java

sudo apt install default-jdk
sudo apt install icedtea-netx
openjdkの11が入りました。後者はJava Web Start用。

lua

sudo apt install lua5.3
sudo apt install liblua5.3-dev
sudo apt install luajit

fortran

sudo apt install gfortran

python

この時点でpython2, python3は既に入っており、単にpythonと打つとcommand not foundでした。2はサポート終了ということで、3のみ環境を整えます。
sudo apt install python3 (既に入っていた)
sudo apt install python3-dev (既に入っていた)
sudo apt install python3-numpy
sudo apt install python3-scipy
sudo apt install python3-matplotlib
sudo apt install python3-sympy
sudo apt install ipython3
また、
sudo apt install python-is-python3
とすると、単にpythonと打ってpython3が起動できるようになります。

octave

sudo apt install octave
sudo apt install liboctave-dev
5.2.0が入りました。普通に起動するとCUIで、--guiを付けるとGUI版が起動するようになった模様。liboctave-devはIntlabを使うときに必要になります。
(2020/5/6追記: パッケージングのミスなのか、マルチコア環境で行列積が固まってしまう現象が見られています。改善を望む。)

Julia

sudo apt install julia
流行の兆しのあるJulia。18.04のときはパッケージには無かったです。1.3.0が入りました。
(2020/4/24追記: Release版では1.4.1が入りました。)

gmp,mpfr

sudo apt install libgmp-dev
sudo apt install libmpfr-dev
それぞれ6.2.0と4.0.2が入りました。

-m32で32bit binaryを作れるように

sudo apt install gcc-multilib
sudo apt install g++-multilib
とりあえずここまで。octaveやnumpyに関係するatlasやopenblasは後で。

2020/04/21(火)Ubuntu 20.04 インストール (4)

vi大好きなのでvimを入れます。
sudo apt install vim
また、~/.vimrcを、
set encoding=utf-8
set fileencodings=iso-2022-jp,euc-jp,sjis,utf-8
filetype indent off
という内容で作成しました。これにより、
  • 日本語のファイルを認識させる。デフォルトのコードがUTF8になり、JIS、EUC、SJISコードのファイルも自動認識して編集できるようになる。
  • 18.04からvimが賢くなってファイルの拡張子に応じて自動でインデントしてくれるようになったが、自分はエディタが勝手に何かするのが嫌いなのでそれを止める。
を設定しています。

2020/04/21(火)Ubuntu 20.04 インストール (3)

普段研究で作成する文書類はすべてubuntuで書いています。TeX系のソフトウェアが安定して使えるかは重要。
sudo apt install texlive-lang-cjk
sudo apt install texlive-fonts-recommended
sudo apt install texlive-fonts-extra
sudo apt install xdvik-ja
普段、platexでコンパイルして、dvipdfmxでpdfにして、evinceで見ています。xdvikはもう要らないかな。

(2021/4/21追記) 日本語フォントを埋め込むときは dvipdfmx -f ptex-ipa.map hogehoge.dvi としてます。正しいかどうかは知りません。

その他文書作成関連のソフトウェアをついでに入れました。
sudo apt install gv
sudo apt install nkf
sudo apt install gnuplot
sudo apt install tgif
sudo apt install gimp
sudo apt install inkscape
sudo apt install mimetex
sudo apt install latexdiff
sudo apt install diffpdf
sudo apt install pdftk-java
pdftk (pdfからページを抜き出したりできるツール) は18.04では消されていたものが復活しました。

2020/04/21(火)Ubuntu 20.04 インストール (2)

vmware toolsは、vmwareのゲストで
  • デスクトップのリサイズ、
  • ホストOSとのクリップボード共有(文字列のコピペが出来るようになる)、
  • フォルダ共有
などを実現するもので、ゲストOSへのインストールはほぼ必須です。vmware標準で提供されるものは無視してopen-vm-toolsを入れるのがお薦めです。18.04のときと違って、自動的にインストールされ、スクトップのリサイズもクリップボード共有も最初から動作していました。もしそうなっていなければ、
sudo apt install open-vm-tools-desktop
としましょう。

共有フォルダは、vmwareの「設定→オプション→共有フォルダの有効化」で共有フォルダを有効にして再起動。
sudo vmhgfs-fuse -o allow_other -o auto_unmount .host:/ /mnt/hgfs
で/mnt/hgfs以下にマウント出来ました。永続的にmountするには、/etc/fstabで
.host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other,auto_unmount,defaults 0 0
と書くとよいでしょう。
OK キャンセル 確認 その他