2014-03-20

Python3 のインストールなど

RHEL6にPython3のインストール, その他のツールキットのインストールを行う手順を説明する.

インストール先は, /usr/local/python3とし, 他のパッケージと干渉しないように配慮する.

  1. python-3.4 をダウンロード, インストール.
    ここから現在最新のPython-3.4.0.tgzをダウンロード.
    $ tar xzf Python-3.4.0.tgz
    $ cd Python-3.4.0
    $ ./configure --prefix=/usr/local/python3
    $ make
    $ sudo make install
    
  2. setuptools のインストール
    $ wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
    $ sudo /usr/local/python3/bin/python3 ez_setup.py
  3. SIPをダウンロードし, インストール.
    $ tar xzf sip-4.15.5.tar.gz
    $ cd sip-4.15.5
    $ /usr/local/python3/bin/python3 configure.py
    $ make
    $ sudo make install
    
    $ cd PyQt-x11-gpl-4.10.4 $ /usr/local/python3/bin/python3 configure-ng.py --qmake /usr/bin/qmake-qt4 --consolidate --confirm-license $ make
  4. pipとその他のライブラリ
    $ sudo /usr/local/python3/bin/easy_install pip
    $ sudo /usr/local/python3/bin/pip install lxml
    $ sudo /usr/local/python3/bin/pip install beautifulsoup4
    $ sudo /usr/local/python3/bin/pip install sqlalchemy
    $ sudo /usr/local/python3/bin/pip install alembic
    $ sudo /usr/local/python3/bin/pip install sqlite
    $ sudo /usr/local/python3/bin/pip install chardet
    
    
qt-devel
qtwebkit-develepel
openssl-devel
libxslt-devel
sqlite-devel
libuuid-devel

以下のコードでセグメンテーション違反...

from PyQt4 import QtCore, QtGui
import uuid
print('4 uuid1=%s'%str(uuid.uuid1()))

Linuxの端末でのコントロール操作

Ctrl+CSIGINT割り込み
Ctrl+DEOF
Ctrl+SSIGSTOP一時停止
Ctrl+QSIGCONT再開
Ctrl+\SIGQUIT終了

2014-03-19

SL6 のインストールから samba サーバの構築まで

