2022/04/30(土)ubuntu 22.04 インストール (6)
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を有効化します。
20.04まではこれで良かったのですが、22.04ではこれだけではpublic_htmlが見えません。どうやら22.04から、各userのhome directoryのpermissionのdefaultが755から750に変わったようです。
sudo chmod 755 /home/kashiとしたら見えるようになりました。
さらに、自分の好みで、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の設定。8.1になりました。
sudo apt install php sudo apt install libapache2-mod-php /etc/apache2/mods-available/php8.1.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年間はもつようにしました。
2022/04/30(土)ubuntu 22.04 インストール (5)
C++
sudo apt install build-essentialこれで、gccなど通常のbuild作業に必要なものが入ります。gccは11.2.0でした。
sudo apt install clangclangは14.0.0が入りました。
sudo apt install libboost-all-devboostはやっぱり要る。1.74が入りました。
clang++に関する追記(2024/2/6)
nvidiaのdriverを入れたとき、gcc-12がドライバーのコンパイルのためにインストールされることがありますが、この場合上のようにして入れたclang++がヘッダーやライブラリーを見つけられず動かなくなってしまいます。clang++ --verboseを実行すると、通常ならFound candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/11 Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/11と表示されますが、gcc-12が入っていると、
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/11 Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/12 Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/12と表示されます。このとき、clang++はg++-12がインストールされているとみなし、g++-12のヘッダーやライブラリを使おうとしますが、それは入っていないのでエラーになるというわけです。gcc-12のみが入っていて、g++-12が入っていない状態がこれを引き起こしています。
sudo apt install libstdc++12-devとg++-12のライブラリをインストールするか、いっそ
sudo apt install g++-12を入れてしまえば、ちゃんとclang++が使えるようになります。
Java
sudo apt install default-jdk sudo apt install icedtea-netxopenjdkの11が入りました。後者はJava Web Start用。
lua
sudo apt install lua5.4 sudo apt install liblua5.4-dev sudo apt install luajit
fortran
sudo apt install gfortran
python
この時点でpython2は入っておらず、python3は既に入ってしました。単にpythonと打つとcommand not foundでした。2はサポート終了ということで、python3のみ環境を整えます。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 python3-mpmath sudo apt install python3-numba sudo apt install ipython3また、
sudo apt install python-is-python3とすると、単にpythonと打ってpython3が起動できるようになります。
octave
sudo apt install octave sudo apt install liboctave-dev6.4.0が入りました。普通に起動するとCUIで、--guiを付けるとGUI版が起動するようになった模様。liboctave-devはIntlabを使うときに必要になります。
gmp,mpfr
sudo apt install libgmp-dev sudo apt install libmpfr-devそれぞれ6.2.1と4.1.0が入りました。
-m32で32bit binaryを作れるように
sudo apt install gcc-multilib sudo apt install g++-multilib
Julia
sudo apt install julia20.04では1.4.1が入りましたが、22.04ではパッケージか消えていました。仕方ないので、本家サイトからbinary packageを落として入れることにします。https://julialang.org/downloads/の、Generic Linux on x86の64bit(glibc)を使います。
wget https://julialang-s3.julialang.org/bin/linux/x64/1.7/julia-1.7.2-linux-x86_64.tar.gz cd /usr/local sudo tar xfz (ダウンロードした場所)/julia-1.7.2-linux-x86_64.tar.gz cd /usr/local/bin sudo ln -s /usr/local/julia-1.7.2/bin/julia .のように、/usr/local/binにリンクを張りました。
nim
nimも最近お気に入りの言語で、20.04では1.0.6が入ったのに、22.04ではパッケージから消えていました。こちらも本家からbinary packageを入れます。https://nim-lang.org/install_unix.htmlの、Generic Linux on x86の64bit(glibc)を使います。wget https://nim-lang.org/download/nim-1.6.4-linux_x64.tar.xz cd /usr/local sudo tar xfJ (ダウンロードした場所)/nim-1.6.4-linux_x64.tar.xz cd /usr/local/bin sudo ln -s /usr/local/nim-1.6.4/bin/* .のように、/usr/local/binにリンクを張りました。
2022/04/30(土)ubuntu 22.04 インストール (4)
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が賢くなってファイルの拡張子に応じて自動でインデントしてくれるようになったが、自分はエディタが勝手に何かするのが嫌いなのでそれを止める。
2022/04/30(土)ubuntu 22.04 インストール (3)
sudo apt install texlive-lang-cjk sudo apt install texlive-fonts-recommended sudo apt install texlive-fonts-extra普段、platexでコンパイルして、dvipdfmxでpdfにして、evinceで見ています。xdvikは使わないので入れないことにしました。日本語フォントを埋め込むときは 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 pdfarranger sudo apt install krop sudo apt install pdftk-java sudo apt install pintapdfarranger, kropm pdftk-javaはいずれもpdfの編集ツール、pintaはペイントツールです。
2022/04/30(土)ubuntu 22.04 インストール (2)
- デスクトップのリサイズ、
- ホストOSとのクリップボード共有(文字列のコピペが出来るようになる)、
- フォルダ共有
sudo apt install open-vm-tools-desktopとしましょう。
共有フォルダは、vmwareの「VM→Settings→Option→Shared Folders」をAlways Enabledにし、Addで適当なフォルダを共有フォルダに指定、再起動。
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と書くとよいでしょう。