2024/05/02(木)Ubuntu 24.04 インストール (7)

ubuntuをwindowsから見たファイルサーバにするため、sambaを入れます。
sudo apt install samba
14.04の頃はできたunixへのログインパスワードとsambaのパスワードの共有は出来なくなっているので、次のようにsamba用のパスワードを設定します。
sudo pdbedit -a kashi
home directoryの共有をするため、/etc/samba/smb.conf で、
;[homes]
;   comment = Home Directories
;   browseable = no
の3行のコメント(先頭の「;」)を外し、
# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.
;   read only = yes

read only = no
に変更します。
sudo systemctl restart smbd
これで、homeがwindowsから見えるようになりました。

更に追加で、
sudo apt install wsdd2
sudo systemctl enable --now wsdd2.service
としました。これをやると、最近のwindowsマシンがちゃんとsambaサーバを見つけてくれるようになります。

また、sambaとは逆の、UbuntuからWindowsの共有ドライブをマウントは、次のようにします。

GUIで

「ファイル」を開き、「+他の場所」から、下部の「サーバへの接続」欄に
smb://マシン名/共有名
で接続できます。

CUIで

sudo apt install cifs-utils
のインストールが必要で、
sudo mount -t cifs //マシン名/共有名 /mnt -o "username=ユーザ名"
のようにするとマウントできます。

2024/05/02(木)Ubuntu 24.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を有効化します。

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.3になりました。
sudo apt install php
sudo apt install libapache2-mod-php
/etc/apache2/mods-available/php8.3.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年間はもつようにしました。

2024/05/02(木)Ubuntu 24.04 インストール (5)

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

C++

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

Java

sudo apt install default-jdk
sudo apt install icedtea-netx
openjdkの21が入りました。icedtea-netxは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
これらのうち、python3-numbaだけは入りませんでした。pythonが3.12になって、numbaの追従が間に合っていない? また、
sudo apt install python-is-python3
とすると、単にpythonと打ってpython3が起動できるようになります。

octave

sudo apt install octave
sudo apt install octave-dev
8.4.0が入りました。普通に起動するとCUIで、--guiを付けるとGUI版が起動します。開発用packageは以前まではliboctave-devという名前でしたが、octave-devに変わったようです。intlabを使うときに必要になります (動作確認はまだ) 。

gmp,mpfr

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

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

sudo apt install gcc-multilib
sudo apt install g++-multilib

nim

sudo apt install nim
1.6.14が入りました。

Julia

sudo apt install julia
aptでは入らず、snapで古いバージョンを入れることはできますが勧められないと言われ、本家サイトのbinary packageを落として入れることにします。https://julialang.org/downloads/の、Generic Linux on x86の64bit(glibc)を使います。
wget https://julialang-s3.julialang.org/bin/linux/x64/1.10/julia-1.10.2-linux-x86_64.tar.gz
cd /usr/local
sudo tar xfz (ダウンロードした場所)/julia-1.10.2-linux-x86_64.tar.gz
cd /usr/local/bin
sudo ln -s /usr/local/julia-1.10.2/bin/julia .
のように、/usr/local/binにリンクを張りました。

2024/05/02(木)Ubuntu 24.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が賢くなってファイルの拡張子に応じて自動でインデントしてくれるようになったが、自分はエディタが勝手に何かするのが嫌いなのでそれを止める。
を設定しています。

2024/05/02(木)Ubuntu 24.04 インストール (3)

普段研究で作成する文書類はすべてubuntuで書いています。TeX系のソフトウェアが安定して使えるかは重要。
sudo apt install texlive-full
最近はplatexを捨ててlualatexを使うようになりました。めんどくさいのでTeX関連はtexlive-fullで全部入れることにしました。

その他文書作成関連のソフトウェアをついでに入れました。
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 snap install pinta
pdfarranger, kropm pdftk-javaはいずれもpdfの編集ツール、pintaはペイントツールです。pintaはaptから消えて、snapで入れるようになったようです。
OK キャンセル 確認 その他