僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
わざわざ貼りつけたのは
@options['images.dir'] を変えてうまくいったかどうかの確認。
うまく行かなかった(変えた先に追記されない)ので、
一旦元に戻す。
tdiaryのディレクトリには、設定ファイルや
データファイルを置きたくない(移行が面倒)...
脆弱性情報を受けて2.0.2 にあげた。
tdiary2.0.0 のディレクトリから
tdiary.conf と .htaccess を2.0.2 にコピーし、
ディレクトリ名をすげかえる。
以上、書き込みテスト。
プラグインとimageのディレクトリもコピーが必要だった。
ひとしきり滝汗。
ジュンク堂で買ってきた本をたよりに、なんとか入れた。
使用したPC(Plamo-4.2+α、β、γ)にphp4がうまく入らず、面倒になってOSごと一新。
とりあえずは出るものは出たが、当然まだ空っぽ。
これもインストールだけ。こっちはPlone-2.5/CMFPlone/INSTALL.txtと 睨めっこしてなんとか動作させた。
"入れるな"とか注意書きのある"Five"ディレクトリをコピーしてしまうと、
本当にZopeが立ち上がらなくなったりする。
"Root Folderでコンテンツを作るな"とか書いてあったのかもしれない。
よく分からないエラーを吐くのを見て、ようやく納得。
それにしてもCeleron466MHz+128MBのPlamo-4.2にとって、 Python-2.4.2+Zope-2.9.4 +Plone-2.5の協調動作は 素敵に重い。
一行。
convert(1)。
$ ls -l lxp* -rw-r--r-- 1 USER GROUP 59454 2005-08-23 05:42 lxpws.pdf $ convert lxpws.pdf lxpws.png $ ls -l lxp* -rw-r--r-- 1 USER GROUP 8642 2007-07-22 23:54 lxpws-0.png -rw-r--r-- 1 USER GROUP 12003 2007-07-22 23:54 lxpws-1.png -rw-r--r-- 1 USER GROUP 10700 2007-07-22 23:54 lxpws-2.png -rw-r--r-- 1 USER GROUP 12386 2007-07-22 23:54 lxpws-3.png -rw-r--r-- 1 USER GROUP 12829 2007-07-22 23:54 lxpws-4.png -rw-r--r-- 1 USER GROUP 13157 2007-07-22 23:54 lxpws-5.png -rw-r--r-- 1 USER GROUP 11850 2007-07-22 23:54 lxpws-6.png -rw-r--r-- 1 USER GROUP 11097 2007-07-22 23:54 lxpws-7.png -rw-r--r-- 1 USER GROUP 6653 2007-07-22 23:54 lxpws-8.png -rw-r--r-- 1 USER GROUP 59454 2005-08-23 05:42 lxpws.pdf $ file lxp-0.png lxpws-0.png: PNG image data, 421 x 595, 8-bit grayscale, non-interlaced
display(1)で見ると、acroreaderで100%にした時と、ほぼ同じ大きさで表示される。
拡大表示すると、当然ザラザラになった。convert時に-resize 200%とかやっても、
同様。画像サイズは大きくはなるが、文字は細かくならない。
5.14のbash-3.2を入れようとしたら、
./configure $OPTIONS bash: ./configure: /bin/sh: bad interpreter: Permission denied
色々迷った末、"site:linuxfromscratch.org" でぐぐる。
FAQに載っていた。
$LFSは、user がマウントできるパーティション
では駄目らしい。
/etc/fstabから s/user,// した上でmount しなおす
と、普通に./configure が動くようになった。
恐らくLFSに限らないだろう。
こないだ貰ったCD-R。
起動時オプションはよく分からない。ので
INSPIRON6000ではXが起動すると画面が真っ暗。
外部モニタは1024x768でOK。
VirtualBOXで起動し、sshdをあげ、一般ユーザを追加してログインしてみる。
-bash-2.05b$ uname -a Linux localhost.localdomain 2.6.16-ikakeya005beta \ #1 Sat Mar 8 11:49:47 JST 2008 i686 athlon i386 GNU/Linux
$LANGや、ifconfig -a に混じった日本語など、
所々Vineぽさが。
rpm -q などしてみる。パッケージ数435。
postfix や apache2はあるが、sambaはないらしい。
また、ntfs-3gもない。Windowsのレスキューは、あまり
整えてないみたい。
試験環境のDHCPサーバでイーサネットがlink up しないのは KNOPPIX5以降と同様。
apt-get install dovecot-pop3d して、/etc/dovecot/dovecot.conf を
編集。
Maildir のメールがgetできるようにはなった。
$ grep -v "^ *#\|^$" dovecot.conf protocols = pop3 disable_plaintext_auth = no log_timestamp = "%Y-%m-%d %H:%M:%S " mail_location = maildir:/var/mail/%u/ mail_privileged_group = mail protocol imap { } protocol pop3 { pop3_uidl_format = %08Xu%08Xv } protocol managesieve { sieve=~/.dovecot.sieve sieve_storage=~/sieve } auth default { mechanisms = plain passdb passwd-file { args = $DIR/$PASSWD_FILE } userdb passwd { } user = root } dict { } plugin { }
設定内容はsudo dovecot -n でもわかる。
それより、
ドキュメントを
ちゃんと読まなかったのが祟った。
disable_plaintext_auth = no にも嵌ったが、
それより、
passwd.dovecot の書式にも嵌った。
"PLAIN"が
メタ文字じゃないとは思ってもみなかったからだ。
コピペすれば悩まなかったかもしれないが。
wireshark("pop"でfilteringする)を睨みながら送受信すると、 POPサーバの発する Response description が読めるので、 OutlookExpressの奇天烈なエラー{コード,メッセージ}なんかよりも エラーの原因はずっとわかりやすくなった。
pop3sも試さないと。
適当に検索するまで、どうしても自分では解けなかった。
masquerade と nat の違いは未確認。
いちいち同じIPアドレスを指定するより、primary などと書いた方が
いいみたい。
ip route default gateway $GW ip lan1 address $IP1/$MASK ip lan2 address $IP2/$MASK ip lan2 nat descriptor 1 2 ip lan3 address $IP3/$MASK nat descriptor type 1 nat nat descriptor address outer 1 primary nat descriptor address inner 1 $INNER_1_MIN-$INNER_1_MAX nat descriptor type 2 nat nat descriptor address outer 2 primary nat descriptor address inner 2 $INNER_2_MIN-$INNER_2_MAX
pkg のデータ取得にまず失敗。URLが変わってるらしいが
それに追従できてない。
URLを調べて書き直す。
$ grep -v "^$\|^#" /etc/pkg/FreeBSD.conf FreeBSD: { url: "pkg+http://pkg.freebsd.org/freebsd:12:armv6:32:el:eabi:softfp/latest", mirror_type: "srv", signature_type: "fingerprints", fingerprints: "/usr/share/keys/pkg", enabled: yes }
一応、動作可能なバイナリを貰えてはいるようだ。
$ file `which gawk` /usr/local/bin/gawk: ELF 32-bit LSB executable, ARM, EABI5 version 1 (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, for FreeBSD 12.0 (1200000), FreeBSD-style, stripped $ ldd `which gawk` /usr/local/bin/gawk: libsigsegv.so.2 => /usr/local/lib/libsigsegv.so.2 (0x200c1000) libintl.so.8 => /usr/local/lib/libintl.so.8 (0x200cc000) libreadline.so.6 => /usr/local/lib/libreadline.so.6 (0x200dd000) libncurses.so.8 => /lib/libncurses.so.8 (0x20128000) libm.so.5 => /lib/libm.so.5 (0x20174000) libc.so.7 => /lib/libc.so.7 (0x20200000)
sudoにトラブルは発生しなかった。
$ ldd `which sudo` /usr/local/bin/sudo: libutil.so.9 => /lib/libutil.so.9 (0x2005c000) libsudo_util.so.0 => /usr/local/libexec/sudo/libsudo_util.so.0 (0x20075000) libintl.so.8 => /usr/local/lib/libintl.so.8 (0x2008f000) libc.so.7 => /lib/libc.so.7 (0x20100000)
/tmp が小さすぎて初回のデータ取得に失敗するのは変りがない。
その後は元に戻しても大丈夫だった。
# ip icmp redirect send off
で送信せずにする(黙って中継する)ことができた。
中継機器でtcpdump ether src $MAC_ADDRで確認。
しつこくしつこく年齢算。
余計な一文を削除。
Prelude> ages p c = [(p-c) * 2, p-c, p-c*2]
Prelude> ages 40 18 [44,22,4] Prelude> ages 90 68 [44,22,-46]
まず階乗。
fact x = if x == 1 then 1 else x * fact (x-1)
*Main> fact 5 120 *Main> fact 20 2432902008176640000
それから、1+2+...+n。
Prelude> :{ Prelude| calc n = if n == 1 Prelude| then 1 Prelude| else n + calc (n - 1) Prelude| :}
Prelude> calc 100 5050 Prelude> calc 1000 500500
Haskellのリスト確認。
ghci8.0.1の対話環境では漢字の出力はまだ対応してないかも。
"文字列"は、['文','字','型']のリストであるらしい。
Prelude> "文字型" == ['文', '字', '型'] True
文字列の連結には"++"、リストの要素へのアクセスは "!!"を使う。ゼロ番目から数える。
Prelude> "This is" ++ " a pen." "This is a pen." Prelude> "understand" !! 4 'r'
'文字型' + "文字列" の連結演算子":"がある。
ただし逆順にはできない。
Prelude> 'T' : "his" "This"
Prelude> "Thi" : 's' <interactive>:98:9: error: • Couldn't match expected type ‘[[Char]]’ with actual type ‘Char’ • In the second argument of ‘(:)’, namely ‘'s'’ In the expression: "Thi" : 's' In an equation for ‘it’: it = "Thi" : 's'
リストの比較も可能。左から一つずつ比較するらしい。
当然、数値の比較とは違う場合がある。
Prelude> "1238" > "1248" False Prelude> "128" > "8" False Prelude> "128" > "8" Prelude> 128 > 8 True
あと、リストの一部を返す関数も。
この場合、空リストを喰わせると例外が。
Prelude> head "Head" 'H' Prelude> tail "tAIL" "AIL" Prelude> init "INIt" "INI" Prelude> last "lasT" 'T' Prelude> last "" *** Exception: Prelude.last: empty list Prelude> last [[],[],[]] []
まだ続くが、これで一旦〆ておく。
とカスタマイズ、はしていない。
ここ数日来、セットアップを色々試していた。
インストール先はlxcのstretch。
デフォルトではpingすら入ってない。
vim-tinyとsudoとpythonを入れておく。
作業ユーザを用意し、アクセス元の公開鍵をインストールし、
sshd_configを書き換える。
IPが固定になるよう/etc/network/interfacesを加工する。
親環境の/var/lib/lxc/$LXC/config に固定のネットワーク設定を
追記する。
オリジナルのlxcを用意して、lxc-copy でクローンを作る。
仮想のMACアドレスとホスト名を変えてくれるのはいいけど、/etc/hosts に
ホスト名が入ってない(proftpdが動かなくなった)。
WordPressのセットアップについては、
Debian Wiki を見た。
このとおりであれば、割とすぐ動かせる。
ftpサーバが立ってないのでテーマやモジュールがインストールできない。
立てればいいのだけど、ユーザ名に少し迷った。
Debian Packageが入れたファイルと、ユーザーのファイル
が混ざるとなんか不味そうに思える。
ftpサーバは他所からアクセスを許す必要はないみたい。
www-dataの$HOMEを /srv の下に用意して、wp-content をそこに置く。
/usr/share/wordpress/wp-content の中身をrsyncしておく。
でもこれではアップデートが効かない...
a2dissite、a2ensiteがちょっと便利かも。
iptablesをコンテナの中に書いて、http(s)のアクセス元を
強く制限しておく。
手順を少し楽にするために、ansible のplaybookを色々試す。
USB3.0や2.0のインターフェースに挿して、 dd direct を繰り返していた。
$ time sudo dd if=/dev/zero of=/dev/sdf bs= 4096+0 レコード入力 4096+0 レコード出力 4294967296 bytes (4.3 GB, 4.0 GiB) copied, 213.229 s, 20.1 MB/s real 3m33.264s user 0m0.017s sys 0m1.254s
これでも手持ちのUSBメモリとしては速い方だったっぽい。
もちろん、同じUSBポートに繋いだUSB SSDなら
$ time sudo dd if=/dev/zero of=/dev/sdf bs=1M count=4096 oflag=direct 4096+0 レコード入力 4096+0 レコード出力 4294967296 bytes (4.3 GB, 4.0 GiB) copied, 10.7067 s, 401 MB/s real 0m10.721s user 0m0.013s sys 0m1.072s
例によってiostatをグラフにしていたが、最前のUSB3.0メモリを
USB2.0に挿すと、どういうわけか、
非常に不思議な曲線になった。
偶然を疑ってもう一度試したが、 やはり
見慣れないものとなった。
USB3に挿した結果は、それほどでもないようだけど。
Class4のUSBメモリや、 USB3のSSDなどは普通に素直であった。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。
※ ikakeya製作委員会 [管理人様、はじめましてikakeya製作委員会です オープンソースカンファレンス2008 Kansai で配布させ..]
※ kuzu [フォローありがとうございます。 こちらはデスクトップ用だったんですね。当方の確認不足で失礼しました。 またよろしくお..]