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が入りました。

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-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にリンクを張りました。

2022/04/30(土)ubuntu 22.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が賢くなってファイルの拡張子に応じて自動でインデントしてくれるようになったが、自分はエディタが勝手に何かするのが嫌いなのでそれを止める。
を設定しています。
OK キャンセル 確認 その他