ラズパイ3に外付けHDDでNAS 構築

ラズパイ3に外付けHDDでNAS 構築

ラズパイZeroW で動画撮影できるようになったけど
容量が足りないため
NAS へ保存することに

ただ、NASは高いため
ラズパイ3と外付けHDDで構築

今回使用したのは昔購入した外付けHDDがあったので
これを活用

今回は
Raspberry Pi 3 に Samba 4.2 をインストール

を参考に実践

すでに過去にインストールなどは済ませてあるので
ssh で接続

ssh pi@192.168.1.208

というように
pi@ラズパイのIPアドレスで接続

なお、パスワードは変更済みだけど
デフォルトのパスワードは
raspberry

ここからは root ユーザで実行するので

sudo su

で root ユーザに切り替え

apt-get update

でリポジトリ更新

apt-get -y upgrade

でソフトのアップデート

次にSamba のインストール

apt-get -y install samba

次に外付けHDDの設定

とはいっても
デバイスがどのパスになっているのかは
それぞれの環境により異なるので
ラズパイ3 外付けhdd
で検索し
Raspberry Pi 3 ModelB で外付けHDDをファイルサーバー化する

を参考に

 fdisk -l

Device     Boot Start        End    Sectors   Size Id Type
/dev/sda1          63 1953520064 1953520002 931.5G 83 Linux

と表示されるので
/dev/sda1 にあることを確認

次に再起動時に自動マウントさせるために
UUIDを調べたいので

blkid /dev/sda1

でUUIDを確認

今回の結果は

/dev/sda1: LABEL="outhdd" UUID="3c00b165-8ba1-481d-8f0d-372b8bbbcb66" TYPE="ext4" PARTUUID="c675b7b1-01"

なお blkid コマンドについては
【 blkid 】コマンド――ブロックデバイスの属性を表示する

を参考に

次にext4 形式でフォーマットするので
もともと書き込まれていたファイルシステムの情報を削除

使用するコマンドは wipefs コマンド

ファイルシステム関連コマンドについては
ファイルシステムの痕跡(メタデータ)をクリアする方法あれこれ(wipefsほか)

を参考に

wipefs -a /dev/sda1

を実行したものの

wipefs: error: /dev/sda: probing initialization failed: デバイスもしくはリソースがビジー状態です

となってしまう

このため

df

でマウント位置の確認

ファイルシス   1K-ブロック      使用   使用可 使用% マウント位置
/dev/root         26651708  11079260 14195580   44% /
devtmpfs            468084         0   468084    0% /dev
tmpfs               472692         4   472688    1% /dev/shm
tmpfs               472692     12472   460220    3% /run
tmpfs                 5120         4     5116    1% /run/lock
tmpfs               472692         0   472692    0% /sys/fs/cgroup
/dev/mmcblk0p6       66528     22541    43988   34% /boot
tmpfs                94536         0    94536    0% /run/user/1000
/dev/sda1        961301000 820207676 92238940   90% /media/pi/outhdd
/dev/mmcblk0p5       30701       398    28010    2% /media/pi/SETTINGS

/media/pi/outhdd
にマウントされているようなので

デバイスもしくはリソースがビジー状態です

を参考に
umount コマンドでアンマウント

umount -f /media/pi/outhdd/

そして再度

wipefs -a /dev/sda1

とすると成功

次にパーティションの新規作成

fdisk に関しては
fdisk でパーティションのサイズを変更する

を参考に

fdisk /dev/sda1

を実行すると

Changes will remain in memory only, until you decide to write them. Be careful before using the write command.  Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0xe590c949.

となるので
n を入力し Enter

Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): 

となるので、そのままEnter

Partition number (1-4, default 1): 

となるので、これも Enter

First sector (2048-1953520001, default 2048): 

も Enter

Last sector, +sectors or +size{K,M,G,T,P} (2048-1953520001, default 1953520001):

もEnter

これで

Created a new partition 1 of type 'Linux' and of size 931.5 GiB.

Command (m for help): 

とでたら
p を入力するとパーティーション情報が表示される

今回は

Disk /dev/sda1: 931.5 GiB, 1000202241024 bytes, 1953520002 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xe590c949

Device      Boot Start        End    Sectors   Size Id Type
/dev/sda1p1       2048 1953520001 1953517954 931.5G 83 Linux

Command (m for help): 

これで設定反映のため
w とすると

The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: 無効な引数です

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).

