「CentOS」タグアーカイブ

samba設定方法

久しぶりの投稿です。
少し解り難い設定項目があったりしていたので、自分なりのメモ程度になろうかと思いますが、sambaの設定について説明します。

環境

もう少しで使われなくなるであろうCentOS 8を対象としていますが、後継のOSでも基本的に同じだと思っています。

CentOS 8.3.2011

メモリとかストレージのサイズとかあまり気にしていません。

インストール

sambaのインストールは至って簡単です。

CentOS 6やCentOS 7の初期ではsamba-swatを使えましたが、現在は廃止されていて使うことが出来ません。
GUIでの設定方法は別の方法があるらしいのですが、あまり推奨しない方が良さそうなので、CUIで全て設定します。

この後の流れ

取り敢えず、インターネットなどに公開されておらず、クローズドな環境下で実装検証を行います。
インストールや設定の最中には、セキュリティ機能が邪魔をして何が原因か解らなくなることがありますよね。
今回は、そんな面倒なことを無視して、取り敢えずインストールして機能の確認が出来た後に、セキュリティ機能を復活させてセキュアな環境に戻してあげることとします。

今後の流れを以下に記します。
1)セキュリティ関連機能の停止
2)sambaの設定
3)動作確認
4)セキュリティ機能の復旧
この流れで作業を進めます。

1)セキュリティ関連機能の停止

sambaで実現することは、サーバ内部の一部ストレージを共有フォルダーとして使えるようにすることです。
つまりネットワーク関係のアクセスを変更しますので、firewallが影響します。
また、ファイルの書き込み時には、SELinuxも影響する可能性があります。
それでは、これらの機能を一時的に停止します。

まず、firewalldを停止させます。

これでネットワークのセキュリティが解除されます。
強引ですが、設定だけだとこれが一番楽なんですよね(^^ゞ

次に、SELinuxも一時的に停止します。

これで準備はOKです。
これらの設定は、OSを再起動すると復活します。
また、この設定をすることで、セキュリティが低下していますので、必ずセキュアなネットワーク空間で作業を行うことをお勧めします。

2)sambaの設定

sambaの設定は、以下の流れになります。

  • /etc/samba/smb.confの編集
  • デーモンの登録(サービスの登録)

ここで、今回は非常に簡単な設定を行います。
ネットワーク上の端末から誰でもID/パスワードなしでアクセス可能な共有NASの様な状態です。

それでは見て行きましょう。

最初に設定ファイルをバックアップしています。
特に必要なければ除外してください。
次にviで開きます。
smb.confの先頭あたりにある[global]セクションを最初に編集します。
下記にサンプルを記します。

今回追加した項目は、以下の項目です。

unix charset = UTF-8
 unix(Linux含む)で使用するエンコードを指定しています。
 デフォルトで設定されているので、特に設定する必要は無い様です。
 設定内容は以下のコマンドで確認することが可能です。
 実際に指定していないデフォルト設定の内容も全て表示されるので、多くの内容が記されています。
testparm -v
testparmコマンドは、編集内容のチェックを行ってくれる機能でもあります。

security = user
map to guest = Bad User

security = user と map to guest = Bad Userの組み合わせで、ログイン認証が不要になります。

log level = 2
log file = /var/log/samba/%m.log
max log size = 1024

 ログ出力の設定になります。

次に、[Share]セクションを追加します。

path
 共有フォルダーとして使用する領域を指定しています。
 対象はシンボリックリンクでも大丈夫でした。
 対象ディレクトリを/Share/Disk1としていますが、後でも先でも良いので作成します。
 パミッションは777にしておく必要があります。

writable
 書き込み許可

その他は適当に。。。

こんな感じで設定したら、デーモンを立ち上げる前に、記述内容のチェックをします。

この後、Enterを入力すると設定内容が表示されます。
この上記に記した内容が表示されていればOKですが、間違っているとその内容が表示されます。

3)動作確認

ここまででsambaの設定は完了しています。
デーモンを起動します。

OS起動時に自動起動設定する場合は以下のコマンドを入力します。

同一ネットワークに接続されているWindows PCなどからアクセスします。

Windowsの場合は、Exploreを開いて、アドレス入力欄に以下を入力します。

\\IPアドレス <==最初の\\は¥を2つです。

無事に接続出来たら、ファイルを追加したり削除して動作を確認してください。

4)セキュリティ機能の復旧

ファイアウォールを復旧します。

次に、ポートを開放します。

ファイアウォールを再読み込みして、設定を反映します。

この後、SELinuxの設定を行うのですが、一旦ここまでとします。
SELinuxの設定が面倒な場合には、Disableに設定しましょう。
設定方法は一旦割愛します。

以下で対象ディレクトリ以下に対し、SELinuxが有効でもSambaでアクセス出来る設定を行います。

と書いたのですが、ダメでした。
auditログから対処します。

