Raspberry Piのインストールログ

メモしておく2

  • apt-get

思いついたままインストールしたので順番ばらばら
ソースコンパイル時に必要なパッケージもあるので注意

# apt-get install raspi-config 
# apt-get upgrade
# apt-get install postfix
# apt-get install lv
# apt-get install emacs
# apt-get install wv ppthtml xlhtml
# apt-get install w3m
# apt-get install lynx
# apt-get install dnsutils
# apt-get install git
# apt-get install w3m-el
# apt-get install procmail
# apt-get install gnupg2
# apt-get install anthy-el
# apt-get install tcsh
# apt-get install screen
# apt-get install fetchmail
# apt-get install pwgen
# apt-get install libssl-dev
# apt-get install telnet
# apt-get install ntpdate
# apt-get install squid
# apt-get install pptpd
# apt-get install postfix-policyd-spf-python
# apt-get autoremove
  • ソースからコンパイル

mew

% git clone git://github.com/kazu-yamamoto/Mew.git
% cd Mew
% ./configure
% make
% sudo make install
% sudo cp /usr/share/emacs/23.4/site-lisp/subdirs.el /usr/local/share/emacs/site-lisp

hyperestraier and qdbm

% wget http://fallabs.com/qdbm/qdbm-1.8.78.tar.gz
% tar xvzf qdbm-1.8.78.tar.gz
% cd qdbm-1.8.78
% ./configure --enable-zlib
% make
% sudo make install
% sudo ldconfig
% wget http://fallabs.com/hyperestraier/hyperestraier-1.4.13.tar.gz
% tar xvzf hyperestraier-1.4.13.tar.gz
% cd hyperestraier-1.4.13
% ./configure
% make
% sudo make install

stunnel
dpkgでも存在するがmewでは使えなかった
"--disable-fips"でビルド