となってしまう

エラーメッセージから検索したところ
37.3. パーティションの作成と削除
https://www.turbolinux.co.jp/products/server/11s/user_guide/partition.html
によれば再起動が必要とのこと

再起動前にフォーマットやマウントをしておきたいので

mkfs.ext4 /dev/sda1

を実行

Found a dos partition table in /dev/sda1
Proceed anyway? (y,N)

となるので y を入力

次に外付けHDDのマウント先を作成し
マウント

mkdir /mnt/hdd
mount /dev/sda1 /mnt/hdd/

外付けHDDを ext4 でフォーマットしているので

blkid /dev/sda1

で確認

結果

/dev/sda1: UUID="96cc41c9-808c-4851-83f5-53bdfa487787" TYPE="ext4" PARTUUID="c675b7b1-01"

となっているので

nano /etc/fstab 

で設定ファイルを開き

最終行に

UUID="96cc41c9-808c-4851-83f5-53bdfa487787"     /mnt/usb1       ext4    defaults 0 0

を追記

あとは設定反映のため再起動するので

reboot

を実行

これで

 df 

を実行し
マウントされていればOK

今回だと

ファイルシス   1K-ブロック     使用    使用可 使用% マウント位置
/dev/root         26651708 11079248  14195592   44% /
devtmpfs            468084        0    468084    0% /dev
tmpfs               472692        4    472688    1% /dev/shm
tmpfs               472692    12452    460240    3% /run
tmpfs                 5120        4      5116    1% /run/lock
tmpfs               472692        0    472692    0% /sys/fs/cgroup
/dev/mmcblk0p6       66528    22541     43988   34% /boot
/dev/sda1        960379088    77852 911446852    1% /mnt/hdd
tmpfs                94536        0     94536    0% /run/user/1000

というかんじ

次に samba 用フォルダ作成

mkdir /mnt/hdd/share
mkdir /mnt/hdd/share/family
chmod -R 777 /mnt/hdd/share/

次に設定ファイルの編集
ここからは使い慣れた vim で編集していきます

vim /etc/samba/smb.conf 

で設定ファイルを開き
/global で検索し
25行目あたりに

dos charset = CP932
unix charset = UTF-8
guest account = pi

を追加

なお、vim の場合 ctrl + shift + v で貼り付けが可能

そして
shift + g で最終行に移動し

[ファミリー]
        path = /mnt/hdd/share/family
        writable = yes
        guest ok = yes
        guest only = yes
        create mode = 0777
        directory mode = 0777

として保存

これで

service smbd restart

でSamba の再起動をすることでファイル共有が可能に

Ubuntu 16.04 の場合
エクスプローラで
ネットワークをクリックすると
RASPBERRYPI
と表示されるので

これを
クリックして今回設定したフォルダをクリックすると
ユーザ認証になるので
ユーザ名 pi
パスワード ラズパイ3のパスワード
とすることでログインしてファイル共有することが可能になります

ラズパイ Zero W で動画保存の設定変更

ラズパイ Zero W で動画保存の設定変更

今回も参考書籍はラズパイマガジン

motion では
動きを検知したときに動画と静止画が保存される

保存場所は
/var/lib/motion
に記録される

なお、デフォルトだと撮影時間が無制限なので

sudo  nano /etc/motion/motion.conf 

でファイルを開き

ctrl + w で検索モードにして
max_movie_time
で検索し

max_movie_time 0

から任意の撮影秒数に変更

保存するには
ctrl + x で Y のあと Enter

今回は20秒にするので

max_movie_time 20

そして、自動的に motion を起動できるようにしたいので

sudo nano /etc/default/motion 

でファイルを開き

start_motion_daemon=no

start_motion_daemon=yes

次に insserv パッケージをインストール

 sudo apt-get install insserv

あとは

sudo insserv motion

これで自動起動設定も完了

もし、自動起動していないのなら

sudo motion

で motion を起動

あとは電源をモバイルバッテリーにすることで
コンセントがない場所でも撮影が可能に

これで撮影ができるようにはなったけど
容量が8GBの microSD のため容量不足により
motion が停止してしまうので
Raspberry Pi3 でNASを構築し
動画保存先をそちらに移す予定

ラズパイ Zero W で動画保存

ラズパイ Zero W で動画保存

今回も参考書籍はラズパイマガジン

動画撮影には
motion というソフトを使うけど
デフォルトでは使えないようなので
設定を変更

 sudo nano /etc/modules

