Ubuntu で遊ぶ

no extension

さてインストールも完了したし,さっそく遊ぼうか。

なお,この記事は覚え書きとして随時更新していく予定なので悪しからず。

いくつかの記事(インストール情報だけ書いた節)は「Advanced Package Tool に関する覚え書き」へ移動した。 併せてどうぞ。

VirtualBox との連携

クリップボードの内容を共有する

Ubuntu の動作確認はテキストファイルでメモを取りながら行っているのだが,ホスト OS とゲスト OS との間でクリップボードが共有できないか調べてみたら簡単にできるようだ。

インストール後の VirtualBox マネージャは以下の通り。

この画面から「設定」アイコンをクリックすると以下の画面が開く。

この画面の「一般」カテゴリの「高度」タブに「クリップボードの共有」の項目がある。 ここを「双方向」にすればホスト OS とゲスト OS との間でクリップボードを共有できる。

Ubuntu に関する雑多なこと

そもそも Ubuntu でターミナルってどうやって開くんだろうと思ったが,デスクトップを右クリックして「端末を開く」でよかった。

Advanced Package Tool

UbuntuDebian 系のディストリビューションなのでパッケージやシステムの管理には APT (Advanced Package Tool) を使う。 apt-get 等が apt コマンドに統合されているとは知らなかったよ。 Debian 系は古いバージョンしか使ったことなかったからなぁ(笑)

パッケージリストを更新するには apt update コマンドを実行する。

$ sudo apt update
[sudo] username のパスワード: 
ヒット:1 http://archive.ubuntulinux.jp/ubuntu cosmic InRelease
ヒット:2 http://jp.archive.ubuntu.com/ubuntu cosmic InRelease
取得:3 http://jp.archive.ubuntu.com/ubuntu cosmic-updates InRelease [88.7 kB]
ヒット:4 http://archive.ubuntulinux.jp/ubuntu-ja-non-free cosmic InRelease
取得:5 http://jp.archive.ubuntu.com/ubuntu cosmic-backports InRelease [74.6 kB]
取得:6 http://security.ubuntu.com/ubuntu cosmic-security InRelease [88.7 kB]
252 kB を 2秒 で取得しました (129 kB/s)
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
パッケージはすべて最新です。

パッケージリストを更新したらパッケージをアップグレードする。 パッケージをアップグレードするには apt upgrade コマンドを実行する。

$ sudo apt upgrade
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  libncursesw5 libtinfo5
これを削除するには 'sudo apt autoremove' を利用してください。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。

おっと削除を推奨するパッケージがあるようだ。 apt autoremove で削除してしまおう。

$ sudo apt autoremove
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージは「削除」されます:
  libncursesw5 libtinfo5
アップグレード: 0 個、新規インストール: 0 個、削除: 2 個、保留: 0 個。
この操作後に 856 kB のディスク容量が解放されます。
続行しますか? [Y/n] y
(データベースを読み込んでいます ... 現在 167547 個のファイルとディレクトリがインストールされています。)
libncursesw5:amd64 (6.1+20180210-4ubuntu1) を削除しています ...
libtinfo5:amd64 (6.1+20180210-4ubuntu1) を削除しています ...
libc-bin (2.28-0ubuntu1) のトリガを処理しています ...

これでオッケ。

今回はなかったが保留パッケージを含めて更新する場合は

$ sudo apt full-upgrade

を実行する。

ちなみに APT のログは /var/log/apt/ ディレクトリにある。 あと /var/log/dpkg.log ファイルも参考になるだろう。

Snap でパッケージ管理をする

APT 以外では Snap を使ったパッケージ管理もあるらしい。 SnapUbuntu 18.04 以降は既定で入っているらしい。

$ apt show snapd
Package: snapd
Version: 2.38+19.04
Built-Using: apparmor (= 2.12-4ubuntu10), golang-1.10 (= 1.10.4-2ubuntu1), libcap2 (= 1:2.25-2), libseccomp (= 2.3.3-3ubuntu2)
Priority: optional
Section: devel
Origin: Ubuntu
...

ただし APT とは別管理になるため取り扱いには注意が必要だろう。 たとえば LibreOffice や Firefox は APT 版と Snap 版が混在してしまう。 また Thunderbird のように Snap 版のほうがバージョンが古かったりする場合もある。

Snap で自機に導入されているパッケージは