※赤斜体文字がコマンドになります(#はコマンドプロンプト)

詳細は端折りますが、setseboolで上記2つの設定を行えば動くということですね(^^ゞ

これで動作確認を行って、きちんと見えました。書き込めました。

CentOS 8でログイン画面がスクリーンロックされるのを回避する。

通常、CentOS 8のログイン画面は、5分経過するとタイムアウトして画面が黒くなります。
これを回避する方法は、CentOS 7について記載したことがあるのですが、CentOS 8では同じ方法が出来なくなっていました。
これから記載する方法は、多分CentOS 7でも実現できる方法だと思いますが、CentOS 8で行う方法について記載したいと思います。

まず、必要になるdconf-editorパッケージをインストールします。

# dnf install dconf-editor

続いて、dconf-editorを起動します。

# dconf-editor

まあ、そのままですね。ただ、この方法は、デスクトップ環境で行う必要があります。

dconf-editorの初期画面

フォルダー構成の様になっていますので、以下の画面に示すようにフォルダーを移動します。
/org/gnome/desktop/session/idle-delay

dconf-editor画面

User default valueをオフにして、Custom valueを0に設定します。

これで、ログイン画面がスクリーンアウトすることがなくなるはずです。

CentOS 8 リリース待ち→リリースされた2019-09-24(^^)

2019年5月7日にRHELがリリースされてからもうすぐ100日が経過しようとしている。

<2019-09-25追記>
現地時間9/24、CentOS 8がリリースされました!
これで使えるようになりますが…問題は、VirtualBoxでGUIを含む状態でインストールする場合には、問題があるようです。
以前(CentOS 7)から気にはなっていたのですが、基地の問題として残っているようです。
仮想マシンとして考えている方で条件が合致される場合は、他の仮想か技術を考えた方が良いかも知れませんね。

意味が違ったようですm(__)m
「Server With a GUI」/「サーバ(GUI)」を選択してインストールするとGUIが立ち上がらない障害がある様です。
詳しくは以下のサイトをご参照下さい。
https://wiki.centos.org/ja/Manuals/ReleaseNotes/CentOS8.1905#head-9ed7a1765d703716a543781d18c13e50868f0516

と言いつつ、読んでみてもよく解らなかったので調べてみることにしたら、こちらの記事が解り易かった。
https://qiita.com/edward999th/items/d199125dbb8286d91152

「ベース環境」の選択で「Server with a GUI」もしくは「サーバー(GUI)」を選択してインストールすると既知の問題に遭遇するらしい。
インストーラのバグか?という感じですが、原因までは調べていません。
「ワークステーション」を選択してインストールする分には問題が無いようなので、GUIを使いたい場合には別の選択肢を関g萎えた方が良さそうですね。

<2019-09-23追記>
なんか、明日(2019-09-24)にリリースされるそうです。
9月に入ってからのダタバタ劇はなんだったのか?踊らされていたのか?
とにかく、現地時間の明日にはリリースされるとのこと、期待して待ちましょう。

※2019-08-26 時点でまだリリースされていません。
※2019-09-15時点でまだリリースされていません。

※2019-09-23時点でまだリリースされていません。

<2019-09-15追記>2019年8月にリリースされたRHELに対応するため、CentOS 7.1909の更新準備が先行されているのですが、wikiを見てみると約1ヶ月くらい掛かるみたいです。10月以降にならないと開発は再開される見込みは無さそうですね。年内にリリースされるのかなぁ?

RHELのクローンとしては、CentOS/Scientific Linux/Oracle Linuxなどが知られているが、以前にCentOSよりリリースが早くて話題となったScientific Linuxは8以降のリリースを行わないとの表明が行われていますね。

単純な比較は難しいところですが、CentOSとOracle Linuxはクローンと言われているけど、Oracle Linuxは少し違いますよね。

Oracle Linux 8は7/18にリリースされました。
CentOSはまだ少し掛かりそうです。

進捗状況は以下のURLで公開されています。

https://wiki.centos.org/About/Building_8

もうカウントダウンですねw

8/15にボストン大学でDevConfが開催されるので、その頃にはRC版が出てくれそうな感じかな?
残念ながら発表はありませんでしたね(^^ゞ

9/10に動きがありました。
7.7がリリースされるそうです。そのため、8の開発が停止してしまいました。
もうすぐ!と思ったら、まだ先になりそうです。
首を長くして待ってます。

正式リリースが待ち遠しいですが、更にクラウド(VPSなど)で使えるようになるには、まだまだ時間が掛かりそうな雰囲気です。

リリースされたら、インストール方法などをまとめたいと思っています。

8/15時点では、Release Workを残すのみ!
最終段階か?と思いきや・・・

こんな感じで、まだ更新中だったりしています(^^ゞ
https://koji.mbox.centos.org/koji/index

UTC 2019-08-15 15:50頃

でも、ここまで来ると本当に「あと少し!」って感じですね。

早ければ明日にもリリースか?とか期待してしまいますが、土日は進捗が止まっているので、来週8/21辺りが最短リリースじゃないかな?と、期待してます(#^.^#)

さてさて、まだまだリリースされる感じがしない。
8/20から全く更新する気配すら感じられなくなりました。
オープンソースカンファレンスの影響だろうか?
ここまで来たら、来月中にはリリースされるでしょう。
CentOSのサイトでは、「いつリリースされるの?」というコメントが出ていたり、首を長くして待っている人がいらっしゃいますね。
もう、ほとんどの作業は済んでいるはずなので、最後の詰めがしっかりされて発表して頂ければと思います。
しばらく、期待して待ちましょう。


2019-09-10 According to this thread, work was stopped on CentOS 8 after upstream released 7.7. Since so many more users have CentOS 7.x in production, and no one has 8 yet, priority has been given to the 7.7 update… and once it is done, work will continue on 8.

https://wiki.centos.org/About/Building_8

9/10時点で7.7のリリース作業のため、8の作業が停止してしまいました。
ちょっと厳しいなぁ~
今月中のリリースはあるのか?

Apache(Webサーバ)のチューニングとベンチマーク

ここでは、Apache HTTP Serverのチューニングとベンチマークに関してまとめます。

Apacheのベンチマーク

Apacheの性能はサーバの性能にも左右されますが、Apacheの設定内容によっても変わってきます。
最近のサーバはそこそこ速くなっているので、デフォルト設定のままでもそこそこ速く動いてくれるのですが、それでもアクセス集中対策を考慮するにはサーバのApacheのチューニングも必要になります。

さて、チューニングの方法は説明する前に、性能測定の方法について説明します。

Apacheの性能測定には、ab(Apache Bench)コマンドを使用します。

色々なサイトでも紹介されていますが、基本的なコマンド操作は以下の様になります。

-n 数値  : リクエストの総数
-c 数値  : 同時接続数

指定したURLに対し「リクエストの総数」分のリクエストを行います。並列して接続するため、「同時接続数」を指定することが出来ます。

試しにabコマンドを叩いてみます。(URLは適当です。)
※絶対に他人のサイトを指定しないでください。DoS攻撃とみなされる可能性があります。負荷試験の一種なので、対象のサーバに高負荷を与えることになります。

ここで注目したいのは、以下の2点です。
Failed requests: 0
Requests per second: 134.39 [#/sec] (mean)

「Failed requests」でリクエストがフェールになった回数をカウントしています。Failが発生しない様に調整する必要があります。

では、調整の仕方を見ていきましょう。

Apacheのチューニング

Apache 2.2系と2.4系ではチューニングの設定が少し異なります。パラメタの名称が一部変更になっているためです。
以下にそれぞれのパラメタ設定例を示します。
ただし、この設定内容は環境により異なりますので、ご自身のサーバ環境によって値を調整してみてください。

Apache2.2系のチューニングパラメタ

Apache 2.2系のチューニング方法を以下に紹介します。今更感はあるのですが、最も効果的な結果が得られたのがこの環境だったので敢えて事例紹介します。

対象ファイル:/etc/httpd/conf.d/httpd.conf

viなどで開いて編集してください。

こちらがデフォルト状態の設定状態です。

こちらが設定変更後の値です。

StartServers1起動時に生成される子サーバの数
MinSpareServers1アイドル状態で待機している
子サーバの最小数
MaxSpareServers5アイドル状態で待機している
子サーバの最大数
ServerLimit10MaxClientsに指定できる上限値
MaxClients10同時接続可能なクライアントの数
MaxRequestsPerChild4000子サーバが処理できる
リクエストの総数

デフォルトの状態では、StartServersが「1」になっていたので、最初の接続に掛かる時間が遅くなる傾向にありそうです。
また、MaxClientsが「10」しかないため同時に処理できるリクエストの数が少なく、こちらも処理が遅くなる傾向にあったようです。
変更後の値に設定し、以下のコマンドでWebサーバを再起動します。

Webサーバの再起動が完了したら、コマンドを実行して動作を確認してみましょう。

主要な内容については以下の通りです。

Failed requests: 0
Requests per second: 601.08 [#/sec]

「Requests per second」の値が134.39→601.08に変化しており、1秒間に処理で来ているリクエストの数が大幅にアップ(約4.5倍)しました。

と、ここで問題です。
MaxClientsを適当にしていしましたが、子サーバ(プロセス)が使用するメモリを考慮して計算しないと、実装メモリよりも多くの子サーバが起動してしまうことになってしまいます。
そうなると、スワップ領域まで達し、最終的にもメモリ不足に陥ることになります。
まず、httpdプロセスがどれ位のメモリを使用しているか?そして、PHPを使用しているならば、PHPの利用するメモリも考慮する必要があります。
実際にサーバ上で動作する際に必要となるメモリ量も気に掛かります。

面倒ですよね。
色々な方が作られている様ですが、MaxClientsを自動計算してくれる仕組みがあります。
その方法について、次に説明を行います。

MaxClientsの自動計算

MaxClientsを自動計算する方法について記載します。
Apache Web Service(Webサーバ)は、並列処理を実現するために複数子サーバを起動して、同時に複数のクライアントから要求されるリクエストに対応します。
その最大値をMaxClientsで指定します。

理論的には、httpd(子サーバ)が利用するメモリとPHPが利用するメモリで1つのクライアントから要求される処理を行うとして、システムのメモリを割ることで値が得られる感じです。
この時、システムでそれ以外に使用するメモリも考慮する必要があり、意外と面倒な計算と情報収集を行うこととなります。

それを自動化してくれる仕組みが以下のサイトにあるスクリプトになります。

https://github.com/richardforth/apache2buddy

apache2buddyを利用してMaxClientsを計算させるには、以下のコマンドを実行し、表示される情報を利用します。

コマンドは以下に記していますが、上記のURLで示されたサイトに記載がありますので(英文ですが)、そちらを参考にされることをお勧めします。(本記事が古くなると使えなくなりますが、上記サイトはメンテナンスされていますので)

重要な箇所は以下の一文です。

Your recommended MaxClients setting (based on available memory) is between 33 and 37. <——- Acceptable Range (10% of MAX)

httpdを再起動した直後などは正確な数値が得られない場合がありますので、本来は24時間程度運用した状態で数値を計算することが望ましいです。

上記の例では、MaxClientsの値として33~37が望ましい値として提示されています。

正直、実験を行ったサーバでは、長時間のヒートランを行っていなかったのでこの値が示されましたが、本来であればもっと少ない値が得られるのではないかと思います。

これを元に、先程示したhttpd.confに記載されている以下の値を調整します。

StartServers
MinSpareServers
MaxSpareServers
ServerLimit
MaxClients
MaxRequestsPerChild

最後に、Webサーバの再起動を行えば設定が反映され安定した動作になると思います。こまめにチェックするというよりも、ある程度時間を空けてチェックすると良いと思います。

apache2buddy以外にも自動計算や手動計算の手法が幾つか紹介されています。
自分に合った方法を見つけることが重要です。
今回の手法は、Linux上での手法となります。Windows上での計算は難しいかな?

concrete5 インストール

背景

concrete5をインストールしたのは覚えていたのですが、インストール方法が解らなくなったので、改めてインストールし直すという恥ずかしぃ〜思いをしながら、まとめ直すとにしました。

対象環境

ここではCentOS 7上に環境を構築します。
多少のパッケージインストール方法は省かせていただきますが、一般的な作業だけ省いているので、概ね問題ないでしょう(^^)

対象OS:CentOS 7.5.1804 (多分、7.xなら同じかと思います。)
他のパッケージ類は適宜インストールしますので、ここでの情報は以上となります。
ちなみにご自身の環境がどうなっているのか分からなければ以下を確認下さい。

ちなみに、作業は全てrootユーザで行います。
一般ユーザでもsudoなんかを使いながら作業を行なえば実現可能ですが、面倒なんで(^^;

準備作業

いつものことながら、インストールする前の準備運動ならぬ下地造りから入ります。

毎度お馴染みのepel-releaseリポジトリの設定ですね。

yum updateコマンドで全体をアップデートして置いた方がよいのですが、私の環境はNVIDIAのドライバをインストールしていたりいろいろと下手なパッケージを更新するとハレーションが発生する可能性があるので、敢えて行いませんが。。。やった方が良いです。

下地造りの前準備?が出来たところで実際に必要なパッケージをインストールします。

と、いきなり間違えました(^^;
単純にインストールすると、PHPのバージョンが古かったはずなので、上記の方法は辞めて以下の方法でインストールを行います。

まずremiで提供されているリポジトリを使えるようにします。

mariadbのインストール

Apache Web Server (httpd)のインストール

PHP5.6のインストール

concrete5 バージョン8以降ではPHPのバージョン 7.2以降を推奨しておりますが、私の環境は既に5.6の環境である程度構築されていたので、PHP5.6をベースにします。

PHPの古いバージョンが入っていた場合には適宜削除してインストール仕直す必要が生じます。(頑張ればなんとかなるなんて思わない方が良いですよw)

unzipのインストール

きっと入ってますよね。でも一応ね。

以上で準備作業は完了です。

concrete5本体のインストール

いつも思うんですけど、本来インストールしようとしているパッケージのインストール作業って、それ程大変じゃないんですよね。どちらかというと下地の準備の方が面倒なんですよね。
そこまできちんとして書いてくれれば嬉しいのですが。。。
そういった意味では、リポジトリって良くできてますよね。
と言っても、勝手にPHPのバージョンが上げられちゃったりすると困るので、結局こうなるのですが。。。

さて、前置きが長くなりましたが、本体のインストールです。

concrete5はWeb上で動作します。また、データベースを利用します。
ということで、httpdとMariaDBをセットアップしておく必要があるわけです。

httpdサービスを起動する。

Webサービスを利用できるように準備します。
毎度のことではありますが。。。

MariaDBサービスを起動する。

データベースサーバを起動します。

データベースサーバはこれで起動しますが、この後にデータベース自体を構築します。

データベースの作成

以下のコマンドを実行し、データベースを作成します。
なお、データベースの作成に関して、各種パラメタをサンプルです。実際のデータベース作成時には、ユーザIDやパスワードを十分に考慮して設定してください。

Firewallの設定

ファイアーウォールが有効になっていると思いますので、HTTPプロトコルが通過できるように設定を施します。

concrete5本体の設置

以下のURLをブラウザで開いて、最新版をダウンロードしましょう。
http://www.concrete5.org/download

Firefoxでダウンロードすると「ダウンロード」フォルダーに保存されますよね。

 

ここから適当なフォルダーへ移動して、解凍して、移動して、パーミッションの設定をイジイジして。。。。という流れを行います。

以上で設置完了です。

うぅーーーーーーー長い!

でも一応のインストールは出来たはずです。
ここからは、順次設定を進めます。

試しに、インストールしたconcrete5を覗いてみましょう!
以下のURLを指定すると閲覧できます。
(リモートで作業を行っている場合はIP

http://localhost/contents/

こんな画面が表示されれば、一応のインストール作業は完了です。

各種設定

言語設定

言語設定を変更します。
「日本語(日本)」を指定します。
#お好きにどうぞ!

環境チェック

実は、ここで「MSQL PDOエクステンションが有効です。」の項目がエラーになっていた。
インストール漏れはなく、設定もされていた。
結論は、Apacheが起動した状態でphp-pdoをインストールしたため、Apacheがphp-pdoを認識していなかったことが原因であった。
Apacheを再起動(systemctl restart httpd)を行うことで、認識した。

ここでは、チェックだけなので、問題がなければ「インストールを続ける」とし次へ進める。
ここで問題があった場合には、必要なパッケージをインストールするなどの対応が必要となる。

サイト情報登録

ここではサイトに関する情報を登録する。
「名前」はサイトの名称となります。
「管理者メールアドレス」は登録会員向けの発信元メールアドレスにもなります。その他、障害通知などもくるのかな?
「管理者パスワード」は編集する際などにログインする場合に使うパスワードになります。データベースのパスワードとは別にした方が良いでしょう。
データベースの各項目にはデータベース作成時に指定した内容を指定します。
今回の例では、
サーバー:localhost
MySQLユーザ名:concrete5
MySQLパスワード:cocrete5
データベース名:concrete5
となっていますが、実際のユーザ名パスワードデータベース名は十分の考慮の上設定してください。
セキュリティ上、上記の設定は宜しくありません。

「concrete5をインストール」ボタンでインストールが開始されます。

しばらく待ちます。

終わったら。。。

これで、concrete5のインストールは完了です。

「サイトを編集」ボタンをクリックすると、編集画面へ遷移します。

編集画面

編集画面をログアウトするには、右上のメニューボタンからログアウトすることが出来ます。

また再度ログインする際には、管理者ユーザが設定されています。
管理者のIDは「admin」です。
パスワードは、設定画面で設定したパスワードとなります。

ログインが上手く行かない場合には、ファイアーウォールを一度停止してみるとか、SELinuxを一度Permissiveにしてみるなどを試してみてください。

今回は以上です。
お疲れさまでした。

その内、操作方法などもアップしてみたいと思います。

MariaDBを外部から接続できるようにするCentOS 7

MariaDBを外部サーバからアクセスできるように設定する。

MariaDBは前回導入しましたが、外部からアクセスできるように設定を行います。

外部とは、同一ネットワーク内のサーバからのみアクセスを許可します。全公開するとセキュリティを考慮する必要が生じますので、同一ネットワーク内としています。

環境

CentOS 7.4
MariaDB 10.1

作業項目

  1. ファイアウォールでMariaDBのサービスを許可する。
  2. MariaDB内に外部からアクセスを許可するユーザを作成する。
  3. MariaDBの設定を確認・調整する。

ファイアウォール設定

ファイアウォールにMariaDBのアクセスを許可します。
以下のコマンドで設定します。

firewalldの再起動は以下のコマンドでもOK!

これでfirewalldにmysqlのサービスが許可されました。
mysqlとしましたが、MariaDBは内部にmysqlを含んでいると考えてください。そして、mysqlが許可されればMariaDBへの許可が済んだことになります。

MariaDB内に外部からアクセスを許可するユーザを作成する。

今回は、内部ネットワークなのでrootユーザと同じレベルで作成します。

前回インストールしたMariaDBであれば、これだけでOKのはずです。

私が少し躓いたのは、間に物理的なファイアウォールやUTMを配したネットワークを経由した際に、そのハードルを越えるために設定を施す必要が生じたのですが、同一ネットワーク内であれば、ルータ代わりにUTMを使っている様な下手なことをしていなければこれでつながるはずです。

MariaDBの設定を確認・調整する。

基本的には必要ありませんが、/etc/my.confや/etc/my.conf.d/で設定しているconfファイルで、bind-addressを指定している場合には、その設定を見直す必要があります。

bind-addressで指定が行われている場合、外部からアクセスするアクセス元のIPアドレスを確認して登録します。

対象ファイルは
/etc/my.conf
それ以外は以下の様に確認しました。

これで何か設定が行われていれば、以下の様に接続元のIPアドレスを追加します。

こんな感じです。

以上で完了です。

最後に確認

最後に確認方法ですが・・・・

外部のマシンから以下のコマンドを実行します。

これでアクセスできない場合には、もう一度設定をみなしましょう。
それでも接続できない場合は、ネットワークに問題があるのかも知れません。ネットワーク管理者に相談してみるのも方法かと思います。

 

OpenSceneGraph インストールのyumまとめ!

OpenSceneGraphのインストールで各種パッケージをインストールするのは大変です。
対象OSはCentOS 7です。

一つ一つパッケージを確認しながらインストールしていると、何時間掛かることでしょう?

ということで、私がインストールしたyumコマンドを以下に記録しておきます。

まとめてインストールする手順を以下に記します。
前提として、gccやqtが入っていることとしますが、入っていない人のためにこんな感じです。

epel リポジトリをインストールします。

つづいてnux-dextopをインストールします。
ffmpeg関連のインストールを行うための下準備です。

そして最後に以下のコマンドで一気にパッケージをインストールします。
個人個人の好みに合わせてインストール対象を調整してください。

概ね必要そうなライブラリは全てインストールしたつもりです。

これで大分楽になるはず!

あとは、OpenSeceneGraphのソースをダウンロードして、通常どおりにコンパイルとかやれば概ね大丈夫でしょう!

では、ソースをダウンロードします。
今回は、Stable Releaseを利用します。
下記URLでダウンロードします。

https://www.openscenegraph.org/index.php/download-section/stable-releases

gitでインストールするなら、適当なディレクトリへ移動してから以下のコマンドを実行します。今回は、/homeで作業を行うことを前提にします。(cd /home で移動してください)

これで/home/OpenSceneGraphが出来上がっています。
ccmake-guiを起動します。

ccmake-gui画面で、「Configure」やって「Generate」を行います。
※エラー内容には注意すること。
※EXSAMPLEを必要とする場合には「BUILD_OSG_EXAMPLES」をチェックすることを忘れずに。

これで準備は完了!山は越えました!!
構築に入ります。

これで構築は完了しました。
データなどを揃えてお試しください。

足りないライブラリとかパッケージがあれば、どなたかコメントしてください。

このコマンドを書き換えて楽になりたいです(^^;

インストールの詳細は以前に書いた下記の内容をご確認下さい。

OpenSceneGraphをLinuxへインストールする。

OpenSceneGraphをLinuxへインストールする。(2回目)

 

 

Raspberry Pi 3にCentOS 7を入れてみた時にやったこと

Raspberry Pi 3 Model Bをamazonで購入しました。
https://www.amazon.co.jp/gp/product/B01CSFZ4JG/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1

使える様になるまでの手順をまとめておきたいと思います。

準備

 

製品はケースに搭載された状態で送られてきます。
プライム会員だったので、夕方ぐらいに注文して翌日午前中には届きました(^^♪

必要な物を確認してみました。
①USBキーボード
②USBマウス
③HDMIケーブル
④HDMI対応ディスプレイ
⑤電源ケーブル(Micro USB Bコネクタ)
⑥電源 DC 5V 2A以上で良さそう。
2.5Aと書かれている日本語サイトもあったのですが、下記に記した公式ホームページを見る限り2Aになっていました。
ご家庭で余ったACアダプタを探せば一つぐらいは見つかるのではないかと思いますw
⑦Micro SDカード(8GB以上)
古いガラケーのMicro SDメモリを・・・と思ったのですが、容量が少なすぎました(^^ゞ

詳しくは公式ホームページを参照してみてください。
https://www.raspberrypi.org/learning/hardware-guide/

私は結局のところ⑦のMicro SDカードを購入しました。
8GBだと心許無いので16GBの製品にしました。

ディスプレイは取りあえずテレビでも大丈夫!一時的に使用するなら、パソコンのディスプレイでも良いと思います。

ハードウェアの準備はこれで終わりです。

次に準備したSDカードへOSをインストールしてあげる必要があります。
OSをインストールするには、Windows/Linux/Macなどが入ったパソコンが必要となります。
また、Micro SDカードを扱える環境が必要です。

OSとしてNOOBSやRASPBIANを用いるのが一般的なのだそうです。
でも、色々と理由がありまして、CentOSを入れることにしました。

CentOS 7をインストールしましたが、一応は正常に起動しています。
すこぶる速く起動してくれます。
小規模なWebサーバレベルであれば、十分なスペックではないかと思います。
一度評価してみようと思います。

インストール方法

CentOS 7をインストールします。

Raspberry PiにOSをインストールするには、まずパソコンなどでMicro SDメモリ(以下「SDメモリ」と称す)へOSを書き込んであげる必要があります。
SDメモリへOSを書き込むためには、「DD for Windows」というツールを使用します。
それと当然ですが、書き込むOS本体もダウンロードします。

こちらのサイトからDD for Windowsをダウンロードします。
https://www.si-linux.co.jp/techinfo/index.php?DD%20for%20Windows#s74c46f6

DD for Windows自体はインストールする必要はなく、適当なフォルダーで解凍したらそのまま使えます。ただし、管理者モードで起動する必要があります。(後でも書きますので、今はダウンロードしたファイルを適当なフォルダーへ解凍するまでにしてください。)

次に、CentOS 7の本体をダウンロードします。
こちらのサイトからダウンロードします。
https://buildlogs.centos.org/centos/7/isos/armhfp/

以下のファイルをダウンロードしました。
CentOS-Userland-7-armv7hl-Minimal-1611-test-RaspberryPi3.img.xz
(ここから直接ダウンロードすることも可能ですが、最新版が出ているかも知れませんので、サイトで確認してください。)

ダウンロードした.xzファイルは7zipを使えば簡単に解凍することが出来ます。
他の解凍ツールは試していません。

ここまで準備が出来たら、パソコンにSDメモリを差し込みます!

ここからが本番です。

DD for Windowsを右クリック→「管理者として実行」を選択し起動します。

対象ディスクとしてSDメモリを指定します。
「ファイル選択」をクリックして、先程ダウンロードしたCentOSの.imgファイルを指定します。
「ファイル選択」で表示される画面では、「*.ddi」ファイルしかデフォルトでは表示してくれない状態になっています。
「All files(*.*)」にして対象ファイルを指定してください。

後は、「書込」をクリックすればSDメモリへOSが書き込まれます。

私は、16GBと32GBのSDメモリへ実装してみたのですが、書き込むファイルサイズに対してSDメモリの容量が多いとメッセージが表示されますが構わず続行します。

書き込みが完了すると、SDメモリの空き部分をドライブと認識しようとするメッセージがWindows側で表示されますが、ドライブとは認識させずに全て「いいえ」で逃げてください。
これを「はい」で対応すると、せっかく書き込んだOSがまともに起動しない状態が発生する場合がある様です。

SDメモリをWindowsからUSBメモリを抜く手順と同じく安全に取り出して下さい。

取り出したSDメモリをraspberry Pi 3に差し込みます。

キーボードやマウス(最初は要らない)とHDMIケーブルでディスプレイを接続します。

最後にマイクロUSBで電源供給を行えば起動します。

起動した瞬間は、なんとなくごちゃごちゃしていて、ログインプロンプトが解り難いかも知れません。
「Enter」キーを押して出し直しても構いませんので、以下のIDとパスワードでログインします。

ID:root
パスワード:centos

以上でインストールが出来ました。

・・・・・・でもこれだけではまだインストールしただけです。
ネットワークもDHCPで自動割当てされる状態です。
SDメモリの空き部分が使える状態にありません。
yum updateも出来ません。
Webサーバにするなら、Apacheもインストールされていません。
Apacheインストールすると、ファイアウォールが影響して使えません。
だらだら・・・・

ということで、これらの問題解決をこれから行います。
やることがそれなりに多いので、基本的な設定方法は以下に記し、それ以外の項目は別記事で記載します。

基本設定をゴニョゴニョ

キーボード設定

キーボードの初期設定を行います。
CentOS 7を入れた状態はミニマムインストールと同じような状態にあると思われます。
キーボードの設定も十分に行われていません。
そのままでも違和感なく使えているのですが、念のため設定を行います。

こんな感じです。

ネットワーク設定

デフォルト状態では、DHCPで動的にIPアドレスが振られる設定になっています。
クライアント端末みたいな感じで使う場合には問題は無いのですが、固定IPしたいと思います。

固定IPにするには、設定ファイルを変更して・・・・というのは面倒です。
かといって、今の段階ではデスクトップ環境も入っておらず、GUIで設定することも出来ないのでは?という状況。

でも大丈夫!

nmtuiというツールを使います。
既に機能は備わっていますので、コマンドラインからnmtuiを実行します。

コマンドを実行するとこんな画面が起動します。

「接続の編集」を選択します。

既にeth0が存在します。「eth0」を選択してTABキーを使って「編集」まで移動したら、Enterを押して編集モードへ移行します。

IPv4が「自動」になっているので、「手動」に変更して編集を続けます。

「アドレス」には、xxx.xxx.xxx.xxx/24の様な形式で、IPアドレスとサブネットマスクを同時に設定します。
例えば、192.168.0.123/24と設定した場合、IPアドレス=192.168.0.123でサブネットマスクは255.255.255.0ということになります。

ゲートウェイとDNSにもアドレスを設定します。

「OK」を選択して、後は画面を見ながら終了します。

最後に設定を更新するためネットワークマネージャを以下のコマンドを実行して再起動します。

ifconfig -aコマンドなどを使用して、eth0に指定したアドレスが正しく設定されているか確認してください。

ダメだったら、一度再起動してみると良いと思います。

ここまで完了しましたら、一度外部のパソコンなどからTeraTermなどでSSHを使用した接続を行ってみると良いでしょう。
接続出来ない場合には何らかの設定に間違いがあると思います。
ネットワーク管理者などと相談して、確認を行ってみてください。
また、詳しい状況などコメント欄に記載して頂ければ、フォローできるかも知れませんので、お気軽にお声掛けください。
ただ、リアルタイムでの回答には対応しておりませんのでご了承ください。

SDメモリの拡張

ここまでの状態では、SDメモリの空き容量が使えない状態にあります。
パーティションを拡張して空いている領域も使える様にします。

実際の方法については、以下の記事に記載しましたのでそちらを参照してください。

Raspberry Pi 3SDメモリの空きを認識させる。

 

 

CentOS 7へNVIDIAドライバをインストールする。

CentOS 7へNVIDIAドライバをインストールする手順について記録する。

まず、NVIDIAのホームページから対象となるドライバをダウンロードする。

保存先は、パスに日本語が入らないように注意しておきましょう。FireFoxでダウンロードすると、日本語環境の場合は「ダウンロード」ディレクトリに保存されるので、適当に移動しておきます。

カーネルを再構築するので、kernel-develなどもインストールしておきます。

gccなども

必要になりますので事前のインストールが必要です。

さて、準備が整ったら順次開始します。

まず、CUIの環境へ移行します。

ここでリブートしても良いのですが、Ctrl+Alt+F2でCUIに移行して、設定を続けます。

下記のコマンドでまずはnouveauが読み込まれていることを確認しておきます。

次にカーネルの作成を行います。

既存のカーネルを別名保管します。

 

次にnouveauドライバの読み込みが行われないようにブラックリストを作成します。

内容は以下の通り。

もう一つファイルを作成します。

内容は以下の通り。

ここで再起動します。

再起動後はまだCUIの状態です。

ログインして以下のコマンドを投げます。

これでnouveau関連のドライバが表示されなければ、nouveauが入っていない状態でOSは起動されています。

このタイミングでNVIDIAのドライバをインストールします。

 

ランレベルを元に戻します。

以下のコマンドで設定を確認します。

graphical.targetとなっていればOKです。

再起動してGUI画面でログインが要求されれば完了です。

幾度繰り返したことか分りませんが、毎回毎回面倒です。

yumでインストールする方法もあるので、最新版のドライバじゃなくても良いという方はそちらの方法も試してみると良いかも知れません。
でも、折角入れるんだったら最新版が良いですよねw
バグも取れているはずだし。。。というところですが、昔は違ったんです。
最新版だからと言って安定しているとは言えず、安定版をメーカーなどに確認して入れたり、それさえも分からないときは取っ替え引っ替え入れ替えて評価を繰り返しました。

その頃からすると、NVIDIAのドライバも更新すると障害が減っている傾向にあるんじゃないかと昨今は思っています。

でも、入れやすくしてくれないかねぇ〜NVIDIAさん♪

 

ノートPCへLinuxをインストールしようとして断念した。

今回は失敗談です。

GeForce 740Mを搭載したノートPCへCentOS 7をインストールして、NVIDIAのドライバを適用しようと試みました。

いくつかの方法を試みましたが、残念ながら断念することにしました。

まずは普通にCentOS 7をインストールしました。

ここでも一波乱ありましたが、CD-ROMからインストールは問題なく出来たので?その話は省略f^_^;)

最初は何も考えずにNVIDIAのドライバをインストールしました。

完全にダメでした。

NVIDIA Optimus Technologyが原因でした。

BIOSでIntel HDを無効にすることを考えるも、そんな設定は無いw

しばらく調べて、bumblebeeなるものを発見!

行けるか!?と期待したが、やはりNVIDIAのドライバはインストール出来るものの、起動時にscreenが無いと怒られる。

/etc/xorg.confを削除して、startxを起動すると画面は立ち上がるものの、nvidiaのドライバが認識されずOpenGLも使えない_| ̄|○

この問題を解決できず、最終的に断念しました。

誰か情報お持ちであれば、教えて〜と言いたいが、きっとここを見に来た人も同じ問題で躓いていることだろうと半ば諦めています。

というより、誰かが見てくれる可能性の方が少ないかなf^_^;)