でファイルを開き

bcm2835-v4l2

を最終行に追記

保存するときには
ctrl + x で
Y
あとは Enter で保存されます

nano エディタの使い方は
nano 使い方
で検索してもでてくるけど
ファイルの作成と編集、保存ぐらいなら
nano (テキストエディター) について

のほうがまとまっていておすすめ

あとは

sudo reboot

で再起動

次に motion のインストール

sudo apt update

でリポジトリを更新し

sudo apt install -y motion

で motion をインストール

次に設定ファイルの編集

sudo nano /etc/motion/motion.conf 

で設定ファイルを開き

ctrl + w で検索できるので
daemon で検索し

daemon off

daemon on

に変更

ctrl +x で width で検索し

width 320 

width 640 

に変更

height 240

height 480

に変更

ctrl +x で framerate で検索し

framerate 2

framerate 10

に変更
framerateは
動体を検知した時に画像をキャプチャするフレームレートの最大値
大きくするとCPU負荷も上がるが
動きがなめらかになる

ctrl +x でevent_gap で検索し

event_gap 60

event_gap 10

に変更
eventgap は
動体検知が収まってから再度検知するまでの秒

ctrl +x で stream_localhost で検索し

stream_localhost on

stream_localhost off

に変更
stream_localhost は
ライブストリームへのアクセスをローカルホストからのみに制限する
on だとローカルホストのみ

ここまでできたら
ctrl + x で Y を押して保存ファイルを聞かれるので
Enter で上書き保存

なお
motion の各種設定については
motionのオプションについて

を参考に

ここまでできたら

sudo motion

で motion を起動

これでブラウザから
http://ラズパイZeroWのIPアドレス:8081/
にアクセスするとリアルタイムの動画を見れます

なお motion の停止は

sudo service motion stop

でできます

停止方法がラズパイマガジンになかったので
Raspberry Pi でカメラ

を参考にしました

ラズパイ Zero W でカメラの実験 その2

ラズパイ Zero W でカメラの実験 その2

撮影はできたけど
そのままだとファイル名が同じなので
上書きしていってしまうため
写真を保存するディレクトリを作成

今回も ラズパイマガジンを参考に実践

mkdir rscamera

次に写真を保存するスクリプトを作成

nano rscamera.sh

でファイルを作成

内容は

#!/bin/bash
DATE=$(date +"%Y-%m-%d_%H-%M")
raspistill -o /home/pi/rscamera/$DATE.jpg

として保存

保存するときには
ctrl + x で
Y
あとは Enter で保存されます

nano エディタの使い方は
nano 使い方
で検索してもでてくるけど
ファイルの作成と編集、保存ぐらいなら
nano (テキストエディター) について

のほうがまとまっていておすすめ

このスクリプトでは
DATE という変数に
date コマンドと現在の日時を保存して
それをコマンド実行時につけて行っているというもの

なおシェルスクリプトでは
変数は
$変数名
という書き方をする

ドットインストールの
シェルスクリプトの講座をみるとわかりやすいかも
シェルスクリプト入門

保存したら権限変更

chmod +x rscamera.sh 

chmodなど権限については
chmod? chown? よくわからんって人のための、ファイル権限系まとめ

を参考に

なお +x をつけているのは
スクリプト書いただけでは実行できないので
実行権限を付与するため

あとは

./rscamera.sh 

で実行

スクリプトは
./スクリプトファイル
で実行できる

撮影された写真は
rscamera というディレクトリにあるので

ls rscamera

で確認できる

ここまでできたら
次に毎回コマンドをうつのではなく
crontab で自動で指定した時間に撮影するようにする

sudo crontab -e

実行すると

Select an editor.  To change later, run 'select-editor'.
  1. /bin/ed
  2. /bin/nano        <---- easiest
  3. /usr/bin/vim.tiny

Choose 1-3 [2]: 

となって
どのエディタを使うか聞かれる

とりあえず nano でいいなら
そのままEnter

あとはファイルの最終行に

*/10 * * * * /home/pi/rscamera.sh

を追記して
ctrl + x で保存

なおcron の設定時間は
分 時 日 月 曜日
となっているので
今回の
*/10 という設定だと
毎分10分
ということになる

10だけだと
時刻が10分をさしたときだけ実行なので注意

詳しくは
cronの設定方法

を参考に

ラズパイ Zero W でカメラの実験

