2018年10月27日土曜日

X410 / Xサーバ

自宅PCのOSはWindows10でして,そこに WSL(Windows Subsystem for Linux)を入れて Ubuntu 18.04 LTS を併用しています.
これまでも デスクトップLinux を使っていたのですが,色々な便で言えば Windows10 が勝手が良く,ただソフトウェア開発環境としては Linux 上の方が充足しているため,両者を併用するため最近は Windows10 + Ubuntu/WSL の構成で使っていました.

その際,若干面倒だったのが Ubuntu/WSL 側からウィンド表示させる場合でして,フリーの VcXsrv をインストールし,Ubuntu/WSLからWindows10側のXサーバに画面を飛ばして使っていました.

ただ細かな所で相性かな?という部分があり,なんとかしたいなと思っていたのですが,先日,X410という Xサーバが Microsoft ストア で提供されているというネット記事を見ました.どうも Microsoft の開発チーム推奨とのこと.ざっくり5000円ぐらいの価格なのですが,期間限定で90%オフとのこと.

昨日,ふと同記事のことを思い出し Microsoft ストアを見てみました.

おお・・・
\5,270割引の\580で,割引終了まで「残り4日」・・・
・・・買っときますか

とはいえ Microsoft ストアでの支払い手続きをしたこともなく,当然クレジットカード登録もしたことがありません.
ストアアカウントの支払い内容をチェックしてみましたが,クレジットカードや銀行口座,PayPal 等が主に使用可能とのこと.

個人的にはそれらの個人情報をネット上に登録するのはあまり気が乗りません・・・

どうしようかなと考えて,ふと Microsoft ストアのプリペイドカードでもないかなと調べてみたら,Amazon で販売されていることが分かりました.


いい感じです.
価格は「1000円」「2000円」「5000円」から選べ,「オンラインコード版」も選択できるため即時に使用可能です.

Amazon での選択画面
なおパッケージ画像上では「プリペイドカード」ですが, Amazon での商品名は「Windows ストアギフトカード」です.

Amazon は生活に不可欠なためクレジットカード番号を登録していますが,ここの登録だけで他のサイトに実質的な入金ができるため,いいですね.

これでいこうと思います.

これを購入すると「Amazon.co.jp ご注文の確認」というメールが登録しているメールアドレスに届きました.そこに「PCソフトウェアダウンロードライブラリ」と書かれているリンクがあり,そこに飛んで無事にコードを入手できました.

それを Microsoft ストア画面の「…」の所にある「お支払い方法」の所に登録し,無事に1000円分のチャージが出来ました.

では X410 の購入スタートです.

特に大きな問題はありません.

画面に表示されている [購入] をクリックして進むと,


等の確認画面が表示され,支払い方法(先のプリペイドカードでチャージしたプール金から)や,人によるとは思いますが住所等を入力し,無事に購入を済ませるとダウンロード画面となります.

無事にダウンロードが完了すると起動を促す画面がでるので起動します.

特に大きく何かは現れないのですが,タスクトレイに「X」と記されたアイコンが表示されます(アイコンの一番左のもの).

シンプルでいいですね.

マウス右クリックでメニューを見てみると

と,これもとてもシンプルです.
デスクトップ画面をウィンドウとして表示するか等の設定がありますが,アプリごとにウィンド表示したいのでそのままで進めます.

あとは Ubuntu/WSL の bash を起動し,様々なアプリを起動してみました.

ざっと Emacs, Xmaxima, TexWorks, Nautils, FireFox や FireFox 上での YouTube サイトです.

特には問題ない様ですし,ストレスもありません.
これで 500円程度であれば,全然後悔もないですね.

今後,作業も効率化されると思います.

皆さまも後4日なので,購入を検討されたらいかがでしょうか.

2018年9月30日日曜日

GitBucket の設定 / データベース (2)

Tomcat8 上の GitBucket における MySQL の設定記事の後半です.

MySQL での接続は,GitBucketの説明ページにも記載されて手順:

  1. mysql -uroot -p -hlocalhost
  2. create database gitbucket;
  3. grant all privileges on `gitbucket`.* to testuser@localhost identified by 'testpassword';
  4. flush privileges; 
  5. quit

で進めていくことになります.これで問題ないとは思いますが,自分自身での確認も含めて,自分がやった方法を順を追って説明します.

まず最初は MySQL でのデータベース管理システムへの接続です.これは上記の手順1の通り,以下となります:

server:~$ sudo mysql -u root -p -h localhost 
Enter password:
Welcome to the MySQL monitor.  
Commands end with ; or \g.Your MySQL connection id is 6Server version: 5.7.23-0ubuntu0.18.04.1 (Ubuntu)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. 
Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>


コマンド mysql への引数の意味は
  • -u : ユーザ指定 (rootで)
  • -p : パスワード要求
  • -u : ホスト名の指定
です.
その後,MySQL のコマンドプロンプト mysql> からデータベース操作を行います.

その後の手順を進める前に,まずはデフォルトの MySQL の動作モードがどうなっているかを確認しておく方が良いのではと思います.それは以下のコマンドを mysql> のプロンプトで発行することで確認できます:

  • mysql> SELECT @@sql_mode;

上記コマンドを入力すると表形式で情報が表示されますが,そのコンテンツとしては以下が表示されるのではないかと思います:
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 
詳細についてはネット検索や MySQL のリファレンスマニュアル で確認できると思いますが,一つのポイントは以下かと思います:
NO_AUTO_CREATE_USER認証情報が指定される場合を除き、ほかの方法で実行される場合は、GRANT ステートメントで新規ユーザーを自動的に作成しません。ステートメントは IDENTIFIED BY を使用した空以外のパスワードを指定するか、IDENTIFIED WITH を使用した認証プラグインを指定する必要があります。
その後のSQL文における GRANT ステートメント発行において IDENTIFIED BY でパスワードを指定するか,陽にユーザ作成を行ってから GRANT を発行する必要があるとの認識です.MySQL のリファレンスマニュアルでは
「通常、データベース管理者は最初に CREATE USER を使用してアカウントを作成し、次に GRANT を使用してその権限や特性を定義します」(13.7.1.4 GRANT 構文
と記載してあり,通常の順をおったやり方ではまずは CREATE USER でのアカウント作成になるかとは思います.ただし「通常」と記載されている通り,自身の理解があるのであれば簡略した手順で進めていくことも可かと思います.

それをふまえて以下を進めます.
次はデータベースの生成です(手順2).これは GitBucket のページの通りです:
mysql> create database gitbucket;
Query OK, 1 row affected (0.00 sec)
無事に成功です.

その後の手順3:
grant all privileges on `gitbucket`.* to testuser@localhost identified by 'testpassword';
ですが,これは
testpassword というパスワードにより認識されたローカルホストのユーザ名 testuser に,MySQL の gitbucket データベース下のアクセスに関するすべての権限を与える
という意味になりますかね.特に「all privileges」は
ALL [PRIVILEGES] は、GRANT OPTION および PROXY 権限を除き、権限が付与されるレベルで使用可能なすべての権限を表します
となっています.
ここではユーザ名とパスワードを適切に指定して発行します.シングルコーテーション等少しわかりずらい所がありますが,自分は以下と入力し無事にOKが出ました
mysql> grant all privileges on gitbucket.* to 'gitbucket'@'localhost' identified by 'gitbucket'; 
Query OK, 0 rows affected, 1 warning (0.01 sec)
その後は手順4の
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
です.FLUSH ステートメントは,さまざまな内部キャッシュをクリアまたはリロードしたり、テーブルをフラッシュしたりするものですが,上記の「privileges」指定は以下の意味となります:
mysql データベース内の付与テーブルから権限をリロードします。
GRANT、CREATE USER、CREATE SERVER、および INSTALL PLUGIN ステートメントの結果として、サーバーは情報をメモリーにキャッシュします。このメモリーは、対応する REVOKE、DROP USER、DROP SERVER、および UNINSTALL PLUGIN ステートメントによって解放されないため、キャッシュを発生させるステートメントの多数のインスタンスを実行するサーバーでは、メモリー使用量が増加します。このキャッシュされたメモリーは FLUSH PRIVILEGES で解放できます。
その後は最後の quit です:
mysql> quit
Bye

これで無事にデータベースが作成できました.

後は GitBucket 側での設定です.それは次に記事にて.



GitBucket の設定 / データベース (1)

GitBucket を立ち上げ後,System Administration にて各種設定をしていくのですが,その際,System Settings にて以下の表示が目につくと思います:

ピンク色で囲まれた記載:
Your GitBucket is running on embedded H2 database. Recommend to configure to use external database if you would like to use GitBucket for important purpose.
がポイントです.

 GitBucketのデフォルトでは,その各種データを Java SQL Database である
H2 Database Engine
に保存するようになっています.Wikipedia のページ で紹介されている通り,オープンソースで低フットプリントな Java プラットフォーム用データベースの様で,開発元のwebページにある History and Roadmap を拝見するに 2004 年から開発されているデータベースの様です.
 使ってみた感覚として,それなりの信頼性はありそうな気はしますが,上記の GitBucket 上の記載を見るに,重要なデータを管理する場合には,より広く使われているデータベース(MySQLなりPostgreSQLなり)を使用することが薦められています.
作者側で確認済のことがあるのやもしれませんが,一般論としても,その使用者数が多いことからくる信頼性の高さは H2 よりも MySQL/PostgreSQL の方は良いかとは思います.
 記載上にある青字の "configure to use external database" のリンクに飛ぶと,MySQL や PostgreSQL を用いた設定方法が記載されています.
External database configuration
上記ページの記述を元に設定すればデータベースは使える様ですが,さて,どちらを使うべきか,です.
 それについては,僕自身は判断根拠を持ってはいませんが,以下のページを参考にさせて頂きました:
PostgreSQLとMySQL、使うならどっち? データベース専門家が8つの視点で徹底比較!
このページの結論によると
  • PostgreSQLは「多機能であること」が最大の利点なので、その特徴が生きるようなシステムには向いていると思います。たとえば、Oracle Databaseからの移行やSIer系の企業で使われるケースが多いという印象を個人的には持っています。あとは、分析系のシステムでもよく使われます。ただこれも前述のようにMySQLの分析機能が徐々に充実してきているため、将来的に差は少なくなってくるでしょう。
  • (MySQLは) 基本的には、シンプルなWebサービスに向いていると思います。一定数の結果セットを取ってきて、そのデータを表示するといった感じの。たとえばTwitterのように、タイムラインの先頭部分を表示して、下にスクロールすると次のデータを読みこむようなサービスは、MySQLには特にマッチしていると思います。
の様です.最後は「とはいえ、バージョンが上がるごとにPostgreSQLもMySQLも高性能になってきているので、結局は使いたい方を使えばいいんじゃないでしょうか。」と結ばれていますが,上記内容を見るに「MySQL」でいこうかなと思います.GitBucketのページでも MySQL の方が最初に記載されていますし.

MySQL での設定については,少し確認したこととかもあるので後半の記事で紹介しようと思います.

Ubuntu 18.04 Bionic Beaver Linux 上への gitbucket のインストール

前回の記事(Ubuntu 18.04 Bionic Beaver Linux 上への Tomcat8 サーバのインストール)に書きました通り,ソフトウェアリポジトリとして gitbucket を使ってまして,その準備として Tomcat を前回はインストールしました.

そして本丸である gitbucket のインストールです.

Tomcat 上に gitbucket をインストールする際には,以下の Wiki 記事が参考になります:
Deployment to JEE and Servlet containers
そこには Tomcat 8 向けのインストール方法が箇条書きされてまして,まさにその通りに設定をしていく形になります:
Tomcat 8
  1. install java8
  2. install tomcat8
  3. mkdir /var/gitbucket
  4. chown tomcat8:tomcat8 /var/gitbucket
  5. echo "GITBUCKET_HOME=/var/gitbucket" >> /etc/default/tomcat8
  6. deploy gitbucket.war into /var/lib/tomcat8/webapps
  7. service tomcat8 restart
自分が実施した時は手順5のリダイレクトがエラーとなったのですが,内容が明確なため特にエラー内容は確認せずに直接ファイルを修正しました :-)

