2022/04/30(土)ubuntu 22.04 インストール (9)

何かとお世話になることが多くなった、dockerを入れます。
sudo apt install docker.io
で20.10.12が入りました。
sudo usermod -aG docker kashi
みたいにしてrootにならなくても使えるようにしました。

また、vmwareではなく実機の場合ですが、NVidiaのGPUがあればnvidia-dockerを設定するとdockerの中でGPUが見えて便利です。設定方法を書いておきます。まず、NVidiaのビデオドライバが入っていて動いている必要があります。
nvidia-smi
と叩いてGPUのstatusが出れば問題ないでしょう。もし動いていなければ、
ubuntu-drivers devices
を実行し、そこに出てきたお勧めのドライバーを、
sudo apt install nvidia-driver-510
のように入れます。

nvidia-dockerは、
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker
のようにインストールします。
docker run --gpus all --rm nvidia/cuda:11.0-base nvidia-smi
で、dockerの中でnvidia-smiが動くことを確認しましょう。

2022/04/30(土)ubuntu 22.04 インストール (8)

研究には全然関係ないけど、マルチメディア系?のいろいろを入れた記録です。
sudo apt install ubuntu-restricted-extras
で、著作権上の制限があってインストーラには入れられないアプリケーション群が入ります。いろいろ聞かれますが、TABキーで選択してOKしましょう。

市販dvdの再生を可能にするには、15.10からの手順で、
sudo apt install libdvd-pkg
sudo dpkg-reconfigure libdvd-pkg
とします。いろいろ聞かれますが全てOKで。

その他、
sudo apt install handbrake
sudo apt install vlc
sudo apt install ffmpeg
を入れました。

なお、デフォルトの画像ビューアは名前が分かりにくいですが「eog」です。また、「shotwell」で簡単な画像編集ができます。

2022/04/30(土)ubuntu 22.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から見えるようになりました。

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

GUIで

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

CUIで

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

2022/04/30(土)ubuntu 22.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を有効化します。

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 clang
clangは14.0.0が入りました。
sudo apt install libboost-all-dev
boostはやっぱり要る。1.74が入りました。

Java

sudo apt install default-jdk
sudo apt install icedtea-netx
openjdkの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-dev
6.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 julia
20.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にリンクを張りました。
OK キャンセル 確認 その他