Feeds:
文章
留言

Archive for 2014 年 11 月

發生類似如下錯誤

File “subprocess.pyc", line 480, in call
File “subprocess.pyc", line 633, in __init__
File “subprocess.pyc", line 842, in _execute_child
WindowsError: [Error 2] 系統找不到指定的檔案。

解法

call() 加上 shell=True

 

參考資料

http://stackoverflow.com/questions/9531683/problems-using-subprocess-call-in-python-2-7-2-on-windows

Read Full Post »

py2exe 打包含有 PIL 程式時出現找不到 _imaging C module

需要手動將 _imaging.pyd, _imaging.dll 或 _imaging.so 手動加入

參考資料

http://effbot.org/zone/pil-imaging-not-installed.htm

Read Full Post »

Selenium Chrome 修改 UserAgent

今天需要自動化Chrome模擬mobile登入系統,Google許久終於找到解法,

1. Chrome Driver 要 2.12+

2. 使用 chrome_options

使用範例

參考資料

[1] http://simply-tutorial.com/blog/2014/07/10/selenium-webdriver-set-browsers-user-agent-and-proxy/

[2] https://sites.google.com/a/chromium.org/chromedriver/mobile-emulation

[3] http://chromedriver.storage.googleapis.com/index.html

[4] https://realpython.com/blog/python/headless-selenium-testing-with-python-and-phantomjs/

[5] https://coderwall.com/p/9jgaeq/set-phantomjs-user-agent-string

 

Read Full Post »

如同[1]的描述,我將 /var/lib/docker 搬移到 /home/docker 並建立 soft link

結果出現 Error response from daemon: Error running DeviceCreate (createSnapDevice) dm_task_run failed

如[1]的解法

1) service docker stop

2) thin_check /home/docker/devicemapper/devicemapper/metadata

3) thin_check –clear-needs-check-flag  /home/docker/devicemapper/devicemapper/metadata

4) service docker start

 

參考資料

[1] http://blog.eye48.com/post/98551740424/when-docker-io-eats-up-your-disc-space

Read Full Post »

Docker 上的 SSHD 無法運作

使用 sshd -ddd  啟動服務後,當ssh連線驗證密碼通過後立即斷線,於 sshd 端發現有

PAM: pam_open_session(): Permission denied

雖然網路上有許多說法, 不過我的問題在[1]找到解法

就是修改 /etc/ssh/sshd_config 的 UsePAM no


參考資料

[1] http://stackoverflow.com/questions/18173889/cannot-access-centos-sshd-on-docker

Read Full Post »

Docker 真是開發的神器,玩上癮啦…. 再來個 PHP5.4 擴展編譯環境

## run centos6 container
docker pull centos:centos6
docker run -it centos:centos6 /bin/bash

## 更新 container 相關套件
依據[1]描述, CentOS6 要用 yum 安裝 php5.4 需要先安裝下面這個套件
rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm

安裝 yum 開發套件
yum install php54w-devel gcc gcc-c++

## commit 和 save 就不說啦, 參考之前的文章

參考資料
[1] https://webtatic.com/packages/php54/

Read Full Post »

之前"編譯 Qemu 2.1.2“一文提到成功編譯了 Qemu,所以我想保存這個編譯環境可是又不想用 VMWare/VirtualBox, 可以考慮使用 docker, 我的建立流程如下

## 建立 centos6 container

docker pull centos:centos6

docker run -it centos:centos6 /bin/bash

## 以下是 container 下執行的命令

yum install tar bzip2 gcc libtool flex bison ncurses-libs ncurses-devel zlib-devel SDL-devel libpcap-devel glib2-devel SDL libpng12

wget http://wiki.qemu.org/download/qemu-2.1.2.tar.bz2
tar xfj qemu-2.1.2.tar.bz2
cd qemu-2.1.2

./configure --prefix=/usr \
            --sysconfdir=/etc \
            --docdir=/usr/share/doc/qemu-2.1.2 \
            --target-list=x86_64-softmmu

make

## 建立 image

# 取得 conatiner id

docker ps -q

# 94fa1fc5ae9a 換成自己的 container id

docker commit 94fa1fc5ae9a centos6/qemu-devel

# 匯出成檔案

docker save -o /tmp/centos6.qemu-devel.docker.tar centos6/qemu-devel

以後就可以將 centos6.qemu-devel.docker.tar 放到任意主機的 docker 運行

## 還原

docker load -i /tmp/centos6.qemu-devel.docker.tar

太讚啦~

Read Full Post »

依據 libguestfs 官方[1]架構說明

20141112-02

底層透過 qemu 實現存取 qcow2, 因此 qemu 版本很重要,

libguestfs 套件透過 guestmount 指令可將 qcow2 image 掛載成 linux 的目錄,如

guestmount -a /home/images/test.qcow2 -i /tmp/vm1

解除掛載直接使用 umount 指令,如

umount /tmp/vm1

因此可直接修改掛載目錄下的檔案,當 umount 時,所有異動會直接儲存到 qcow2 image

可避免重複產生 image 的問題

如果使用時遇到 “‘image’ uses a qcow2 feature which is not supported by this qemu version: QCOW version 3″ 錯誤,可參考"編譯 Qemu 2.1.2“一文更新底層 qemu

如果對於掛載過程有興趣或是要除錯,可加上下面的環境變數

LIBGUESTFS_DEBUG="1″

LIBGUESTFS_TRACE="1″

參考資料

[1] http://libguestfs.org/guestfs-faq.1.html#debugging-libguestfs

Read Full Post »

編譯 Qemu 2.1.2

今天遇到使用 yum 安裝的 qemu-img 0.12.1 無法正確讀取  qcow2 ,錯誤訊息如下

“‘image’ uses a qcow2 feature which is not supported by this qemu version: QCOW version 3″

可是透過 yum 也無法安裝 2.x

於是嘗試編譯紀錄一下

## 編譯環境

#  Linux controller 2.6.32-431.11.2.el6.x86_64

# gcc version 4.4.7

yum install gcc libtool flex bison ncurses-libs ncurses-devel zlib-devel SDL-devel libpcap-devel glib2-devel SDL libpng12

## 編譯

wget http://wiki.qemu.org/download/qemu-2.1.2.tar.bz2
tar xfj qemu-2.1.2.tar.bz2
cd qemu-2.1.2

./configure --prefix=/usr \
            --sysconfdir=/etc \
            --docdir=/usr/share/doc/qemu-2.1.2 \
            --target-list=x86_64-softmmu

make

## 安裝
make install

cd /usr/libexec/
mv qemu-kvm qemu-kvm.0.12.1
ln -s /usr/local/bin/qemu-system-x86_64 qemu-kvm

## 測試

20141112-01

參考資料

[1] http://www.linuxfromscratch.org/blfs/view/svn/postlfs/qemu.html

Read Full Post »