これによりすぐに gitbucket にアクセス可能となります.なお Tomcat8 のURLが
http://<tomcat8のURL.例えば 192.168.10.1:8080等>
の場合,gitbucket は
http://<tomcat8のURL.例えば 192.168.10.1:8080等>/gitbucket
からアクセス可能です :


アクセス後,画面右上に表示されている [Sign In] からログイン可能です.
なお初期アカウントは root (パスワードもroot)となります.

root でログイン後,ユーザアカウント設定等を進めていくことになりますが,まずはリポジトリ上のデータ格納場所をどうするかを考える方が良いと思います.それらの設定は右上の System Administration メニューから実施することになります:

この先はデータベースの設定等,gitbucket の各種設定に関する話になりますので,別の記事にしようと思います.

こんな便利なソフトウェアを公開していただいている作者の方には感謝です.

2018年9月5日水曜日

Ubuntu 18.04 Bionic Beaver Linux 上への Tomcat8 サーバのインストール

うちのサーバでは各種ソフトウェアのリポジトリ管理に gitbucket を使用しています.Scala で実装されたオープンソースの Git サーバです.

なお作者の方は日本人でして,僕個人は面識はありませんが,最近トレジャーデータ社に転職されたみたいですね(作者の方のブログはこちら).

gitbucket自体は単独でもサーバ動作可能なのですが,Java Servlet として実装されており,前のサーバ運用時から Tomcat 上で動作させています.