SL6をインストールし, sambaサーバを構築する方法をメモしようと思ったが, まだ途中.
  1. Scientific Linux 6 のインストール
    1. このページの「Latest Supported Releases」からインストール用メディアをダウンロードし, CDまたはDVDに書き込む. i386かx86_64かの選択は, マシンのCPUによる. 32bit (Jonah以前) ならi386, 64bit (Merom以降) ならx86_64を選ぶ. 初めての場合, *-Install-DVD.iso がおすすめ. *-boot.iso でも良いが, 設定項目が多い.
    2. インストールを行う.
    3. パーティションは, /homeをできるかぎり大きめに, /は4GBから8GB程度で良い.
    4. 構成は, Minimum.
  2. rootでログインし, 管理者用アカウントを追加.
    1. 以下のように表示されたら, ユーザ名「root」とインストール時に設定したパスワードを入力する.
      Scientific Linux release 6.5 (Carbon)
      Kernel 2.6.32-431.el6.i686 on an i686
      Login:
      
    2. ユーザを追加 (ここではtaroとしたが, 何でも良い. 通常は管理者の名前にする.)
      # adduser taro
      # passwd taro
      New password: 
      Retype new password: 
      
      (#以降の部分を入力する)
    3. taro を sudoers に追加する.
      # visudo
      エディタ (vi) が起動するので, 以下の1行を書き加える.
      taro ALL=(ALL) ALL
      viの使い方を簡単に述べる: G (shfitを押しながら) を押して最下行に移動, oを押して入力モードを開始, 上記1行を入力し, ESCを押してコマンドモードに戻る. 「:wq」と入力して保存・終了. コマンドモード中は, jk で上下移動, hlで左右移動である.
    4. 一度ログアウト
      # logout
      (Ctrl+Dを押しても良い)
    5. 追加したユーザでログインし, 以下の作業を行う.
    これ以降の操作は, SSHでログインし, 他のマシンからでも可能. Windows用のSSHクライアントもある.
  3. まずはアップデート
  4. $ sudo yum update
    $ sudo shutdown -r now
    アップデートをすべて反映させるため, 再起動する. (たいていのアップデートには再起動は不要だが, kernel などのアップデートには再起動が必要.)
  5. 必要なパッケージをインストール
  6. $ sudo yum install ntp samba man
  7. NTPの起動
  8. $ sudo chkconfig ntpd on
    $ sudo service ntpd start
    (1行目は, システム起動時にNTPDが起動するように設定. 2行目は, NTPDを (すぐに) 起動.
  9. sambaの起動
  10. $ sudo chkconfig smb on
    $ sudo service smb start
    
  11. sambaでアクセスする際のアカウントを作成 (この例ではkyoto)
  12. $ sudo adduser kyoto
    $ sudo smbpasswd -a kyoto
    
    複数のアカウントを作成する場合, 上記2コマンドを繰り返す.
  13. SElinuxの設定
  14. $ sudo setsebool -P samba_enable_home_dirs 1
  15. ファイアウォールの設定
    $ sudoedit /etc/sysconfig/iptables
    以下の太字の部分を書き足す.
    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp -m multiport --dports 139,445 -j ACCEPT
    -A INPUT -j REJECT --reject-with icmp-host-prohibited
    -A FORWARD -j REJECT --reject-with icmp-host-prohibited
    COMMIT
    
    $ sudo service iptables reload
  16. IPアドレスの設定など
  17. 固定IPアドレスを設定を /etc/sysconfig/network-scripts/ifcfg-eth0 に記述する. HWADDR などはそのままにする.
    DEVICE="eth0"
    BOOTPROTO="static"
    HWADDR="xx:xx:xx:xx:xx:xx"
    NM_CONTROLLED="no"
    ONBOOT="yes"
    TYPE="Ethernet"
    BROADCAST="192.168.0.255"
    DNS1="192.168.0.1"
    DNS2="8.8.4.4"
    IPADDR="192.168.0.11"
    NETMASK="255.255.255.0"
    
  18. ホスト名とデフォルトゲートウェイを /etc/sysconfig/network に記述する.
    NETWORKING=yes
    HOSTNAME=host1.example.com
    GATEWAY=192.168.0.1
    

2014-03-18

NTT docomoのメールをIMAPで受信

いつのまにか, docomo のメールをIMAPで取得, SMTPで送信できるようになっていた. このサイトに解説がある. この解説はなくなっていた.
報道資料からの引用: 株式会社NTTドコモ(以下、ドコモ)は、spモードメール®をクラウドに対応させた「ドコモメールTM」をパソコン等のWEBブラウザやIMAP4対応のメールソフトからでも同一のメールアドレス(xxxx@docomo.ne.jp)で利用できるように、2013年12月17日(火曜)に機能拡充します...

やってみようと思ったけれど, アプリ「SPモードメール」の設定で「docomo ID利用設定を有効」にする必要があり, SPモードメールをインストールしようとしたけれど「サーバーとの通信にエラー」でインストールに失敗した. 日を改めて, もう一度やってみようと思う.

2014-03-13

IEEE/IEICE/IPSJ論文の個人ウェブサイト掲載

IEEE, IEICE ともに, 個人のウェブサイトに論文のコピーを掲載することを許可している. しかし, 条件などが異なっている.
IEEEIEICE
掲載可能なデータ 投稿論文 (IEEExploreのPDFは不可)
... only the accepted version...
出版社版PDF (著者最終版は不可)
出版社版と著者最終版との違いによる混同を防ぐためらしい

IPSJ は, 掲載媒体に関して特に具体的な条件はなく, 申告不要で「著作者個人の」ウェブサイトに掲載して良い. しかし, 利用上の注意事項を明記する必要がある.

参考

  • Top 10 FAQ on IEEE Publishing Policies and Tools for Authors
  • IEICEの利用申請基準
  • IPSJの著作権規程, FAQ
  • 2014-03-12

    HSPICE: .NODESET で全てのサブサーキットのノード電圧を設定

    HSPICEでディジタル回路の過渡解析を行う時, 初期条件の収束に時間がかかることがある. FFなどに含まれるループでの状態が確定しないことが一因であることがある.

    このような場合, .nodeset を使用して初期電圧を与えると改善するらしい. 以下に例を示す.

    .nodeset V(in)=0.0 subckt=my_dff
    

    2014-03-11

    不審なEメールのReceivedヘッダ

    届いたメールが疑わしい場合 (送信元の偽装などが疑われる場合), ヘッダを確認するべきである. 上の方にある Received をみると, どのホストからメールが届いたのかがわかる.
    Received: from 209.203.76.xx.cybertimebroadband.com (unknown [209.203.76.xx])
            by myhost.example.com (Postfix) with ESMTP id xxxxxxxxxx
            for ; Tue, 11 Mar 2014 08:04:07 +0900 (JST)
    From: hoge@example.net
    
    このfromの括弧内が, メールを送信したホストのIPアドレス. unknown の部分は送信元が自称するホスト名. カッコの左側はIPアドレスの逆引き結果である.

    Received: from... の部分と From: で書かれたメールアドレスのドメイン部分とに関連がない場合, 送信元偽装が考えられる.

    さらに詳しく調べたい場合, From のメールアドレスのドメインの TXT レコードを調べると良い. 上記の例の場合, ドメインは example.net なので,

    dig example.com txt
    
    で TXT レコードを調べる. v=spf で始まるレコードが出てくるので, SPFの文法に従って, 確認すればよい.