ラズパイ Zero W でカメラの実験

参考書籍はラズパイマガジン2018 6月号

今回は購入にあたり
KSYから購入

https://raspberry-pi.ksyic.com/
から購入可能

Raspberry Pi Zero W

Raspberry Pi Zero WH
があるけど
違いはGPIOピンヘッダのハンダ付けがされてるのが
WHのほうということ

今回はカメラが使えれば十分なので
W の方を購入

この違いに関しては
Raspberry Pi Zero W と Raspberry Pi Zero WH

を参考に

なおOSの書き込みが面倒という場合
Pi Zero W Starter Kit 8GB
を購入することで
最初からOSの書き込みがされているので
こちらを使うというのもおすすめ

なお、PiZero があるけど
こちらは WiFi 対応ではないので注意

これと
Piカメラ Official V2 for 3/2/1/0
でカメラを購入し

そのままのカメラケーブルでは
Pi Zero W で使うにはながすぎなので
FFC ケーブル 15cm for PiCSI/DSI
を購入

なお、初期セットアップで必要になる
マウス
キーボード
ディスプレイ
HDMIケーブルは
もともと自宅にあったものを使用しました

今回の目的はラズパイ Zero W で
カメラで動画撮影して、今後は WiFi 経由で
動画や写真を別のストレージに保存するというものです

なお、この構成で購入した場合
初期のインストールはGUIで行うので
マウスをさして起動するのがベスト

インストール終了後は
キーボードを使用

USBポートが少ないため
キーボードかマウスのどちらかのみしか選べないため
キーボードに差し替え
ctrl + alt + t で端末を起動

sudo bash

で root 権限になり

wpa_passphrase SSID名 パスワード >> /etc/wpa_supplicant/wpa_supplicant.conf 
exit

としてパスワードを追記

sudo reboot

で再起動すると WiFi のIPが振り分けられるので

hostname -I

でIPアドレスが確認できる

なお、Android スマホの場合
Fing というアプリでIPを調べることも可能

次に
SSH接続できるように設定を変更

sudo raspi-config

を実行し

Interfacing Options を Select

PS SSH を Select し

はいを選択後に 了解を選択

これでSSHは使えるようになったので

次にカメラを使えるように
再度 Interfacing Options を Select し
P1 Camera を Select

はいを選択して了解を選択

次にパスワードを変更
デフォルトのパスワードは
raspberry なので
1 Change User Password
を Select して 了解を選択

これで新しいパスワード設定ができるので
任意のパスワードを入力

これで
パスワード設定
カメラとSSHの有効化ができたので
Finish を選択すると
設定反映のため自動的に再起動される

これで ubuntuで
ctrl + alt + t で端末をひらき

ssh pi@ラズパイZeroWのIP

としてパスワードを入力すれば
SSHで接続して処理を行うことができるようになる

次にアップデートをするので

sudo apt update

でリポジトリを更新

sudo apt upgrade 

でアップデート

これで準備ができたので
つぎに撮影
まずは静止画
これは
raspistill コマンドでできる

オプションが色々あるけと
カメラの向きが変わってることが多々あるので
-o で出力先の変更以外に
-hf で垂直方向へ反転させたり
-hv で水平方向へ反転させることがある

とりあえず、向きに問題ないなら

raspistill -o test.jpg

てok

撮影には5秒ほどのタイムラグがあるので注意

もし撮影できていないのなら
カメラケーブルを確認するといいかも

Ubuntu 16.04 で Android DB の確認

Ubuntu 16.04 で Android DB の確認

最初に SQLite コマンドで確認しようとしたけど
初期状態ではインストールされていないので

sudo apt install sqlite3

でインストール

次に
adb コマンドを使おうと思ったけど
これも入っていないので

ADBをインストールして使用する

を参考に

sudo apt-get install android-tools-adb

でインストール

次にエミュレータが起動している状態で

adb shell

を実行

あとは

cd /data/data/パッケージ名/databases/

で移動し

sqlite3 DB名

でアクセス
これで sql コマンドで Android アプリのDBの内容の確認ができる

なお抜けるには
Ctrl + d を2回押せば抜けることができる

あと Devicce Moniter もあって
こっちでもみれるらしい

./Android/Sdk/tools/monitor 

で起動できたけど

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Error Loading DDMS Preferences

となってしまうため
こちらは保留

ubuntu 18.04 日本語 Remix でGitLab

