UbuntuServer18.04にPostgreSQL9.5をインストールする

標準のリポジトリにはないので、公式wikiを参考にインストールする。

リポジトリキーをインポートする。

# curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -

リポジトリを追加する。

# echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
# apt update

インストール。

# apt install postgresql-9.5

サービスを起動する。

# systemctl start postgresql@9.5-main

postgresのパスワードを設定する。

# su postgres
$ psql
postgres=# alter user postgres with password 'password';
postgres=# \q

Ubuntu20.04でのHDDの追加

追加するHDDを接続した上で現在のデバイスを確認する。

$ lsblk --fs --paths

下記のような結果なので、sdaに対して設定を行う。

NAME             FSTYPE LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINT
/dev/sda                                                                          
/dev/nvme0n1                                                                      
├─/dev/nvme0n1p1 vfat         4252-A60B                             502.1M     2% /boot/efi
└─/dev/nvme0n1p2 ext4         f4b866f5-224e-4a1b-9b19-14d15c9e6f09  117.6G    44% /

fdiskで設定を開始する。

# fdisk /dev/sda

コマンドpやiで既存パーティションを確認する。必要であればdでパーティションを削除する。

コマンド (m でヘルプ): p
ディスク /dev/sda: 931.53 GiB, 1000204886016 バイト, 244190646 セクタ
Disk model: 003-1ER162      
単位: セクタ (1 * 4096 = 4096 バイト)
セクタサイズ (論理 / 物理): 4096 バイト / 4096 バイト
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x92db83f8

コマンド (m でヘルプ): i
パーティションは何も設定されていません!

コマンドnで新しいパーティションを作成する。

コマンド (m でヘルプ): n
パーティションタイプ
   p   基本パーティション (0 プライマリ, 0 拡張, 4 空き)
   e   拡張領域 (論理パーティションが入ります)
選択 (既定値 p): 
パーティション番号 (1-4, 既定値 1): 
最初のセクタ (256-244190645, 既定値 256): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (256-244190645, 既定値 244190645): 

新しいパーティション 1 をタイプ Linux、サイズ 931.5 GiB で作成しました。

コマンドwでディスクに対して書き込みを行う。

コマンド (m でヘルプ): w
パーティション情報が変更されました。
ioctl() を呼び出してパーティション情報を再読み込みします。
ディスクを同期しています。

改めてlsblkを実行して作成したパーティションのデバイスパスを確認する。

$ lsblk --fs --paths

下記のような結果なので/dev/sda1に対してファイルシステムの作成を行う。

NAME             FSTYPE LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINT
/dev/sda                                                                          
└─/dev/sda1                                                                       
/dev/nvme0n1                                                                      
├─/dev/nvme0n1p1 vfat         4252-A60B                             502.1M     2% /boot/efi
└─/dev/nvme0n1p2 ext4         f4b866f5-224e-4a1b-9b19-14d15c9e6f09  117.6G    44% /

ファイルシステムをext4で作成する。

# mkfs -t ext4 /dev/sda1

fstabに追加して自動マウントさせる。

/dev/sda1               /data               ext4    defaults        0 0

UbuntuにインストールしたAndroidStudio3.3を日本語化する

とりあえずpleiadesを使用するのでダウンロードする。

ダウンロードしたら解凍して、plugins内にある「jp.sourceforge.mergedoc.pleiades」を~/.AndroidStudio3.3/内に移動する。

移動したら、~/.AndroidStudio3.x/config/studio64.vmoptionsを編集して下記の2行を追加する。32bitの場合はstudio.vmoptionsかな。

-Xverify:none
-javaagent:/home/user/.AndroidStudio3.3/jp.sourceforge.mergedoc.pleiades/pleiades.jar

dockerでEC-CUBE4の検証環境を雑につくる

まずはこの記事を参考にPHP7.2とApacheのコンテナをつくる。
(今回はSQLiteで良いのでpdoのみ入れてpdo_mysqlは入れなかった)

eccube4という名前のコンテナをつくった。

下記を実行して国際化用拡張モジュールを追加する。

# docker exec -it eccube4 /bin/bash
# apt install zlib1g-dev libicu-dev
# docker-php-ext-install intl

コンテナ内で/var/www/htmlのパーミッションを変更しておく。とりあえず777にしたが、www-dataを所有グループにするのが正解かもしれない。

# chmod 777 /var/www/html

コンテナ内でwgetを使ってEC-CUBEのアーカイブをとってきて解凍する。

# apt install wget
# wget http://downloads.ec-cube.net/src/eccube-4.0.0.tar.gz
# tar -xzf eccube-4.0.0.tar.gz 
# mv eccube-4.0.0/* eccube-4.0.0/.[^\.]* ./

あとはhttp://127.0.0.1/にWEBブラウザでアクセスしてインストールする。

Ubuntu18.04でVPN切断後に名前解決できなくなるバグ対応

問題点

L2TP/IPsecで自宅にVPN接続して切断するとインターネットにつながらなくなる。ググってみるとここで議論されているやつと同じだと思うのだが、18.10では修正済みらしい。要するにVPNを切断した際にsystemd-resolvedを自動で再起動してくれればそれで良い。

解決策

下記の場所/内容のスクリプトを配置する。

#!/bin/sh
status=$2
case $status in
    vpn-down) systemctl restart systemd-resolved ;;
esac

実行可能に設定する。

# chmod +x /etc/NetworkManager/dispatcher.d/02-restart-resolved-when-vpn-disconnect

Ubuntu16.04をupdateできない問題(appstream)

2018/11/01にUbuntu16.04をインストール後、アップデートで失敗した際の備忘録。
*** Error in `appstreamcli’: double free or corruption (fasttop): 0x0000000000000178 ***

appstreamを削除すればとりあえずアップデートできる。

# apt remove appstream