次のコマンドで。
takatoh@wplj $ env LANGUAGE=C LC_MESSAGES=C xdg-user-dirs-gtk-update
これでOK。
takatoh@wplj $ ls Desktop Documents Downloads Music Pictures Public Templates Videos
takatoh's blog – Learning programming languages.
次のコマンドで。
takatoh@wplj $ env LANGUAGE=C LC_MESSAGES=C xdg-user-dirs-gtk-update
これでOK。
takatoh@wplj $ ls Desktop Documents Downloads Music Pictures Public Templates Videos
takatoh@wplj $ sudo apt install ruby
takatoh@wplj $ ruby -v ruby 2.3.1p112 (2016-04-26) [x86_64-linux-gnu]
おお、2.3だ。
takatoh@wplj $ sudo apt install python パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 python はすでに最新バージョン (2.7.11-1) です。 python は手動でインストールしたと設定されました。 アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 432 個。
あれ、入ってる?
takatoh@wplj $ python -V Python 2.7.11+
入ってた。
wplj にアクセス権フリーの共有ディレクトリを作る。
このへんのページが役に立った。
cf. Samba でファイルサーバー構築 – 自宅サーバー Debian/Ubuntu
cf. https://www.server-world.info/query?os=Ubuntu_16.04&p=samba
まずは Samba のインストール。
takatoh@wplj $ sudo apt install samba
これでインストールされるだけでなく、動き出すらしい。
takatoh@wplj $ ps ax | grep samba 3821 pts/18 S+ 0:00 grep --color=auto samba
あれ?動いてない?
共有ディレクトリを作成。
takatoh@wplj $ sudo mkdir /media/aysheaia/share takatoh@wplj $ sudo chown nobody:nogroup /media/aysheaia/share takatoh@wplj $ sudo chmod 777 /media/aysheaia/share
Samba の設定。…の前に設定ファイルのバックアップをとっておく。
takatoh@wplj $ cd /etc/samba takatoh@wplj $ ls gdbcommands smb.conf tls takatoh@wplj $ sudo cp smb.conf smb.conf.orig takatoh@wplj $ ls gdbcommands smb.conf smb.conf.orig tls
そして設定。
takatoh@wplj $ sudo vi smb.conf
設定ファイルは次のように変えた。
takatoh@wplj $ diff smb.conf.orig smb.conf 29c29,36 < workgroup = WORKGROUP --- > # workgroup = WORKGROUP > workgroup = PANICBLANKET > > dos charset = CP932 > unix charset = UTF-8 > display charset = UTF-8 > > map to guest = Bad User 259a267,274 > > [share] > path = /media/aysheaia/share > writable = yes > force create mode = 0666 > force directory mode = 0777 > guest ok = yes > guest only = yes
ポートの開放。
takatoh@wplj $ sudo ufw status 状態: 非アクティブ takatoh@wplj $ sudo ufw enable ファイアウォールはアクティブかつシステムの起動時に有効化されます。 takatoh@wplj $ sudo ufw status 状態: アクティブ takatoh@wplj $ sudo ufw default DENY デフォルトの incoming ポリシーは 'deny' に変更しました (適用したい内容に基づいて必ずルールを更新してください) takatoh@wplj $ sudo ufw allow samba ルールを追加しました ルールを追加しました (v6) takatoh@wplj $ sudo ufw status 状態: アクティブ To Action From -- ------ ---- Samba ALLOW Anywhere Samba (v6) ALLOW Anywhere (v6)
Samba を再起動。
takatoh@wplj $ sudo /etc/init.d/samba restart [ ok ] Restarting nmbd (via systemctl): nmbd.service. [ ok ] Restarting smbd (via systemctl): smbd.service. [ ok ] Restarting samba-ad-dc (via systemctl): samba-ad-dc.service.
これでOK。Windows マシンからも確認できた。
USB の外付けHDDを接続すると、ちゃんと認識された。ただ、繋ぎっぱなしの HDD として使うには /etc/fstab に登録しないといけないので、その設定をする。繋いだ HDD は2つ。ファイルサーバ用とバックアップ用だ。
sudo blkid
コマンドで HDD の UUID を調べる。
takatoh@wplj $ sudo blkid /dev/sda1: UUID="D17D-DA22" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="6fa2ce8f-fa84-4c97-8280-e58107f1f5f7" /dev/sda2: UUID="10ac8b6d-a943-4bc9-bd0e-7cbc3cb38125" TYPE="ext4" PARTUUID="3691980f-4128-465c-ab58-0ae98c7783a9" /dev/sda3: UUID="fe038a20-aa4e-48d9-b98c-f8932b715370" TYPE="swap" PARTUUID="8383fce1-4445-419d-a75d-1e002ac985ef" /dev/sdb1: PARTLABEL="Microsoft reserved partition" PARTUUID="f94bfbc2-2dd6-4f5a-bcd0-41fa20509112" /dev/sdb2: LABEL="OPABINIA" UUID="962EDE6A2EDE42C3" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="70fb4b85-f7aa-4b55-b359-8a954bc7a0fc" /dev/sdc1: PARTLABEL="Microsoft reserved partition" PARTUUID="5ab86c39-d82e-4a72-8cee-1c2553ebdbaa" /dev/sdc2: LABEL="AYSHEAIA" UUID="ECC40F30C40EFC98" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="c7f4b645-6c8f-474b-8cb6-54aa69d553f8"
LABEL が AYSHEAIA と OPABINIA なのが外付けHDD。ファイルシステムは NTFS のまま使う。この HDD の UUID を持って、次のように /etc/fstab ファイルを編集した。
# /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # # / was on /dev/sda2 during installation UUID=10ac8b6d-a943-4bc9-bd0e-7cbc3cb38125 / ext4 errors=remount-ro 0 1 # /boot/efi was on /dev/sda1 during installation UUID=D17D-DA22 /boot/efi vfat umask=0077 0 1 # swap was on /dev/sda3 during installation UUID=fe038a20-aa4e-48d9-b98c-f8932b715370 none swap sw 0 0 # USB HDD AYSHEAIA UUID=ECC40F30C40EFC98 /media/aysheaia ntfs default 0 0 # USB HDD OPABINIA<br>UUID=962EDE6A2EDE42C3 /media/opabinia ntfs default 0 0
マウントポイントになるディレクトリを作る。
takatoh@wplj $ sudo mkdir /media/aysheaia takatoh@wplj $ sudo mkdir /media/opabinia
そして再起動。無事認識されて、マウントされた。
takatoh@wplj $ df -h Filesystem Size Used Avail Use% Mounted on udev 1.9G 0 1.9G 0% /dev tmpfs 385M 6.2M 379M 2% /run /dev/sda2 454G 4.7G 427G 2% / tmpfs 1.9G 208K 1.9G 1% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sdb2 2.8T 264M 2.8T 1% /media/aysheaia /dev/sdc2 2.8T 264M 2.8T 1% /media/opabinia /dev/sda1 511M 3.6M 508M 1% /boot/efi tmpfs 385M 4.0K 385M 1% /run/user/108 tmpfs 385M 44K 385M 1% /run/user/1000
また PC 買ったのかといわれそうだけど、これは予定通り。去年買ったノートPC が予定外だったのだ。
新しい PC は Ubuntu をインストールして宅内ネットワークのファイルサーバ兼WEBサーバにする。ホスト名は wplj。
まずは Windows 10 のセットアップ。これは最低限の設定で。
それから、万が一 Ubuntu がうまくインストールできなかった時のために Windows10 のリカバリメディアを作成しておく。スタートメニューの「HP ヘルプとサポート」から「HP Recovery Manager」を起動。手順に従ってリカバリメディアを作成した(全部でDVD-R 3枚)。結構時間がかかる。
再起動中に F2 キーを押して BIOS 設定に移動、USB の CD-ROM ブートを内部 HD よりも優先に設定する。そして起動。すると Windows が起動してしまった。もう一度 BIOS 設定に移動して確認すると、ちゃんと USB CD-ROM が優先になっている。おかしい。仕方がないので、BIOS の BOOT メニューから USB CD-ROM ブートを選んだ。
今度はちゃんと Ubuntu の DVD から起動したので、Ubuntu のインストールをする。途中、「Ubuntuのインストール中にアップデートをダウンロードする」を選ぶ。
また、Windows Boot Manager が検出されるので「ディスクを削除してUbuntuをインストール」を選択。あとはほぼデフォルトで。コンピューターの名前は上に書いた通り wplj。ユーザーは takatoh を作った。
しばらくしてインストールが完了。再起動すると、無事 Ubuntu が起動した。
とりあえずはここまで。あとの設定とかはエントリを分けて書く。
sudo userdel
コマンドを使う。
takatoh@apostrophe $ sudo userdel -r sombrero [sudo] password for takatoh: userdel: sombrero のメールスプール (/var/mail/sombrero) がありません
-r
はホームディレクトリとメールスプールも削除するオプション。
以前作った Sinatra アプリ(フォトビューワー)をデーモンとして動かそうとしてハマった記録。
Sinatra アプリをデーモン化したことは前にもやったことがあるので、基本的にはその時のエントリを見ながらやったんだけど、一つだけ、ハマりどころがあった。それはアプリが Ruby 2.0 以降(だっけ?)にサポートしているキーワード引数を使って書いてあるのに対して、システムにインストールされているのは Ruby 1.9.3 だってこと。ユーザーは rvm でインストールした 2.3.0 を使っているのでテスト中は動くけど、いざ本番になってみるとシステムの 1.9.3 が使われるので動かない。
どうにかしてデーモンにも rvm でインストールした 2.3.0 を使わせたい。
探し方が悪いのか、ググっても情報が出てこない。結局解決策を見つけたのは、自分のエントリだった。
つまり、起動スクリプトで GEM_PATH と GEM_HOME に rvm のパスを設定して export すればいいようだ。書いた起動スクリプトがこれ:
#!/bin/sh PATH=/home/potov/.rvm/rubies/ruby-2.3.0/bin:/home/potov/.rvm/gems/ruby-2.3.0/bin:/sbin:/bin:/usr/bin GEM_PATH=/home/potov/.rvm/gems/ruby-2.3.0 GEM_HOME=/home/potov/.rvm/gems/ruby-2.3.0 export PATH export GEM_PATH export GEM_HOME POTOV_ROOT=/home/potov/potov case "$1" in start) cd ${POTOV_ROOT} unicorn -c unicorn.conf -D ;; stop) PID=`cat ${POTOV_ROOT}/unicorn.pid` kill -QUIT ${PID} ;; *) echo "Usage: potov {start|stop}" exit 1 ;; esac exit 0
当然 PATH も rvm の Ruby のパスを設定している。
ともあれ、これで無事起動するようになった。
今日一日かけて作業した。Ubuntu 16.04 LTS。ホスト名は muffinman。
宅内ネットワークの Webサーバ用。apostrophe(旧nightschool)で動かしていた Sinatra アプリ2つを移設。いくつかハマりどころがあったけど、なんとか終わった。
ホントはちゃんと作業記録を残しておくべきなんだろうけど、覚えていないので書けない。まあ、うまくいったからいいか。
直接編集してもいいけど hostname コマンドで変更できる。
takatoh@nightschool $ hostname nightschool takatoh@nightschool $ sudo hostname apostrophe [sudo] password for takatoh:
127.0.0.1 localhost 127.0.0.1 apostrophe # <- ここを変更 192.168.1.12 valarie # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters
takatoh@nightschool $ sudo /etc/init.d/networking restart takatoh@nightschool $ hostname apostrophe
これで完了。
/etc/hosts を書き換えてから出ないとネットワークを再起動したときにエラーが出る。
takatoh@nightschool $ sudo /etc/init.d/networking restart sudo: ホスト apostrophe の名前解決ができません
ちなみに、プロンプトのホスト名が変わってないけど、これは端末を起動し直すとちゃんと変更が反映される。
上記の通りで OK かと思ったら、完全じゃなかった。OS を再起動したらホスト名が戻ってしまった。
takatoh@nightschool $ hostname nightschool
hostnamectl コマンドで見ると:
takatoh@nightschool $ hostnamectl Static hostname: nightschool Icon name: computer-desktop Chassis: desktop Boot ID: 2026269b5ed74ccab65e1a806d7e231f Operating System: Ubuntu 14.04.4 LTS Kernel: Linux 3.13.0-85-generic Architecture: x86_64
hostnamectl コマンドで変更する。
takatoh@nightschool $ sudo hostnamectl set-hostname apostrophe takatoh@nightschool $ hostnamectl Static hostname: apostrophe Icon name: computer-desktop Chassis: desktop Boot ID: 2026269b5ed74ccab65e1a806d7e231f Operating System: Ubuntu 14.04.4 LTS Kernel: Linux 3.13.0-85-generic Architecture: x86_64
参考ページ:
cf. ホスト名を設定する
今まで Ubuntu マシンの nightschool は無線で接続していた。けれどうちの環境(無線LANルータは1階、マシンは2階にある)のせいか、接続が不安定で速度も遅かった。2階にイーサネットのジャックがあるので有線でつないでみたものの、どういうわけかリンクが確立しない(リンクランプが点灯しない、Ubuntu で Ethernet接続が有効にならない)という状況だった。
マシンを買って以来約2年近くもこの状態だったのだけど、ようやく解決するために重い腰を上げた次第。
このページが参考になった。
cf. UbuntuでNICを認識しない場合の対応 – RainbowDevilsLand
まずは現在の状況の確認から。ifconfig コマンドで NIC の状況を見てみる。
takatoh@nightschool $ ifconfig eth0 Link encap:イーサネット ハードウェアアドレス f8:bc:12:78:84:ab UP BROADCAST MULTICAST MTU:1500 メトリック:1 RXパケット:0 エラー:0 損失:0 オーバラン:0 フレーム:0 TXパケット:0 エラー:0 損失:0 オーバラン:0 キャリア:0 衝突(Collisions):0 TXキュー長:1000 RXバイト:0 (0.0 B) TXバイト:0 (0.0 B) lo Link encap:ローカルループバック inetアドレス:127.0.0.1 マスク:255.0.0.0 inet6アドレス: ::1/128 範囲:ホスト UP LOOPBACK RUNNING MTU:65536 メトリック:1 RXパケット:110255 エラー:0 損失:0 オーバラン:0 フレーム:0 TXパケット:110255 エラー:0 損失:0 オーバラン:0 キャリア:0 衝突(Collisions):0 TXキュー長:0 RXバイト:629344324 (629.3 MB) TXバイト:629344324 (629.3 MB) wlan0 Link encap:イーサネット ハードウェアアドレス 54:35:30:bc:ed:f9 inetアドレス:192.168.1.5 ブロードキャスト:192.168.1.255 マスク:255.255.255.0 inet6アドレス: fe80::5635:30ff:febc:edf9/64 範囲:リンク inet6アドレス: 2408:212:ac6:e200:5635:30ff:febc:edf9/64 範囲:グローバル inet6アドレス: 2408:212:ac6:e200:75ec:809a:c077:3ea5/64 範囲:グローバル UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1 RXパケット:46490 エラー:0 損失:0 オーバラン:0 フレーム:0 TXパケット:49384 エラー:0 損失:0 オーバラン:0 キャリア:0 衝突(Collisions):0 TXキュー長:1000 RXバイト:6255035 (6.2 MB) TXバイト:18310646 (18.3 MB)
イーサネットの NIC (eth0)自体は認識しているようだけど、アドレスが割り振られていない。
参考にしたページに書かれているのは、NIC 自体が認識されていない場合の対処法だけど、ダメ元で同じようにドライバをインストールしてみることにした。そこで、NIC のチップの種類を調べる。
takatoh@nightschool $ lspci | grep 'Ethernet\|Network' 02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0c) 03:00.0 Network controller: Qualcomm Atheros QCA9565 / AR9565 Wireless Network Adapter (rev 01)
Realtek の RTL8111/8168/8411 っていうチップのようだ。
Realtek のダウンロードセンターから、RTL8111 を検索してダウンロード。0004-r8168-8.041.01.tar.bz2 というファイルだ。
これを展開する。
takatoh@nightschool $ tar xjvf 0004-r8168-8.041.01.tar.bz2
中に含まれている README ファイルを読むと、autorun.sh を実行すればいいようだ。
takatoh@nightschool $ cd r8168-8.041.01 takatoh@nightschool $ sudo ./autorun.sh Check old driver and unload it. rmmod r8169 Build the module and install Can't read private key Backup r8169.ko rename r8169.ko to r8169.bak DEPMOD 3.13.0-79-generic load module r8168 Updating initramfs. Please wait. update-initramfs: Generating /boot/initrd.img-3.13.0-79-generic Completed.
Completed と出ている。うまくいったか?
ふたたび ifconfig コマンドで確認。
takatoh@nightschool $ ifconfig eth0 Link encap:イーサネット ハードウェアアドレス f8:bc:12:78:84:ab inetアドレス:192.168.1.20 ブロードキャスト:192.168.1.255 マスク:255.255.255.0 inet6アドレス: 2408:212:ac6:e200:fabc:12ff:fe78:84ab/64 範囲:グローバル inet6アドレス: fe80::fabc:12ff:fe78:84ab/64 範囲:リンク inet6アドレス: 2408:212:ac6:e200:486:4ce3:78a7:b216/64 範囲:グローバル UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1 RXパケット:13 エラー:0 損失:0 オーバラン:0 フレーム:0 TXパケット:25 エラー:0 損失:0 オーバラン:0 キャリア:0 衝突(Collisions):0 TXキュー長:1000 RXバイト:1993 (1.9 KB) TXバイト:4054 (4.0 KB) 割り込み:45 ベースアドレス:0x4000 lo Link encap:ローカルループバック inetアドレス:127.0.0.1 マスク:255.0.0.0 inet6アドレス: ::1/128 範囲:ホスト UP LOOPBACK RUNNING MTU:65536 メトリック:1 RXパケット:110581 エラー:0 損失:0 オーバラン:0 フレーム:0 TXパケット:110581 エラー:0 損失:0 オーバラン:0 キャリア:0 衝突(Collisions):0 TXキュー長:0 RXバイト:629379076 (629.3 MB) TXバイト:629379076 (629.3 MB) wlan0 Link encap:イーサネット ハードウェアアドレス 54:35:30:bc:ed:f9 inetアドレス:192.168.1.5 ブロードキャスト:192.168.1.255 マスク:255.255.255.0 inet6アドレス: fe80::5635:30ff:febc:edf9/64 範囲:リンク inet6アドレス: 2408:212:ac6:e200:5635:30ff:febc:edf9/64 範囲:グローバル inet6アドレス: 2408:212:ac6:e200:75ec:809a:c077:3ea5/64 範囲:グローバル UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1 RXパケット:58509 エラー:0 損失:0 オーバラン:0 フレーム:0 TXパケット:60687 エラー:0 損失:0 オーバラン:0 キャリア:0 衝突(Collisions):0 TXキュー長:1000 RXバイト:7434710 (7.4 MB) TXバイト:19433795 (19.4 MB)
おお、eth0 にもアドレスが割り振られている。画面右上には Ethernet接続のマークも出ている。どうやらうまくいったようだ。
イーサネットの不具合は、ドライバをインストールしたら治った。
接続状況はこうなった。