ubuntu 18.04 日本語 Remix でGitLab

ubuntu 18.04 の GitLab 環境を
ローカルで使用したいので
virtualBox で構築

まずはISOファイルのダウンロード

Ubuntu Desktop 日本語 Remixのダウンロード

から
ubuntu-ja-18.04.1-desktop-amd64.iso(ISOイメージ)
をダウンロード

次に VirtualBoxで仮想マシン作成
今回はメモリ4GB
CPUを4つ割当し
ネットワークをブリッジアダプターにしておきます

ubuntu18.04 のダウンロードが完了したら
ストレージの
IDE の光学ドライブの設定を
ubuntu 18.04 のISOファイルを指定するようにします

あとは起動をクリックすれば
インストール画面になるのでそのまま続けていきます

インストール完了後
今回は
Ubuntu 18.04 LTSにDockerを使ってGitLabとMattermostを導入してみた

を参考に
Docker を使って GitLab を導入します

が、ここで問題発生
今後は ssh で接続して行おうと思って
ifconfig コマンドでIPアドレスを調べようとしたら
コマンドが存在しないとのこと

Ubuntu 17.04 その132 – ifconfigからipコマンドへ移行しよう・ipコマンドはifconfigを置き換える

によると
ip コマンドを代わりに使うようです

使い方に関しては
ipコマンド備忘録

などを参考に今後調べていく予定

ip addr

で現在のIPアドレスがわかるので

次に ssh 接続できるように
ubuntu18.04 側へ openssh-server をインストールし
.ssh ディレクトリにを作成

sudo apt-get -y install ssh
mkdir .ssh
chmod 700 .ssh/

次に
クライアントマシンとしての ubuntu16.04 から
ssh で接続して操作します

cd .ssh/
ssh-keygen -t rsa -f gitlab_snowpool

今回は gitlab_snowpool
というファイル名にしました

ファイル名は任意でOK
これで鍵ができたので

scp gitlab_snowpool.pub snowpool@192.168.1.139:/home/snowpool/.ssh/.

で鍵を scp でコピー

コピーできたら
再び ubuntu18.04 側で

cd .ssh/
cat gitlab_snowpool.pub >> authorized_keys
chmod 600 authorized_keys 

として authorized_key を作成し
権限を変更

ubuntu 18.04 LTS のサーバーに公開鍵認証でssh接続

を参考にホスト名でアクセスできるように設定をします

接続元のubuntu16.04 で

vim .ssh/config 

でファイルを作成し

Host gitlab
        HostName 192.168.1.139
        User snowpool
        Port 22
        IdentityFile /home/snowpool/.ssh/gitlab_snowpool

というように
Host には任意の名前のホスト名
HostName にはIPアドレス
User にはユーザ名
Port には接続ポート
IdentityFile には鍵ファイルのパスを指定

これで

ssh gitlab

とすればパスワードなしでログインできるようになります

次に

sudo apt-get install vim
 sudo vim /etc/ssh/sshd_config 

で設定ファイルを開き
56行目の

#PasswordAuthentication yes

PasswordAuthentication no

とすることで
鍵認証のみログインできるようにして
パスワードでのログインを禁止します

あとは設定を反映するために

systemctl restart ssh

パスワードログインの禁止については
OpenSSH : SSH 鍵認証

を参考にしました

次に GitLab の導入

今回は
Ubuntu 18.04 LTSにDockerを使ってGitLabとMattermostを導入してみた

を参考に導入します

まずはリポジトリアップデート

sudo apt-get update 

次にHTTPSでリポジトリを使うためのパッケージをインストール

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common 

しかし

E: dpkg は中断されました。問題を修正するには 'sudo dpkg --configure -a' を手動で実行する必要があります。

となってしまうため

sudo dpkg --configure -a

を実行

再度

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common 

を実行することでインストールは成功

次に Docker 公式GPGキーの追加

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

GPGキーの取得確認は

sudo apt-key fingerprint 0EBFCD88

次に安定版の Docker リポジトリ設定
Stable 版が安定版

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   artful \
   stable"

リポジトリを変更したので、再度

sudo apt-get update 

で更新

次にDocker のインストール

sudo apt-get install docker-ce

Docker のバージョンを調べるには

docker version

で調べることができます

次に GitLab の Docker イメージを pull

sudo docker pull gitlab/gitlab-ce

次に ifconfig を使うためツールをインストール