今回も Tomcat 上でのサーバ動作としたく,まずは Tomcat からのインストールです.



サービス系のソフトウェアをインストールする手順として,これまでは関連する対象ソフトウェア群を個別に apt を使って install した後,設定ファイル等を細かに修正・調整し,サービス起動を自身で行った後,サービスに対してクライアントからの接続操作を行い,その挙動を諸々と確認するということを行っていたため,なかなか手間のかかる作業でした.

最近の Ubuntu では Tasksel というインストールと設定をまとめて実施してくれるツールが使用可能であるため,サービスのインストールも大変楽になりました.

Tasksel の詳細についてはここから確認できます.

また Tasksel を用いた ubuntu18.04 上での各種サービスのインストール詳細についても
LINUXCONFIG.org / YOUR SYSADMIN GUIDE TO GNU/LINUX 
というサイトから確認できます.

今回の tomcat8 のインストールも同サイトの
Install Tomcat 8 server on Ubuntu 18.04 Bionic Beaver Linux
という記事を参考にしました.

便利になりました :-)

具体的な手順は書いてある通りなので省略させて頂く形でお願いします.

2018年8月29日水曜日

Ubuntu 18.04 Bionic Beaver Linux の Intel Microcode 脆弱性対応

入れて間もない Ubuntu 18.04 LTS に Intel CPU のマイクロコード脆弱性に対するパッチが提供されました:
USN-3756-1: Intel Microcode vulnerabilities
 https://usn.ubuntu.com/3756-1/

L1TF(L1 Terminal Fault)⁠または Foreshadow と呼ばれているCPUの脆弱性に対するパッチの様です.

脆弱性の具体的な内容は以下の記事等で説明されています:
インテルのプロセッサに新たな脆弱性「Foreshadow」--仮想化環境に対する大きな脅威

早々に upgrade しました
intel-microcode (3.20180807a.0ubuntu0.18.04.1) で (3.20180425.1~ubuntu0.18.04.2 に) 上書き展開しています ...
intel-microcode (3.20180807a.0ubuntu0.18.04.1) を設定しています ...
update-initramfs: deferring update (trigger activated)
intel-microcode: microcode will be updated at next boot

2018年8月28日火曜日

Ubuntu 18.04 Bionic Beaver Linux / Desktop & Server

これまでも自宅で Ubuntu Server を立ち上げ運用してきたのですが,少し前にハードウェアの調子が悪くなり(Intel ATOMベース),その原因究明に時間がかかりそうなため,新たにサーバ機を起こすことにしました.

自宅内の各PCからアクセス可能なサーバであると共に,Linuxマシンとしてデスクトップとしても使用したいため,Desktop & Server として構築することにしました.

ディストリビューションとして Ubuntu にするか CentOS にするかを悩んだのですが,近年は Server としても Ubuntu で運用されることも増えてきたみたいなので,これまでと同様 Ubuntu で立ち上げることにしました.

Ubuntu は Desktop と Server とでインストーラが異なり,当初は Server インストーラにてインストール作業を進めていたのですが,インストーラが途中でハングアップすることもあり,その原因究明を進めるにももう少しインストーラの機能が充実した方が個人的にはうれしいので,Desktop ベースでインストール作業を進め,その後,Serverとしての各種作業を進めることにしました.

大きな方向性や初挑戦の内容としては,

  • Ubuntu 18.04 Bionic Beaver LTS (Long Term Support) による5年間更新
  • LVMを用いたストレージ管理の柔軟性
  • 各種スタック系サーバ機能の簡単立ち上げとメンテナンス

で考えています.

ある程度,インストール作業は進んでいるのですが,メモとしてもその記録を残していこうと思います.




Logoはここから入手しました:
https://design.ubuntu.com/downloads/

2018年6月27日水曜日

まずは・・・

投稿のテストです.

プライベートなソフトウェア設定や製作,調べものなどについてメモ代わりに残していく予定です.

GNU Emacs for Windows における最近の IMEパッチ問題

自分は GNU Emacs 使いなのですが、Windows版の Emacs を使用する場合、IMEパッチの問題がありました。 ざっくり言うと、FSFの正規のリリースバイナリだと日本語変換のIMEに切り替えた時、インラインで候補文字が表示されないという問題です。そのために有志の方々...