折角Raspberry pi2 買ったのでOSインストール方法など。。。
Raspberry pi2 だけじゃなくてpi Bとかでも同じだけど、ubuntuだけじゃなくて他のLinuxでも同じだけど
Linuxを母艦にして、Raspberry pi にOSをインストールする方法。
作業はubuntu 14.04でやってます。SDカードスロットもしくはSDカードリーダーが必要です。
折角Raspberry pi2 買ったのでOSインストール方法など。。。
Raspberry pi2 だけじゃなくてpi Bとかでも同じだけど、ubuntuだけじゃなくて他のLinuxでも同じだけど
Linuxを母艦にして、Raspberry pi にOSをインストールする方法。
作業はubuntu 14.04でやってます。SDカードスロットもしくはSDカードリーダーが必要です。
えーと。ここからダウンロードしてインストールするだけです。
なんで、記事にするかっていうと、ここに来るまでにそーとー時間がかかった(涙)
本家US版のKindle for PCやkindle cloud readerは結構前にリリースされていたのだが、日本語版(というか日本のamazon)はどれも対応してなかった(涙)
androidアプリなら使えるってことで、エミュレーターでKindleアプリを起動するも、なんか制約っぽいもんがあって使えないし、じゃーそれではってことで特殊なPC専用のエミュレーターで起動させるっていう力技が出てくる始末。
そんな状況に終止符を打ったのが、Kindle for PC(日本語版)。
巷を賑わしているSSL POODLE。あーまたサーバ側の対応しないとだなー。なんて考えている時、ふとクライアントどうなってんのってことで、自分のデフォルトブラウザのFirefoxでSSL 3.0を無効にする方法を確認。
普通の設定画面からは出来ないのね。
abount:config
で高度な設定画面に入って、
security.tls.version.min
の値を、 1 にする。
自分の環境ubuntu 14.04 firefox 33 では0になってたので、SSL 3.0が有効だった。
Windows環境は知らん。きっと同じ方法じゃない。
設定値の意味は、このページに書いてあるっぽい。
前々から気になっていた、phonegapの環境構築をした。
いつの間にか名前が、cordovaになっていた。adobeに買収されたらしい。
apacheに寄贈されたのがcordova?
adobeの製品がphonegap?
細かいことはよくわからないが、オープンソース版を使うなら今後はcordovaなんだろうと思う。
今回はubuntu上に環境を作って、androidアプリをbuildして、エミュレーターで動かすところまでやってみた。
android-sdkは事前にインストールしておいてください。細かい説明は今回はしません。多分探せばいっぱいある。
node-jsが必要なんで、インストールする。標準パッケージにも入っているけど、ppaからインストールする。
そうしないと実行ファイルの名前が違ってうまく動かない。
1 2 3 |
$ sudo add-apt-repository ppa:chris-lea/node.js $ sudo apt-get update $ sudo apt-get install nodejs |
次はcordova本体をインストール。node-jsのパッケージ管理は、npmってコマンドを使うらしい。
-gオプションでシステム全体にインストール。ホントはユーザ環境に入れたかったがよくわからないので諦めた。
1 |
$ sudo npm install cordova -g |
androidの環境を作るには、android-sdkとjdkが(jreじゃだめ)必要っぽい。今回はopenjdkを入れます。
1 |
sudo apt-get install openjdk-7-jdk |
ANDROID_HOMEとJAVA_HOMEの環境変数を設定する必要があるので
適時設定する。
1 2 3 4 5 |
$ tail -2 ~/.bashrc export ANDROID_HOME=/home/userdir/develop/android-sdk/android-sdk-linux/ export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/ $ . ~/.bashrc |
以上で環境作成は完了。
試しにテストアプリを作ってみる。
1 2 3 |
$ cordova create hello com.example.hello HelloWorld -d $ hello |
android環境を追加
1 |
cordova platform add android |
エミュレーター上で実行
1 |
cordova emulate android |
エミュレーターのAVD(android virtual device)が1個もないと実行に失敗するので、
事前に何でもいいので作っておく。AVDはコマンドでも、android virtual device managerでも作れるのでちょっと調べればすぐ見つかるはず。
アプリ作れるかなー
ふと、ffmpegを使おうと思ったら、
1 2 |
$ ffmpeg ffmpeg: コマンドが見つかりません |
あれ、コマンドが無いって言われている。バージョンアップ前にバリバリ使ってた覚えがあるので絶対入っていたはず。
そういえば、ffmpeg時代に、コマンド実行時に、「なんか名前変わるよ」的な警告が出ていた気がする。
うーん。新しい名前が思い出せない。
ちょいと調べたところ、
avconv
になったそうです。今のところオプションとかの違いはなさそう。というかそんなにffmpegを使わないのでわからない。
ちなみにubuntuでのパッケージは、
libav-tools
1 2 |
$ dpkg -S /usr/bin/avconv libav-tools: /usr/bin/avconv |
うーん。ますます忘れそう。
表題のままなのだが、ubuntu 14.04 を無線LANアクセスポイントにしてみた。
無線LANルータが格安で販売されている今日このごろに、なんでこんなことやってるんだろというツッコミは後にして、前提条件など。
設定などなど
後の方に気付いたけど、最初に止めた方が無難。
Desktop PCで、固定IP運用なので、そもそもこいつは必要ない。なので、NetworkManagerを止めて、手動での設定に移行する。
まず動いているか確認
1 2 |
$ ps ax | grep Net NetworkManagerってプロセスがいるか確認 |
いたら止める。
1 |
$ sudo stop network-manager |
自動起動を止める。
1 |
$ echo "manual" | sudo tee /etc/init/network-manager.override |
今は、こんな方法なんですね。
1 |
$ sudo apt-get install bridge-utils hostapd |
ブリッジのやつと、アクセスポイントのやつ
自分の場合は、既に手動になってた(NetworkManagerは起動してたけど)が念の為確認。
こんな感じの設定、ブリッジ設定もやってます。ミスるとネットワーク繋がらなくなるので要注意。設定終わったら再起動しといた方が無難。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
$ sudo cat /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet manual auto br0 iface br0 inet static address 192.168.xxx.20 network 192.168.xxx.0 netmask 255.255.255.0 broadcast 192.168.xxx.255 gateway 192.168.xxx.1 dns-domain example.com dns-nameservers 192.168.xxx.1 bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0 |
無線LAN(wlan0とか)のブリッジは、hostapdがよろしくやってくれるのでここでは設定しない。
別にいつでもいいけど。iwconfigでwlan0(無線LANが1つの場合)が見えてればたぶんOK。
ドライバーとかもよろしくやってくれるはず。
1 2 3 4 5 |
$ iwconfig wlan0 IEEE 802.11bgn Mode:Master Tx-Power=20 dBm Retry long limit:7 RTS thr:off Fragment thr:off Power Management:on |
ドライバっぽいやつら
1 2 3 4 5 6 7 8 |
$ lsmod |grep rt2 rt2800usb 27034 0 rt2x00usb 20742 1 rt2800usb rt2800lib 89076 1 rt2800usb rt2x00lib 55307 3 rt2x00usb,rt2800lib,rt2800usb mac80211 630653 3 rt2x00lib,rt2x00usb,rt2800lib cfg80211 484040 2 mac80211,rt2x00lib crc_ccitt 12707 1 rt2800lib |
やっと本番。
自分はこんな感じの設定にした。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
$ sudo cat /etc/hostapd/hostapd.conf # APインターフェイスのデバイス名 interface=wlan0 # ブリッジする場合のインターフェイス。 bridge=br0 # ドライバーインターフェイス名 # とりあえずこいつでよい模様。 # lsmodでロードされているモジュールかと思ったら違った。 driver=nl80211 # 動作モード (a = IEEE 802.11a、b = IEEE 802.11b、g = IEEE 802.11g) hw_mode=g # ieee80211n: IEEE 802.11n (HT) を有効にする。 # 使えるのか分からないがとりあえず設定 ieee80211n=1 # SSIDssid=YOUR_SSID # <- ここはSSID # 事前共有鍵 wpa_passphrase=YOUR_PASSPHRASE # <- ここはパスワード # SSIDをステルスにする ignore_broadcast_ssid=1 # MACアドレスによる子機のアクセス制限 # 0 = 拒否リストにないものは許可 # 1 = 許可リストにないものは拒否 macaddr_acl=1 # 許可するMACアドレスリスト accept_mac_file=/etc/hostapd/hostapd.accept # ようわからん wpa=2 channel=11 wpa_key_mgmt=WPA-PSK wpa_pairwise=CCMP |
MACアドレス許可リストファイルを作っておく。
1 |
$ echo "xx:xx:xx:xx:xx:xx" |sudo tee /etc/hostapd/hostapd.accept # "xx:xx:xx:xx:xx:xx" は自分のMACアドレスに置き換え。 |
パーミッションもきつめにする。
1 |
$ sudo chmod 600 /etc/hostapd/hostapd.conf $ sudo chmod 600 /etc/hostapd/hostapd.accept |
自動起動の設定 /etc/default/hostapdのファイルに、DAEMON_CONFを定義
1 |
$ cat /etc/default/hostapd |grep "^DAEMON" DAEMON_CONF="/etc/hostapd/hostapd.conf" |
デーモン起動
1 |
$ sudo service hostapd start * Starting advanced IEEE 802.11 management hostapd [ OK ] |
正しく起動すれば、きっと使えるはず。
なんか自動アップデートの設定も毎回確認しているような気がするが
unattended-upgradesをインストールして、前回の記事のように設定しようとしたが
/etc/apt/apt.conf.d/10periodicってファイルが見つからない。
どうしたもんかと調べたところ、dpkg-reconfigureすればいいんじゃね。
1 |
$ sudo dpkg-reconfigure unattended-upgrades |
自動更新しますかって聞かれるので、はい。を選択。
こんなファイルが作られている。
1 2 3 |
$ cat /etc/apt/apt.conf.d/20auto-upgrades APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Unattended-Upgrade "1"; |
ただ、同じ14.04でも、/etc/apt/apt.conf.d/10periodicが存在して普通に自動アップデート出来ている環境もあるので、
debootstrapでインストールした最小構成だけかもしれない。
とっても便利な、チケットドリブン開発WEB UIのredmineを自分専用にインストール。
今回インストールするのは、redmine 2.5.1になります。
基本的には、ubuntuだとパッケージでのインストールが良いのだが、WEB系のアプリで開発が頻繁なものは、本家からダウンロードしてインストールするほうが、後々いいので今回は手動でインストールする。
以前、Wordpressをubuntu標準パッケージから入れたら、後々不便(バージョンアップとか)だったので、その教訓を活かす。
最小インストール。というかlxc環境に入れるので、debootstrapにてインストールされるので、かなり最小構成。
一応パッケージは最新にしておく。
1 |
$ sudo apt-get update && sudo apt-get upgrade |
こちらもOSのパッケージではなく、rvmを使って、ruby 2.0.0系をインストールします。
1 2 3 |
$ sudo apt-get install curl $ curl -sSL https://get.rvm.io | bash -s stable --ruby=2.0.0 $ source /home/$USER/.rvm/scripts/rvm |
rubyのバージョン確認
1 2 |
$ ruby -v ruby 2.0.0p481 (2014-05-08 revision 45883) [x86_64-linux] |
1 2 |
$ sudo apt-get install git git-core subversion $ sudo apt-get install imagemagick libmagickwand-dev |
subversionは、redmineの最新版を取得用。gitは自分で使うバージョン管理。
imagemagicは、redmineで使う。
今回は/optにインストールします。
1 2 3 4 5 6 |
$ cd /opt/ $ sudo mkdir redmine $ sudo chown $USER:$USER redmine $ cd redmine/ $ svn co http://svn.redmine.org/redmine/branches/2.5-stable current $ cd current/ |
1 2 |
$ mkdir public/plugin_assets $ sudo chown -R www-data:www-data files log tmp public/plugin_assets |
一応ここで作成しておくが、あとでも良いし別の場所でも可
1 |
$ mkdir -p /opt/redmine/repos/git |
1 |
$ sudo apt-get install mysql-server libmysqlclient-dev |
1 2 3 4 5 6 |
$ mysql -uroot -p mysql> CREATE DATABASE redmine CHARACTER SET utf8; mysql> CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password'; mysql> GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost'; mysql> FLUSH PRIVILEGES; mysql> EXIT; |
1 2 3 4 5 6 7 8 9 10 11 12 |
$ cp config/configuration.yml.example config/configuration.yml $ cp config/database.yml.example config/database.yml $ cat config/database.yml ~~~~~~snip~~~~~~~ production: adapter: mysql2 database: redmine host: localhost username: redmine password: "my_password" encoding: utf8 ~~~~~~snip~~~~~~~ |
bundlerインストール
1 2 |
$ gem install bundler $ bundle install --without development test |
token作成
1 |
$ bundle exec rake generate_secret_token |
db migrate
1 |
$ RAILS_ENV=production bundle exec rake db:migrate |
default data load
1 |
$ RAILS_ENV=production bundle exec rake redmine:load_default_data |
途中言語環境を聞かれたら、 ja にする。
次からWEBサーバ
各種インストール
1 |
$ sudo apt-get install apache2 apache2-dev libcurl4-gnutls-dev apache2 libapache2-svn libapache-dbi-perl libapache2-mod-perl2 libdbd-mysql-perl libauthen-simple-ldap-perl openssl |
ssl有効、セキュリティ設定
1 2 3 |
$ sudo a2enmod ssl $ sudo a2ensite default-ssl $ sudo vi /etc/apache2/conf-available/security.conf |
passengerインストール
1 2 3 4 5 6 7 8 9 |
$ gem install passenger $ passenger-install-apache2-module ~~~~~~snip~~~~~~ LoadModule passenger_module /home/foo/.rvm/gems/ruby-2.0.0-p481/gems/passenger-4.0.45/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /home/foo/.rvm/gems/ruby-2.0.0-p481/gems/passenger-4.0.45 PassengerDefaultRuby /home/foo/.rvm/gems/ruby-2.0.0-p481/wrappers/ruby </IfModule> #環境によって異なるので、必ず自分の結果をメモする。 |
apacheにpassengerの設定
1 2 3 4 5 6 7 8 9 10 |
$ cat /etc/apache2/conf-available/passenger.conf LoadModule passenger_module /home/foo/.rvm/gems/ruby-2.0.0-p481/gems/passenger-4.0.45/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /home/foo/.rvm/gems/ruby-2.0.0-p481/gems/passenger-4.0.45 PassengerDefaultRuby /home/foo/.rvm/gems/ruby-2.0.0-p481/wrappers/ruby </IfModule> PassengerUserSwitching off PassengerDefaultUser www-data |
passenger設定を有効化
1 |
$ sudo a2enconf passenger |
sslサイトにredmineを追加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ head -15 /etc/apache2/sites-available/default-ssl.conf <IfModule mod_ssl.c> <VirtualHost _default_:443> ServerAdmin webmaster@localhost #DocumentRoot /var/www/html DocumentRoot /opt/redmine/current/public <Directory /opt/redmine/current/public> Require all granted </Directory> # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular |
DocumentRoot変更と/opt/redmine/current/publicへの許可設定
apache再起動
1 |
$ sudo service apache2 restart |
これでhttps://<your_server_ip>にアクセスアクセスすればredmineが使えるはず。
あとは、自分でチケット作って、自分でやってという悲しい作業で、効率が上がる。
WEBページをコマンドで、PDFとかイメージデータとして保存出来たらいいな。と、ふと思い調べたところ、
過去に書いてるやん!
うわー。記憶って消えていくものだな。
ってパッケージをインストールすれば良い。
ただ、ちょっとその時と違っているのは、ubuntu 14.04ならイメージも出来まっせ!ってこと。
当時(恐らく12.04だと思う)は、PDFだけだった模様。
※残念ながら、14.04もPDFだけでした。この記事は意味ありませんが、もったいないので
まー。インストールは相変わらず超簡単
1 |
$ sudo apt-get install wkhtmltopdf |
使いかたも超簡単
1 |
$ wkhtmltopdf http://www.yahoo.co.jp yahoo.pdf |
1 |
$ wkhtmltoimage-amd64 http://www.yahoo.co.jp yahoo.png |
日本語フォントとか無理かなって思ってたのだが、日本語も凄く綺麗に表示されている。
これで自前のaguseサイトとか作れる。作る能力無いけど。
wkhtmltoimageですが、過去にサイトからダウンロードして個別に入れていたようです。これまたすっかり忘れていた。 公式サイトにubuntu用のパッケージもあるので、そちらからインストールすれば、たぶんwkhtmltoimageも使えるかと(未確認)
やっとこさLTSがリリースされたので、アップグレードしてみる。
サーバ環境なので、GUIなど無いので、CUIでアップグレード。
現在のバージョンを確認
1 2 3 4 5 6 |
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 12.04.4 LTS Release: 12.04 Codename: precise |
do-release-upgradeでアップグレードの実行
1 2 3 |
$ sudo do-release-upgrade Checking for a new Ubuntu release No new release found |
ん?新しいのは無いって?
なんかネットで情報調べると-dオプションをつけろと。
man見ると、develリリースとか書いてあるから、開発版じゃないのとか思うのだが
とりあえずやってみた。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
$ sudo do-release-upgrade -d Checking for a new Ubuntu release 取得:1 Upgrade tool signature [198 B] 取得:2 Upgrade tool [1,148 kB] 1,148 kB を 0秒 で取得しました (0 B/s) authenticate 'trusty.tar.gz' against 'trusty.tar.gz.gpg' extracting 'trusty.tar.gz' キャッシュを読み込み中 パッケージマネージャーをチェック中です SSH経由で実行していますが、続けますか? このセッションはSSH上で実行されているようです。アップグレードをSSH越しに行うことは推奨されません。アップグレードに失敗した時の復元が困難になるからです。 続行する場合、追加のSSHデーモンをポート '1022' で起動します。 本当に作業を進めてよろしいですか? 続行する[yN] y 予備のsshdを開始します 障害が起こったときに復旧しやすくするため、ポート '1022' でもう一つの sshd を開始します。現在実行中のsshにおかしなことが起きても、もう一方のポートに接続することができます。 ファイアウォールを実行している場合、このポートを一時的に開く必要があります。この操作は、潜在的な危険があるため自動的には行われません。以下の例のようにしてポートを開けます: 'iptables -I INPUT -p tcp --dport 1022 -j ACCEPT' 続けるには [ENTER] キーを押してください ######### snip ######### アップグレードを開始しますか? 1 個のパッケージが削除されます。 101 個の新規パッケージがインストールされます。 343 個のパッケージがアップグレードされます。 合計 152 M をダウンロードする必要があります。 このダウンロードは約 54 秒 かかります。 アップグレードをインストールするのに数時間かかることがあります。ダウンロードが完了してしまうと、処理はキャンセルできません。 続行する[yN] 詳細 [d]y ######### snip ######### |
ssh経由だと、ご丁寧に、sshdを別ポートで上げてくれるし、iptablesの警告まで出してくれる。
途中変更を加えた、configとかあると、新しいコンフィグに置き換えるか聞かれるけど
日本語の説明なので全く問題ない。
インストールしているパッケージの数や、サーバのスペックで、かなり変わると思うが
自分の環境では、30分くらいで終わった。
使っているサービスもDNSくらいだったので、アップグレード後も特に問題なさそう。
うーん。簡単。簡単。