sudo apt install net-tools

これで IPアドレスを調べておく

次に gitlab 用ファイルを保存するディレクトリを作成

mkdir -p gitlab/config
mkdir -p gitlab/logs
mkdir -p gitlab/data

なお、一般ユーザで docker を使おうとすると

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.39/images/json: dial unix /var/run/docker.sock: connect: permission denied

というようなエラーメッセージがでる

対処としては
ユーザを docker グループへ所属させる
もしくは
sudo をつけて実行

次に
makefile を作成

sudo apt install make

で make をインストールし

vim makefile

でファイルを作成

中身は

start:
  sudo docker run --detach \
      --hostname 192.168.1.139 \
      --publish 443:443 --publish 80:80 --publish 2222:22 --publish 8001:8001  --publish 9090:9090 \
      --name gitlab \
      --restart always \
      --volume /home/snowpool/gitlab/config:/etc/gitlab \
      --volume /home/snowpool/gitlab/logs:/var/log/gitlab \
      --volume /home/snowpool/gitlab/data:/var/opt/gitlab \
      gitlab/gitlab-ce:latest

restart:
  sudo docker restart gitlab

stop:
  sudo docker stop gitlab

rm:
  sudo docker rm gitlab

として保存

ちなみに、コマンドの sudo の前は
スペースではなく tab

スペースで書いてしまうと

makefile:2: *** 複数のターゲットパターンです.  中止.

となってしまうので注意

makefile の書き方については
Makefileの書き方

を参考に

なお make についてわからなかったので
Makefileを使ってスマート?にDocker+Railsの開発をしようとした

を参考したところ
コマンドの省略に使えそうとのこと

また docker の起動や停止については
Dockerでコンテナ作成/起動/停止/自分用Image作成

を参考に

もしコンテナ起動時に

docker: Error response from daemon: Conflict. The container name "/gitlab" is already in use by container "cf98f43e7b160c26b663f65e4a5487e48d3a0ca27fd6ef29504736a59c93560e". You have to remove (or rename) that container to be able to reuse that name.

となる場合

Dockerのコンテナ名がコンフリクトした

にあるように一度コンテナを削除

今回なら

sudo docker rm gitlab

また、今回の場合
ホストマシンで 22 番ポートを使っているので
ssh で使用するポートを22にすると

docker: Error response from daemon: driver failed programming external connectivity on endpoint gitlab (45d121856a9d4eb420973d76ac265049026800565d1395fac7879656ed936f25): Error starting userland proxy: listen tcp 0.0.0.0:22: bind: address already in use.

となってしまう

現在使用しているポートは

sudo lsof -i -P | grep "LISTEN"

で調べることができる

次に
クライアントマシンの ubuntu 16 に
クリっプボードにコピーを簡単にするコマンド xsel をインストール

sudo apt install xsel

コマンドの引数が面倒なので

echo "alias pbcopy='xsel --clipboard --input'" >> ~/.bashrc
source ~/.bashrc 

で反映

これでできると思ったけど
最後に git push するときに エラーになるため
docker での Gitlab を断念し
通常のインストールで運用することに

【Ubuntu 18.04 LTS Server】GitLabでGitサーバを構築する

を参考に実践

sudo apt install postfix

でメールサーバーをインストール
形式は
ローカルのみ
を選択

なお、システムメール名は任意のものを入力

次に Gitlab リポジトリ登録

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

そして Gitlab インストール

sudo apt install gitlab-ce

次に設定ファイルの編集

sudo vim /etc/gitlab/gitlab.rb 

で13行目を

external_url 'http://192.168.1.139'

というようにIPを指定

49行目の

# gitlab_rails['time_zone'] = 'UTC'


[she]
gitlab_rails[‘time_zone’] = ‘Asia/Tokyo’
[/shell]
として保存

sudo gitlab-ctl reconfigure

で設定を反映

sudo gitlab-ctl status

でGitlab の状態を確認できる

なお、再起動をしたいときには

sudo gitlab-ctl restart

で Gitlab の再起動ができる

なお、この状態で仮想マシンを再起動すると Docker が起動してしまうため

make stop
sudo gitlab-ctl restart

として一度 Dockerコンテナを停止してから
Gitlab を再起動する必要あり

これで Gitlab が使えるようになったので
ブラウザで Gitlab サーバーのIPへアクセスすると
管理者ユーザの
新しいパスワードの設定になるので
パスワードを入力し
Change your Password をクリック