$ snap list

で見れる。 また Snap が提供しているパッケージは

$ snap find packagename

で検索でき

$ sudo snap install packagename

でインストールできる。 削除は

$ sudo snap remove packagename

で OK。 更新は

$ sudo snap refresh

で一括更新できるようだ。

セキュリティ情報をチェックする

本家の Debian ディストリビューションのセキュリティ情報は以下から取得できる。

Ubuntu の方は以下から。

フィードも提供されているので巡回先に加えることにしよう。

えっ ifconfig って入ってないの?

なにはともあれネットワーク設定を見ようと ifconfig コマンドを叩いてみたが

$ ifconfig -a -v

Command 'ifconfig' not found, but can be installed with:

sudo apt install net-tools

とか言われる。 まじすか!

まぁ,なければ入れればいい話なので言われたとおりインストールする。

$ sudo apt install net-tools

これで

$ ifconfig -a -v
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 xxxx::xxxx:xxxx:xxxx:xxxx  prefixlen 64  scopeid 0x20<link>
        ether **:**:**:**:**:**  txqueuelen 1000  (イーサネット)
        RX packets 20  bytes 2764 (2.7 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 82  bytes 8466 (8.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (ローカルループバック)
        RX packets 151  bytes 11745 (11.7 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 151  bytes 11745 (11.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

おー,動いた動いた。

ちなみに IP アドレスの 10.0.2.xxVirtualBox 側の仮想 DHCP ネットワークらしい。

OpenJDK を入れる

【追記 2019-07-31】 どうも Java 12 は放置プレイっぽいので APT は使わない方向で。

OpenJDK は3月と9月の半年毎にバージョンアップが行われる。 リリース時期とサポート期間は以下の通り(ディストリビューションによっては延長サポートあり)。

Oracle Java OpenJDK
Java 9 2017年9月 - 2018年3月 2017年9月 - 2018年3月
Java 10 2018年3月 - 2018年9月 2018年3月 - 2018年9月
Java 11 2018年9月 - 2026年9月 2018年9月 - 2019年3月
Java 12 - 2019年3月 - 2019年9月
Java 13 - 2019年9月 - 2020年3月
Java 14 - 2020年3月 - 2020年9月
Java 15 - 2020年9月 - 2021年3月
Java 16 - 2021年3月 - 2021年9月
Java 17 2021年9月 - 2029年9月 2021年9月 - 2022年3月

OpenJDK のインストールは APT で普通にできるが複数のバージョンがあるので注意が必要だ。 まずは提供しているバージョンを調べてみる(Ubuntu 19.04 の場合)。

$ sudo apt search openjdk-\(\.\)\+-jre$
ソート中... 完了
全文検索... 完了  
nvidia-openjdk-8-jre/disco 9.+8u77~10.1.105-0ubuntu1 amd64
  NVIDIA provided OpenJDK Java runtime, using Hotspot JIT

openjdk-11-jre/disco-updates 11.0.3+7-1ubuntu1 amd64
  OpenJDK Java ランタイム - Hotspot JIT 版

openjdk-12-jre/disco,now 12.0.1+12-1 amd64
  OpenJDK Java ランタイム - Hotspot JIT 版

openjdk-13-jre/disco 13~13-0ubunt1 amd64
  OpenJDK Java ランタイム - Hotspot JIT 版

開発環境を含めるのであれば jdk で探す。

$ sudo apt search openjdk-\(\.\)\+-jdk$
ソート中... 完了
全文検索... 完了  
openjdk-11-jdk/disco-updates 11.0.3+7-1ubuntu1 amd64
  OpenJDK Development Kit (JDK)

openjdk-12-jdk/disco 12.0.1+12-1 amd64
  OpenJDK Development Kit (JDK)

openjdk-13-jdk/disco 13~13-0ubunt1 amd64
  OpenJDK Development Kit (JDK)

今回は OpenJDK 12 のランタイムのみを入れたいので

$ sudo apt install openjdk-12-jre

とすればよい。 上手くインストールできていれば

$ java -version
openjdk version "12.0.1" 2019-04-16
OpenJDK Runtime Environment (build 12.0.1+12-Ubuntu-1)
OpenJDK 64-Bit Server VM (build 12.0.1+12-Ubuntu-1, mixed mode, sharing)

てな感じになる。 よしよし,先日のアップデートも反映されているな。

自分の環境に 複数バージョンの Java が入っている場合は

$ sudo update-alternatives --config java

とする。

There are 2 choices for the alternative java (providing /usr/bin/java).  
Selection Path Priority Status 
———————————————————— 
* 0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 auto mode 
1 /usr/lib/jvm/jre1.7.0/jre/bin/java 3 manual mode  

Press enter to keep the current choice[*], or type selection number:

みたいな感じになって切り替えができるようだ。

GUI な SFTP クライアントを導入する

Ubuntu で GUI な SFTP クライアントというと gFTPFileZilla になりそうだが gFTP の最終リリースが2008年というのを見て FileZilla を選択した。 いや古いのが悪いってわけじゃないんだけど,10年以上セキュリティ・アップデートもないってのはちょっと信じられない。 やはりソフトウェアを取り巻くコミュニティが活況でないということなんだろう。

FileZilla ドキュメントには

It is recommended that you use the package manager of your distribution.
If you're using GNU/Linux, you can also try using the precompiled binaries. After extracting the files to any location (location does not matter, FileZilla can detect its own installation prefix), you can start the program using the filezilla executable in the bin/ subdirectory. Please note that due to differences in distributions, the provided binaries might not work on your system.
via Client Installation - FileZilla Wiki

と書かれていて,とりあえず APT で調べてみると

$ apt show filezilla
Package: filezilla
Version: 3.39.0-2
Priority: optional
Section: universe/net
Origin: Ubuntu
...

いや,古すぎるだろ。 こんなんばっかだな APT は。

ちうわけでダウンロードページから取ってきたファイルを展開して使うことにする。

$ sudo mv ./FileZilla_3.42.1_x86_64-linux-gnu.tar.bz2 /usr/local/src/
$ cd /usr/local/
$ sudo tar xvf src/FileZilla_3.42.1_x86_64-linux-gnu.tar.bz2
$ sudo chown -R root:root FileZilla3

展開時のファイル・ディレクトリ構成を維持していれば FileZilla は起動時のパスを見て適切に起動できるようだ。 なので,別にパスを通さなくても .bashrc などで

alias fz='/usr/local//FileZilla3/bin/filezilla'

とか定義しておけば

$ fz &

で起動できる。

使い方は見れば分かる(笑) 「サイト マネージャー」で接続先を設定して「接続」すればよい。 SFTP で公開鍵認証をを行う場合はログオンタイプを「インタラクティブ」にしておけば接続時に SSH_AUTH_SOCK 環境変数で指定したソケットからエージェントが起動する。

エージェントに gpg-agent を利用する場合は拙文を参考にどうぞ。 FileZilla に限らず,セキュリティ製品でもないソフトウェアにパスワードや秘密鍵を登録するのはオススメしない。

GNOME Shell をリスタートする

現在 Ubuntu の GUI Shell である GNOME Shell はコマンド一発で簡単にリスタートできるらしい。

手順は以下の通り

  1. alt-F2 で「コマンドを入力」を表示させる
  2. コマンド「r」を入力してリターンキーを押す

以上。

システムモニタを見ると gnome-shell プロセスの使用メモリが減っているのが分かる。 再起動や再ログインなしでできるのは嬉しい。

スワップの解放

マシンを稼働させっぱなしにしていると少しずつスワップ領域が食われていくので以下のコマンドで解放する。

$ sudo swapoff -a
$ sudo swapon -a

swapoffコマンドでスワップアウトされているデータをメモリに戻しているのだが,当然ながらメモリに空きがないと失敗する。 この場合は不要なプロセスを終了させるなどして空きを作ればいいのだが,無理そうなら諦めて再起動したほうが早いかもしれない。 まぁ,サーバ機では簡単に再起動とはいかないだろうが,デスクトップならね。 メモリに空きを作る手順は以下を参考にそうぞ。

その他ブックマーク

参考図書

photo
Ubuntu 18.04 LTS 日本語 Remix 使い方が全部わかる本 (日経BPパソコンベストムック)
日経Linux (編集)
日経BP社 2018-10-02 (Release 2018-10-02)
Book ムック
ASIN: 4296100742, EAN: 9784296100743

Kindle 版もあるが紙のほうなら DVD が付録でついてくる。

reviewed by Spiegel on 2019-03-31 (powered by amazon-item 0.2.1)