外部リポジトリの設定
外部リポジトリの設定に必要な
.repoファイルは
リポジトリごとのrpmパッケージとして配布されている
設定用のrpmパッケージは
rpmコマンドで導入
やり方は、rpmパッケージをURLで指定する
RepoForgeの設定用rpmパッケージを
64bit CentOS 6 へ導入するなら
rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
となる
EPELの設定用rpmパッケージの場合
PGP鍵という
復号のための公開キーがインストールされていないと
警告がでてしまうため、先に
rpm –import コマンドで
PGP鍵をインストールしておく
rpm –import http://ftp.riken.jp/linux/fedora/epel/RPM-GPG-KEY-EPEL-6
そして、EPELの設定用rpmパッケージのインストール
rpm -ivh http://ftp.riken.jp/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
となる
Remiの場合、Linuxサーバーの典型セットであるLAMPに特化しているため
その他パッケージはEPELリポジトリを使っているため
あらかじめEPELの設定をしておかないとダメ
これができたら、Remiの設定用rpmパッケージをインストール
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
で導入できる
導入後
RepoForge
EPEL
は標準で有効になっているので
デフォルトでは無効にしておき
必要に応じて
yum コマンドで有効にするようにする
有効、無効の設定は
.repoファイルの
enabledで設定する
epel.repo
rpmforge.repo
のenabledの設定を
1 から 0 に変更しておく
リポジトリの切り替えは
yumコマンドの
–enablerepo
–disablerepo
で行う
外部リポジトリを有効にして
phpを入れるとバージョンが違う
yum install –enablerepo=rpmforge,epel,remi php
これを実行すると
–enablerepo=rpmforge,epel,remi
により
remi
epel
rpmforge
の外部リポジトリが有効にした状態での
php がインストールされる
CentOS用外部リポジトリ
CentOS用外部リポジトリ
CentOSで使える外部リポジトリは3つ
RepoForge
以前から非公式なrpmパッケージを提供しているリポジトリ
EPEL
Fedora Projectで開発されたパッケージを
Red Hat Enterprise Linux
で使用できるようにしたリポジトリ
Remi
LAMP環境を構築するためのリポジトリ
となる
yum では
/etc/yum.repos.d/
へ
.repo拡張子の設定ファイルを配置することで自動的に読み込まれる
パッケージの依存関係の確認
パッケージの依存関係の確認
インストールしたパッケージの依存関係は2つあり
rpm -qR パッケージ名
で
指定したパッケージ名が依存しているファイルなどを表示
rpm -q –whatrequires パッケージ名
で
指定したパッケージ名に依存されているRPMパッケージを表示する
となる
例えば
yum install bind-chroot
で
DNSサーバーのBINDをインストールしたばあい
bind-chrootの依存関係を見るなら
rpm -qR bind-chroot
とする
この結果から
bindパッケージに依存していること
/bin/sh
grep
が必要なことがわかる
次に、
bind-chroot
bind
のパッケージが他から依存しているかを
–whatrequires オプションで確認
rpm -q –whatrequires bind-chroot
rpm -q –whatrequires bind
この結果から
bindが bind-chrootから依存されているのがわかる
依存するパッケージがある場合
削除するには
両方のパッケージを同時削除するか
依存されていない順に削除していく
bindは bind-chrootに必要なので
rpm -e bind
としても削除できないけど
rpm -e bind-chroot
rpm -e bind
と順番に削除することはできる
後、たまにあるけど
パッケージ更新したらバグがあるから
古いバージョンに戻したいときの対処
こんなときには
–oldpackage オプションをつけて
ダウングレードインストールする
書式にすると
rpm -Uvh –oldpackage パッケージ名
例えば
最新版のbind関連パッケージを
インストールメディアに入っていたrpmパッケージに
ダウングレードインストールするなら
rpm -qa | grep ^bind
で調べて
rpm -Uvh –oldpackage bind関連のパッケージ名
で
ダウングレードインストールして
再度
rpm -qa | grep ^bind
で調べると、バージョンがダウングレードされたのが確認できる
Androidの音声認識のオプション
Androidの音声認識のオプション
EXTRA_LANGUAGE_MODEL
言語モデル
LANGUAGE_MODEL_FREE_FORM
会話中の認識向け
LANGUAGE_MODEL_WEB_SEARCH
Web検索向け
EXTRA_LANGUAGE(locale)
言語の設定で、
localeが
Locale.USなら英語
Locale.JAPANなら日本語
Locale.FRANCEならフランス語
になる
EXTRA_PROMPT
プロンプト文字列
EXTRA_MAX_RESULTS
候補の数
Linux のパッケージシステムについて
Linux のパッケージシステムについて
パッケージファイル名は以下の形式で命名されている
パッケージ名-バージョン-リリース番号-アーキテクチャ.rpm
例えば
httpd-2.2.15-28.el6.centos.x86_64.rpm
なら
パッケージ名
httpd
バージョン
2.2.15
リリース番号
28
アーキテクチャ
el6.centos.x86_64
となる
パッケージのバージョン管理は
バージョンとリリース番号を組み合わせたファイル名で実施している
バージョン番号が同じ場合
リリース番号の大きいほうが新しいものとして
更新対象になる
バージョンアップして
パッケージのバージョンが更新されると
リリース番号が更新される
yum check-update
を実行すれば
現在インストールされているバージョンと
リポジトリの最新バージョンと比較することで
アップデート候補を表示することができる
また、コマンドを使うことで
インストールされているパッケージの一覧表示ができる
rpm なら
rpm -qa
というように
-qa オプションをつけることで表示できるけど
一覧表示だけでは履歴がわからない
こんなときには
–last オプションをつけることで
最後に導入されたパッケージから順番に表示できる
rpm -qa –last
とすればOK
ただし、あまりにも長いと見にくいので
最後のほうから調べたいのなら
head コマンド
を使い上位10件だけ表示するとか
grep で絞り込みをかけることで、
より効率的に探すことができる
head と組み合わせるなら
rpm -qa –last | head
これで、最後から10件表示となる
この使い道は、あるときからトラブル発生した場合
パッケージのバージョンアップが原因であるか調べるのに使える
これには、ログをみるスキルと併用すると効率的に
調べることができる
yum などで一気にインストールすると依存関係も楽だけど
管理者が意図しないパッケージも導入されることが多い
インストール済みパッケージの情報を調べることができるなら
意捨て無の状態を確認できる
パッケージ情報を調べるために使える rpm コマンドの
主なオプションとしては
rpm -qi パッケージ名
パッケージ情報を表示
rpm -ql パッケージ名
パッケージに含まれるファイルを表示
rpm -qc パッケージ名
パッケージに含まれる設定ファイルを表示
rpm -qd パッケージ名
パッケージに含まれるドキュメントファイルを表示
削除ファイルの復旧
削除ファイルの復旧
コマンドラインから削除したファイルは、
ゴミ箱に入らず、すぐ削除される
このファイルを復旧するには
PhotoRec を使う
復旧を行う環境は Ubuntu
sudo apt-get install testdisk
で導入することができる
ファイルを削除した直後は
ファイルのありかを示すデータは消えるけど
ファイル自体は削除されず残っているのが多い
今回の想定はSDカードのデータを消してしまった場合
この場合、まずすぐにSDカードをアンマウントして
PCから外す
そして
データ復旧先のディレクトリを作成する
ディレクトリサイズは、復旧元と同じ大きさの容量が必要
mkdir /tmp/Recovery
でディレクトリを作成
そして、再びSDカードを挿して
読み込み専用ディスクとして再マウントする
-o ro オプションをつけて mount コマンドを実行する
mount -o ro.remount /media/SD-DISK/
そして、photorec を起動して
メディアの復旧を行う
設定ファイルを初期状態へ戻す方法
設定ファイルを初期状態へ戻す方法
一番無難なのは
設定変更する前にファイルをバックアップしておくこと
しかし、バックアップしたファイルが削除されたり
バックアップがない可能性もあるため
復旧方法を学習しておく
今回の環境は、CentOSで
Apacheの設定ファイルである
httpd.conf
を間違えて削除した場合の対処
これをパッケージ中の設定ファイルをインストールして復旧
まず、httpd.confがどのパッケージに含まれるか調べる
もし、パッケージ名がわかれば
そのパッケージからhttpd.confを取り出せばいい
とはいっても、書いているだけではスキルがあがらないので
VMware Player で
CentOS 6.4 64bit 環境を構築し
これを使って実験する
仮想マシンはDHCPでIP取得する設定にしているのなら
ubuntu から
sudo nmap -n -sP 192.168.10.0/24
というように、LAN内部のIPを調べ
ssh でリモートログインする
ログインできたら
yum -y install httpd
で
Apache をインストールし
実験開始
不安があるのなら、一度仮想マシンのバックアップをとったほうがよいかもしれない
まず、設定ファイルを削除する
rm -f /etc/httpd/conf/httpd.conf
これで
/etc/rc.d/init.d/httpd start
としても起動できなくなる
この場合、httpd.conf と関連が深そうなファイルを探すことになる
ls /etc/httpd/conf
で調べると
magic がでるので
これを調べる
CentOS は rpm パッケージなので
rpm -qf /etc/httpd/conf/magic
でパッケージ名を表示してみると
httpd-2.2.15-28.el6.centos.x86_64
となり、httpd パッケージに含まれることが判明
次に、-ql オプションを使って
httpd パッケージの構成ファイル一覧を表示
rpm -ql httpd | grep conf
で絞って探すと
/etc/httpd/conf
/etc/httpd/conf.d
/etc/httpd/conf.d/README
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf/httpd.conf
/etc/httpd/conf/magic
/etc/sysconfig/htcacheclean
/etc/sysconfig/httpd
/usr/lib64/httpd/modules/mod_log_config.so
となり、httpd.conf が含まれるのが確認できる
次に、httpd パッケージをダウンロードする
これは
yumdownloader を使う
これは、rpm パッケージをダウンロードするツール
yumdownloader httpd
とすれば
httpd-2.2.15-28.el6.centos.x86_64.rpm
がダウンロードできる
ただし、パッケージを普通にインストールしようとしても
すでに導入済みだとインストールできないので
–force オプションをつけ
強制的に再インストールする
rpm -Uvh –force httpd-2.2.15-28.el6.centos.x86_64.rpm
でインストール
ls /etc/httpd/conf/
でディレクトリを確認すると
httpd.conf があるのが確認できる
これで
/etc/rc.d/init.d/httpd start
とすると
apache が起動できるのが確認できる
設定ファイルを初期状態へ戻す方法
設定ファイルを初期状態へ戻す方法
一番無難なのは
設定変更する前にファイルをバックアップしておくこと
しかし、バックアップしたファイルが削除されたり
バックアップがない可能性もあるため
復旧方法を学習しておく
今回の環境は、CentOSで
Apacheの設定ファイルである
httpd.conf
を間違えて削除した場合の対処
これをパッケージ中の設定ファイルをインストールして復旧
まず、httpd.confがどのパッケージに含まれるか調べる
もし、パッケージ名がわかれば
そのパッケージからhttpd.confを取り出せばいい
—
から送られてきた高速メモ帳
投票結果のグラフ表示
投票結果のグラフ表示
#11 投票結果を表示しよう (1)
http://dotinstall.com/lessons/poll_php_v2/9711
を参考に、投票された結果をグラフ表示していくため
データを抽出する
index.php の
</form>
の下に
<p><a href=”result.php”>結果をみる</a></p>
を追記して
新たに
result.php を作成する
そして、戻るボタンを設置したいので
<p><a href=”index.php”>戻る</a></p>
を追記
投票結果の表示のためDBからデータを引っ張ってくる必要があるので
$dbh = connectDb();
この connectDb() は、functions.php で定義した
ユーザ関数
$sql =”select answer, count(id) as count from ansers group by answer”;
としてSQLを $sql に格納
Google Chart Toolsで引っ張ってくるデータはJSON形式
次に、配列を作成
$rows = array();
これは foreach() で使用する
foreach($dbh->query($sql) as $row){
array_push($rows, array());
}
という処理になる
次に、
#12 投票結果を表示しよう (2)
http://dotinstall.com/lessons/poll_php_v2/9712
を参考に
Google Chart Toolsを使い、投票結果をグラフ表示
Google Chart ToolsはJSON形式なので
array($row[‘answer’], (int)$row[(count’]))
というような書き方になる
ちなみに、count のほうは int でないとまずいので
(int) として int 型にしている
そして、
json_encode()で
$rows をJSON形式の文字列に変更する
$data = json_encode($rows);
json_encode() については
http://php.plus-server.net/function.json-encode.html
を参考にする
値が格納されているか確認したいのなら
var_dump($data);
とすれば
確認できる
確認できたら、
var_dump() はコメントアウトしておく
ここまで確認できたら、グラフを描いていく
まず、
<div id=”chart_div”>グラフを詠み込み中 </div>
として
表示領域を div で指定
そして、 script タグで Google Chart Tools のライブラリを読み込む
<script src=”https://www.google.com/jsapi”></script>
ライブラリを読み込んだら
script タグへ
グラフを描く処理を追記
google.load(‘visualization’, ‘1.0’, {‘packages’:[‘corechart’]});
はほぼ決まり文句
google.setOnLoadCallback(drawChart);
function drawChart() {
}
で、この drawChart() {} の中に詳細設定をしていく
ここからは
#13 投票結果を表示しよう (3)
http://dotinstall.com/lessons/poll_php_v2/9713
を参考に、グラフ表示と動作確認をしていく
なお、グラフ作成に使用している
Google Chart Tools に関しては
http://dotinstall.com/lessons/basic_chart_tools
で学習することができる
この編集するファイルは results.php になる
処理は
function drawChart() {} の中に描いていく
var data= new google.visualization.DataTable();
次に、data.addCulumn()
でデータのカラムを設定する
data.addColumn(‘string’,’answer’);
data.addColumn(‘number’,’票数’);
data.addRows(<?php echo $data; ?>);
そして、グラフのオプションを指定する
var options ={
‘title’:’投票結果’,
‘width’:400,
‘height’:300
}
そして、実際にグラフを作成
var chart = new google.visualization.PieChart(document.getElementById(‘chart_div’));
この chart_div はHTMLソースで指定した div の id
char.draw(data,options);
これで実行してみると、円グラフが表示されるようになる
投票結果のグラフ表示
#11 投票結果を表示しよう (1)
http://dotinstall.com/lessons/poll_php_v2/9711
を参考に、投票された結果をグラフ表示していくため
データを抽出する
index.php の
</form>
の下に
<p><a href=”result.php”>結果をみる</a></p>
を追記して
新たに
result.php を作成する
そして、戻るボタンを設置したいので
<p><a href=”index.php”>戻る</a></p>
を追記
投票結果の表示のためDBからデータを引っ張ってくる必要があるので
$dbh = connectDb();
この connectDb() は、functions.php で定義した
ユーザ関数
$sql =”select answer, count(id) as count from ansers group by answer”;
としてSQLを $sql に格納
Google Chart Toolsで引っ張ってくるデータはJSON形式
次に、配列を作成
$rows = array();
これは foreach() で使用する
foreach($dbh->query($sql) as $row){
array_push($rows, array());
}
という処理になる
次に、
#12 投票結果を表示しよう (2)
http://dotinstall.com/lessons/poll_php_v2/9712
を参考に
Google Chart Toolsを使い、投票結果をグラフ表示
Google Chart ToolsはJSON形式なので
array($row[‘answer’], (int)$row[(count’]))
というような書き方になる
ちなみに、count のほうは int でないとまずいので
(int) として int 型にしている
そして、
json_encode()で
$rows をJSON形式の文字列に変更する
$data = json_encode($rows);
json_encode() については
http://php.plus-server.net/function.json-encode.html
を参考にする
値が格納されているか確認したいのなら
var_dump($data);
とすれば
確認できる
確認できたら、
var_dump() はコメントアウトしておく
ここまで確認できたら、グラフを描いていく
まず、
<div id=”chart_div”>グラフを詠み込み中 </div>
として
表示領域を div で指定
そして、 script タグで Google Chart Tools のライブラリを読み込む
<script src=”https://www.google.com/jsapi”></script>
ライブラリを読み込んだら
script タグへ
グラフを描く処理を追記
google.load(‘visualization’, ‘1.0’, {‘packages’:[‘corechart’]});
はほぼ決まり文句
google.setOnLoadCallback(drawChart);
function drawChart() {
}
で、この drawChart() {} の中に詳細設定をしていく