Register で登録ができるので
Full name
username
にはユーザ名

Email と Email Confirmation にはメルアド

Password にはパスワードを入力し
Register で登録

次に、SSHキーの設定をするので
Settings をクリック

SSH Keys をクリックし
鍵をコピペする

鍵のコピーには
xsel を使うと便利なので

sudo apt install xsel

でインストールし
xsel のオプション設定の面倒を省くためエイリアスを設定

echo "alias pbcopy='xsel --clipboard --input'" >> ~/.bashrc
source ~/.bashrc 

これで

cat ~/.ssh/gitlab_snowpool.pub | pbcopy 

でSSH key をコピーできるので
これを貼り付けて
Add key をクリックすれば登録完了

あとは新規リポジトリを作成してテストしたいので
Gitlabアイコンをクリックし
New Project をクリック

Project Name にリポジトリ名を入れ
Public にして
Crate project をクリック

ここまでできたら
あとはクライアントマシンで git を使えばいい

なお、リポジトリについては
SSH をクリックし、コピーアイコンをクリックすれば
リポジトリのコピーができるので
あとは

git clone git@192.168.1.139:sno/test.git
cd test
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

とすればgitlab でのリポジトリ管理ができるようになる

git push するときに
Git global setup をしていないと

to set your account's default identity. Omit --global to set the identity only in this repository.

というようにエラーになるので

git config --global user.name "First-name Family-name"

First-name Family-nameの部分は自分の名前

git config --global user.email "username@example.com"

username@example.com の部分は自分のメルアド
というように設定をすればOK

なお、git commit での nano ではなく vim にしたいのなら
Gitをインストールしたら真っ先にやっておくべき初期設定
を参考に

wordpress でメディアのアップロードができないときの対処

wordpress でメディアのアップロードができないときの対処

投稿で画像を挿入するため
ファイルをアップロードしようとしたら

Unable to create directory wp-content/uploads/2018/12. Is its parent directory writable by the server?

となってしまい
ファイルのアップロードができない状況に

wordpressの画像アップロードできないを
解決する方法としては
権限変更以外だと

【WordPress】画像がアップロードできない場合はプラグインを疑え!
にあるように
EWWW Image Optimizerプラグインの停止
もしくは
WordPressで画像ファイルがアップロードエラーする場合の2つの解決法

にあるように
キャッシュの削除

そして
WordPress : Permissionがあっているのに画像をアップロード出来ない件 heteml

にあるように
ファイルアップロードパスが合ってない

ということになるらしい

最初によくでてくるパーミッションの変更で
[WordPress]画像アップロードエラー「web-content/uploads/に移動できませんでした」+「ファイルサイズ0KB」の対処法

であるように

web-content/uploads
の権限を 755 などに変更してダメで

ファイルアップロードのサイズに関しても問題なし

Webサーバの空き容量に関しては
50GBあるため、こちらも該当せず

このため
EWWW Image Optimizer 関連から調べることに

メディアを調べてみると
Change the Media Library to List mode for additional image optimization information and actions
と表示されていたため

まずはプラグインの停止をしてみたけど
結果は変わらず

いろいろ試した結果
WordPressの理想的なパーミッション設定は?権限を見直してセキュリティ強化しよう
を参考に
wordpress のディレクトリに移動して

chmod -R 707 wp-content/uploads/

で権限を変更するとアップロードすることができるようになりました

ubuntu16.04 へ kindle for PC インストール

ubuntu16.04 へ kindle for PC インストール

ubuntuにKindle for PCをインストールする方法

を参考に実践

しかし

sudo apt-get install winehq-stable

を実行してもパッケージがみつからないため

winehq-stable
で検索し
Wine 3.0 が安定版になっていた

Ubuntu 18.04 / 16.04 に最新の wine をインストールする

を参考にインストール

sudo dpkg --add-architecture i386 

で2bit環境のライブラリを追加

解説については
Ubuntu 14.04 64bit で 32bit アプリを動作させる方法
を参考に

次に

wget -nc https://dl.winehq.org/wine-builds/Release.key 
sudo apt-key add Release.key 

でキーを追加

sudo apt-add-repository 'https://dl.winehq.org/wine-builds/ubuntu/'
 sudo apt-get update

でリポジトリの追加と更新

sudo apt install winehq-stable winetricks 

でインストール

バージョン確認は

wine --version

でOK