% wget https://www.stunnel.org/downloads/stunnel-4.56.tar.gz
% tar xvzf stunnel-4.56.tar.gz
% cd stunnel-4.56
% ./configure --disable-fips
% make
% sudo make install
% bash
$ for i in /usr/share/ca-certificates/mozilla/*; do cp $i ~/.certs/`openssl x509 -hash -noout -in $i`.0; done
$ exit
% openssl s_client -connect imap.gmail.com:993 -CApath ~/.certs/
  • cronの設定
  • rsyslogの設定
    • /etc/rsyslog.conf
  • ntpの設定
    • /etc/ntp.conf
  • sshdの設定
    • イントラネット用デーモン(ほぼデフォルト)とインターネット用デーモン(違うポート番号・公開鍵限定)
    • 両デーモンのRCスクリプト
  • squidの設定
  • postfixの設定
  • pptpdの設定
    • /etc/pptpd.conf
    • /etc/ppp/{pptpd-options,chap-secrets}

設定ファイルはのちほど

Raspberry Piのイメージ(Raspbian)をmount

メモしておく
イメージの内容変更は未テスト

% unzip 2013-02-09-wheezy-raspbian.zip
Archive:  2013-02-09-wheezy-raspbian.zip
inflating: 2013-02-09-wheezy-raspbian.img
% sudo /sbin/kpartx -av 2013-02-09-wheezy-raspbian.img
add map loop0p1 (253:3): 0 114688 linear /dev/loop0 8192
add map loop0p2 (253:4): 0 3665920 linear /dev/loop0 122880
% sudo /sbin/fdisk /dev/loop0

Command (m for help): p

Disk /dev/loop0: 1939 MB, 1939865600 bytes
255 heads, 63 sectors/track, 235 cylinders, total 3788800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

      Device Boot      Start         End      Blocks   Id  System
/dev/loop0p1            8192      122879       57344    c  W95 FAT32(LBA)
/dev/loop0p2          122880     3788799     1832960   83  Linux

Command (m for help): q
% sudo mount /dev/mapper/loop0p2 /mnt/tmp

解除するとき

% sudo umount /mnt/tmp
% sudo /sbin/kpartx -dv 2013-02-09-wheezy-raspbian.img
del devmap : loop0p2
del devmap : loop0p1
loop deleted : /dev/loop0

CentOSでSELinuxの修復

SELinux無効時にyumでインストールしたせいか

% sudo /etc/init.d/iptables restart
ファイアウォールルールを適用中:                            [  OK  ]
チェインポリシーを ACCEPT に設定中filter                   [  OK  ]
iptables モジュールを取り外し中                            [  OK  ]
iptables ファイアウォールルールを適用中: iptables-restore v1.3.5:
iptables-restore: unable to initializetable 'filter'

Error occurred at line: 3
Try `iptables-restore -h' or 'iptables-restore --help' for more
information.
                                                           [失敗]

と言われる
audit.logをみるとSELinuxのせいみたいで
Permissiveにすると問題なくrestartできる
messagesをみるとntpもコケているみたいで
めんどうくさいなと思ったので

% sudo /sbin/fixfiles restore
/sbin/setfiles:  labeling files under /
*******************************************************************************
************************************************************
matchpathcon_filespec_eval:  hash table stats: 135155 elements,
35173/65536 buckets used,longest chain length 22
/sbin/setfiles:  labeling files under /var
**matchpathcon_filespec_eval:  hash table stats: 2044 elements,
1336/65536 buckets used, longest chain length 4
/sbin/setfiles:  labeling files under /boot
matchpathcon_filespec_eval:  hash table stats: 26 elements, 26/65536
buckets used, longest chain length 1
/sbin/setfiles:  Done.

としたらなおった

CentOS6のSELinux Enforcingでrailsのlogrotate

railsはpassengerで動かしていて
logrotateの設定ファイルは以下

/var/www/rails/log/production.log {
    #create 0644 nobody nobody
    missingok
    notifempty
    sharedscripts
    delaycompress
    postrotate
        /bin/touch /var/www/rails/tmp/restart.txt
    endscript
}

わざわざnobodyを指定しなくても大丈夫だった

ただしlogrotateの権限logrotate_tで
ログなどを(読み|書き)込めるように
/var/www/rails/log/以下

/var/www/rails/tmp/restart.txt
httpd_log_tにしてしておく必要がある

またディレクトリの表記を"*"にすると権限がなくて
読み込めないことがあるので注意

Shibboleth-SPをSELinuxのEnforcingでうごかす

うごかすためのバッドノウハウ

module shibd 1.0;

require {
        type var_run_t;
        type httpd_t;
        type initrc_t;
        class sock_file write;
        class unix_stream_socket connectto;
}

#============= httpd_t ==============
allow httpd_t initrc_t:unix_stream_socket connectto;
allow httpd_t var_run_t:sock_file write;

単にソケットファイルにhttpd_tのプロセスからつなぎたいだけ
ちゃんとしたtargetedでpolicyがでてほしい

去年(2011年6月)設定してたのですが
忘れてて思い出すまでえらく悩んだので
ちゃんと忘れずに書こうと思ったのでした

追記2012-12-17
これやるとlocalhostで動作しているMySQL
allow_user_mysql_connect
なしでもsocket通信できてしまう
なんだかやっぱりばっどのうはうだ

TeX Live 2012をSELinux Enforcingで動かす

TeX Live 2012をCentOS6にインストール - kame-tの日記
の続きで
TeXLiveは/usr/local/texlive
にインストールされるが
ちゃんとラベルを貼らないとSELinuxではうごかないよという話

1. /usr/local/の他のディレクトリと同様にデフォルトは「usr_t」にする

% cd /usr/local
% sudo chcon -R -t usr_t ./texlive

2. 実行ファイルは「bin_t」にする

% cd /usr/local/texlive/2012
% sudo chcon -R -t bin_t ./bin
% sudo chcon -R -t bin_t ./texmf/scripts
% sudo chcon -R -t bin_t ./texmf-dist/scripts
% sudo chcon -t bin_t ./texmf/web2c/mktexdir
% sudo chcon -t bin_t ./texmf/web2c/mktexnam
% sudo chcon -t bin_t ./texmf/web2c/mktexupd
% sudo chcon -t bin_t ./texmf/texconfig/tcfmgr

# bin/とかscripts/とかに加えてaudit.logとかで目についたものを
# 変更しているが実際はfindとか使って
# 実行権限のあるファイルを検出すべきかも

特に一般ユーザでtexliveをインストールしたせいか
一部「user_tmp_t」になっているファイルがあり
# インストール時に生成したファイルか?
そんなラベルではhttpdから読めないので
platexとかdvipdfmx叩くとエラーになるので要注意

--/var/log/httpd/error_log--
/usr/local/texlive/2012/texmf-var/web2c/eptex/platex.fmt: Permission denied

なのでtexliveをアップデートする際には注意が必要かも
# まだアップデートしたことないので

TeX Live 2012をCentOS6にインストール

TeX Live - TeX Users Group
Installing TeX Live over the Internet - TeX Users Group
Quick install - TeX Live - TeX Users Group

実はCentOS6にはtexliveという
パッケージがあるが2007で
日本語に難があるらしいので
これはアンインストール
その後上記のインストール方法に書かれた方法で
2012のパッケージをインストール

% wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
% tar xvzf install-tl-unx.tar.gz
% cd install-tl-20121125  #ディレクトリ名は違うかと
% sudo ./install-tl

するとデフォルトで/usr/local/texliveに入る

/usr/local/texlive/2012
は触らず
/usr/local/texlive/texmf-local/tex/latex/local
にローカルなstyを入れて

% sudo mktexlsr

した
ちなみに実行ファイルは/usr/local/texlive/2012/bin/x86_64-linux
にあるのでPATHを通すのを忘れずに

あとパッケージのアップデートは

% sudo tlmgr update --all
% sudo tlmgr update --self

下記の先人の方が非常に参考になりました
CentOS 6.3にGhostscript 9.06とTeXLive 2012をインストールする - どこかWiki
フォント埋め込みに関して
TeX/Font/MapFile/KanjiMap - 東京大学大学院人文社会系研究科/文学部西洋古典学研究室の学生有志によるWikiページ