今回は安定版なので最新版ではないため
ver 3.0.4 です

次に wine デフォルト設定だと kindle がうまく動かないらしいので

winecfg 

を実行

ダイアログがでるので
インストールをクリック

Gecko パッケージも足りないため
インストールをクリック

windows のバージョンを
Windows8.1 にして適用をクリック

次にamazon.comから最新版の kindlr for pc をダウンロード
download kindle for pc latest version
で検索し

https://www.amazon.com/gp/help/customer/display.html/ref=aw?ie=UTF8&nodeId=201245960

Download and Install the Kindle App
をクリック

Kindle for PC をクリック

Download for PC & Mac をクリック

これで kindle for pc のダウンロード

しかし起動時にエラーとなってしまう

unbutn kindle for pc
で検索してみると
UbuntuでKindle for PCを使う

によると
WineとKindle for PCは最新版のほうが良いとは限らず、相性がある
らしい

いくつか試してみたけど
https://kindle-for-pc.jp.uptodown.com/windows
などからダウンロードした過去のバージョンの中で

kindle-for-pc-1-17-44183.exe

のみ起動可能だった

しかし、起動はできても文字化けしてしまう

このため

font-replace-takao.reg

でファイルを作成し

REGEDIT4

[HKEY_CURRENT_USER\Software\Wine\Fonts\Replacements]
"MS Gothic"="Takaoゴシック"
"MS Mincho"="Takao明朝"
"MS PGothic"="Takao Pゴシック"
"MS PMincho"="Takao P明朝"
"MS UI Gothic"="TakaoExゴシック"
"MS ゴシック"="Takaoゴシック"
"MS 明朝"="Takao明朝"
"MS Pゴシック"="Takao Pゴシック"
"MS P明朝"="Takao P明朝"

という内容で保存

次に文字コードの設定
nkf コマンドで変換や文字コード判別ができるので
入っていないのなら

sudo apt-get install nkf

でインストール

作成したファイルの文字コードは UTF-8 になっているので

【初心者でも知っておきたい】Linuxでの文字コードの確認と変更方法

を参考に

nkf -s --overwrite font-replace-takao.reg 


文字コードをShift_JISに変換

nkf -g font-replace-takao.reg

で文字コードが
Shift_JIS
になっているのを確認

次に

wine regedit

でレジストリを出して

レジストリ > レジストリのインポート


ファイルをインポートしたけど結果は変わらず

次に
Ubuntu 18.04にWineをインストールし、文字化け(アルファベットが豆腐)を解消する

を参考に実践

winetricks 


Winetricks を起動

Select the default wineprefix でOK

ダイアログがでるので Yes をクリック

次に
Install a font をクリックしOK

次に
cjkfonts にチェックをいれOK

これで
kindle-for-pc-1-17-44183.exe
を右クリックし
別のアプリで開く >
Wine Windows プログラムローダ

で起動すると
無事に文字化けが解消されて
Ubuntu でも kindle for PC が使えるようになりました

なお、日経Linux などを見るときには
kindle Fire 10 インチなどでみたほうが
画面の小さいPCよりも快適に見れます

KDP の IRS Form W-8更新について

KDP の IRS Form W-8更新について

3年前に IRS Form W-8を提出したけど
更新期限がきたので
Web から更新しました

また数年後に行うと思うので忘れない内に記述しておきます

https://kdp.amazon.co.jp/
へアクセスし

アカウントをクリック

次に税に関する情報 をクリック

あとは
「税に関する情報」で、「税に関する情報を表示/提出」をクリック

「インタビューを実行」をクリックして、インタビューを完了

この中でわかりにくいのが
途中で入力する英語での住所入力と
TIN(納税者番号)
以前はマイナンバーがなかったため
自分でこれを申請して取得しましたが
今回はマイナンバーがあるのでこちらを入力することになります

TINについては
Kindleで電子書籍を出版する方法―KDP(キンドル・ダイレクト・パブリッシング)登録方法・手順

を参考にしました

入力のときにはスペースを開けず
クレジットカードのように
マイナンバーを入力します

なお英語での住所の入力でわかりにくいのが
アパートの部屋番号
102号室なら

#102 アパート名
というように
号室などは#で記述するようです

住所の書き方に関しては
【保存版】住所を英語で書けますか? その書き方を徹底的に詳しく紹介!!


英語での住所の書き方がスラスラわかる7つのステップ

を参考にしました