星期六, 10月 10, 2009
Upgrade colinux from 0.7.3 to 0.7.4
Upgrading from coLinux 0.7.2 and before
-- Some dev distries increase eth1, eth2, eth3, ... on every boot.
Typicaly have no network, but can see it with "cat /proc/net/dev".
As workarrount set an unique MAC address for all network interfaces
in config file. Or disable udev.
Debian: Remove all entries from /etc/udev/rules.d/z25_persistent-net.rules
So I just follow the instruction to delete all the content in above file, then work.
There could be two choices:
vi /etc/udev/rules.d/z25_persistent-net.rules
OR
vi /etc/udev/rules.d/70-persistent-net.rules
星期六, 8月 26, 2006
move to csdn
新的位置
http://blog.csdn.net/mike0
在blogger上貼代碼還真是麻煩,csdn用fckeditor,貼代碼簡單多了,可以省下不少時間
星期二, 8月 22, 2006
NeXTSTEP 3 Demo
A VHS ripoff showing a demo of NeXTSTEP Release 3 by Steve Jobs. Although the demo Steve shows is very common today, it's a fantanstic job in that time. Very inspired and encouraged. |
星期日, 8月 20, 2006
install bakefile 2.0 by installer on windows
install it
test code reference here
---test msvc---
vcvas32
nmake /f makefile.vc clean
nmake /f makefile.vc DEBUG=1
hello
---test msvc6prj---
bakefile -f msvc6prj hello.bkl
open dsw and build
caution default setting is Release
---test mingw---
SET PATH=C:\MinGW\bin;%PATH%
mingw32-make -f makefile.gcc clean
mingw32-make -f makefile.gcc
hello
install bakefile 2.0 from source code on windows fail
download swig 1.3.29
decompress
install bakefile
downlaod bakefile-0.2.0.tar.gz
decompress
modify makefile.vc
---------------------
PYTHONDIR=c:\python24
PYTHONVERSION=24
---------------------
nmake -f makefile.vc clean
nmake -f makefile.vc
把source code下的
output, presets, rules和
src下的*.exe *.py *.pyd
複製至PYTHONDIR(c:\python24)下
test code reference here
執行c:python c:bakefile.py -f msvc hello.bkl
出現錯誤
Z:\mike\test\bakefile\hello>usage: bakefile.py [options] inputfile.bkl
bakefile.py: error: invalid format
available formats are:
Z:\mike\test\bakefile\hello>
install bakefile 2.0 from source code on linux
apt-get install python2.3-libxml2
apt-get install python2.3-dev
wget http://keihanna.dl.sourceforge.net/sourceforge/bakefile/bakefile-0.2.0.tar.gz
tar xvfz bakefile-0.2.0.tar.gz
cd bakefile-0.2.0
./configure
make
su
make install
ln -s /usr/local/share/aclocal/bakefile-lang.m4 bakefile-lang.m4
ln -s /usr/local/share/aclocal/bakefile.m4 bakefile.m4
exit
test
---hello.c---
#include <stdio.h>
int main()
{
printf("Hello, world!\n");
return 0;
}
---hello.bkl---
<?xml version="1.0"?>
<makefile>
<include file="presets/simple.bkl"/>
<exe id="hello" template="simple">
<sources>hello.c</sources>
</exe>
</makefile>
---configure.ac---
AC_PREREQ(2.53)
AC_INIT(aclocal.m4)
AC_CANONICAL_SYSTEM
AC_ARG_ENABLE(debug,
[ --enable-debug Enable debugging information],
USE_DEBUG="$enableval", USE_DEBUG="no")
if test $USE_DEBUG = yes ; then
DEBUG=1
dnl Bakefile doesn't touch {C,CPP,CXX,LD}FLAGS in autoconf format, we
dnl have to do it ourselves. This will work with many compilers
dnl (but not all, proper configure script would check if the compiler
dnl supports it):
CFLAGS="$CFLAGS -g"
else
DEBUG=0
fi
AC_BAKEFILE([m4_include(autoconf_inc.m4)])
AC_OUTPUT([Makefile])
------
bakefile -f autoconf hello.bkl
bakefilize --copy &&amp;amp; aclocal && autoconf
./configure --help
./configure --enable-debug
make
./hello
星期六, 8月 19, 2006
visual studio 6 visual c++ version
vc6 original
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
usage: cl [ option... ] filename... [ /link linkoption... ]
vc6 sp6
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
usage: cl [ option... ] filename... [ /link linkoption... ]
links:
- Visual Studio 6 Service Pack 6
- Service Pack 6 Full Version - Single Download
- Service Pack 6 Full Version - Multiple Part Download
星期五, 8月 18, 2006
Linux I/O Redirection
make -f Makefile.x86 1>make.log 2>&1
把stderr轉向到stdout,把stdout轉向到make.log
make -f Makefile.x86 1 > out.txt 2 > err.txt
把stdout轉向到out.txt,stderr轉向到err.txt
星期四, 8月 17, 2006
轉貼-QEMU in ubuntu(vmware)
QEMU in ubuntu(vmware)
現在 IE 的市佔率還是在高點, 頁面設計還是得要以 IE 為主, 以 Linux 當 Desktop 的情況, 還是會遇到不得已, 非得要灌 Windows 的狀況(在 Linux 裝 IE 看起來實在太辛苦了)
不過 qemu 在灌 XP, 實在是異常的辛苦(光灌放在那邊就等了 8 個多小時才灌好)..
以下來記錄一下整個流程.
ubuntu 可以很簡單的使用 apt-get install qemu 來裝(不過因下述原因, 最後還是用官方版的, 就不用此 qemu package).
安裝完成後, XP開啟後速度太慢, 需要 kqemu 來加速(速度差很多, kqemu 據說是能讓速度到跟電腦平常速度差不多), 但是 debian package 的版本無法支援 kqemu, 所以最後把 ubuntu 的 qemu 移除了, 直接去官方網站抓qemu-0.8.1-i386.tar.gz(Binary distribution for linux-i38) 和 kqemu-1.3.0pre9.tar.gz 這兩個來用.
我測試的結果, 加上 kqemu 是快很多, 但是還是跟電腦平常使用上差蠻多的就是了.
安裝方法很簡單. 如下很快就可以裝好
- tar zxvf kqemu.xxxx.tar.gz
- cd kqemu.xxx/;./configure;make;make install
- # qemu 的安裝方法可以有兩種, 官方說法是 cd /;tar zxvf qemu.xxxx.tar.gz 即可.
- # 但是個人習慣還是放在自己目錄下比較好, 所以下面有另外介紹另一種做法
再來就是整個建置的步驟如下:
1. 建立 img 檔(之後所有運作(虛擬電腦)都會在此 img file 中)
qemu-img create /backup/winxp/windows.img 15000M
2. 再來光碟開機, 開始安裝(-win2k-hack 是參數, 不管你裝 98 還是 XP 都一樣用此參數)
qemu -hda /backup/winxp/windows.img -cdrom /dev/cdrom -localtime -boot d -win2k-hack -m 512
3. 再來就是漫長的等待安裝完成.
4. 設定網路, 需要再安裝 apt-get install bridge-utils
5. 再來就是照以下的 script, 跑完網路就設好(XP 就可以使用網路)
#!/bin/bash
##iface bridge inet
ifconfig eth0 0.0.0.0 promisc up
# 建立一個名為 bridge 的 Bridge 介面
brctl addbr bridge
# 轉送延遲時間,Bridge 切換至 listening 及 learning 狀態所需時間
# Bridge 會花一點時間來記錄每個實體介面的 MAC Address
brctl setfd bridge 0
# 傳送 STP Hello 封包的頻率。設定為 0 因為我們不使用 STP 這個功能
brctl sethello bridge 0
# 關閉 spanning tree protocol 功能。用不著...
brctl stp bridge off
brctl addif bridge eth0
ifup bridge
dhclient bridge
6. 在整個安裝結束後, 之後要再開啟 Windows 的方法:
qemu -hda /backup/winxp/windows.img -localtime -m 512
7. 要全營幕顯示的方法 ctrl+alt+f 就可以切換, ctrl+alt 可以跳出 qemu 的視窗
再來簡單寫一下我目前的安裝法和使用的 Script.
- mkdir ~/qemu;cd qemu
- tar zxvf qemu.xxx.tar.gz;tar zxvf kqemu.xxx.tar.gz
- mv kqemu.xxx kqemu;cd kqemu;./configure;make;make install
- cd ~/qemu;cp kqemu/kqemu.ko ~/qemu/
- 寫以下 Script: qemu.sh, 之後只要執行此 script 即可進入 qemu
- Script:
#!/bin/bash
$HOME/qemu/kqemu/install.sh
modprobe kqemu
ln -s $HOME/qemu/usr/local/share/qemu/ /usr/local/share/qemu
ifconfig eth0 0.0.0.0 promisc up
brctl addbr bridge
brctl setfd bridge 0
brctl sethello bridge 0
brctl stp bridge off
brctl addif bridge eth0
ifup bridge
dhclient bridge
$HOME/qemu/usr/local/bin/qemu -hda /backup/winxp/windows.img -localtime -m 512 - 之後只要執行 qemu/qemu.sh 即可啟動
來附張圖
參考網站:
轉貼-遠端執行命令、多台機器管理(Push.sh)
當手上有 1 台機器, 管理的方法是 ssh 到那台機器做事.
當手上有 5 台機器, 管理的方法就會想要遠端執行, 就會使用
用法: ssh 主機名稱 "要執行指令"
ssh hostname 'sudo cp http.conf /usr/local/apache/conf/'
ssh hostname "ls"
ssh hostnmae "sudo /usr/local/apache/bin/apachectl restart"
當手上有 30 台機器的時後, 管理的方法就會如下:
用法: for i in i的值; do 目前機器要下的命令 '遠端機器要下的命令'; done;
for i in 1 2 3; do scp xxx.conf w$i.hostname:; done;
for i in 1 2 3; do /usr/bin/ssh w$i.hostname 'sudo mv xxx.conf /usr/loca/conf'
for i in 1 2 3; do /usr/bin/ssh w$i.hostname 'sudo ls /'; done;
1 2 3 ... 自己寫要幾台都行, 可以改成自己其它取的值
注意: 目前機器要下的命令, 不要用 " 或 ' 包起來, 只有要給 遠端機器 的指令才要用 " 或 ' 包起來.
當我覺得這樣子已經很懶的時後, 總會有個 強者我同事 說~ 這樣子還不夠, 他已經寫成一隻 Script, 專門做前端上百台 Push 的動作. 有興趣想更加了解此強者, 可以參觀 他的blog: George Lee's blog
以下來看一下此 script, push.sh:
#!/bin/sh
#for A in 8 9 10 11 12; do
A=1;
MAX=12;
PREFIX=w;
SOURCE="/xxx/http.conf";
REMOTEDIR="/usr/local/apache/conf"
while [ $A -le $MAX ]; do
HOST="$PREFIX$A.hostname";
echo "$HOST :";
rsync -arvz --rsh=ssh $SOURCE $HOST:$REMOTEDIR/.
#sudo rsync -arvz --rsh=ssh $SOURCE $HOST:$REMOTEDIR/.
#scp parse_search.php $HOST:.
#rsync -arvz --rsh=ssh xxx.so $HOST:.
#rsync -arvz --rsh=ssh xxx.conf $HOST:$REMOTEDIR/.
A=`expr $A + 1`;
done;
雖然以上我都有做過一些馬賽克, 但是有些歷史遺蹟還是要把他留下來, ex: for A in 8 9 10 11 12; do, 看此行就知道已經經歷過上面的寫到 "管理 30 台機器" 的風風雨雨, 然後才轉變到現在, 寫一支超方便的 Script 來用, 不愧是長輩 Orz....
此 Script 的用法很簡單, 只要以下步驟即可使用:
- 把此 Script 抓下來, 存成 push.sh
- 修改此 Script 的粗體字的地方
- chmod +x push.sh
- ./push.sh
- A, MAX: 從 1 ~ 12 (如上範例會變成 w1, w2 ....w12 )
- PREFIX: 機器名字前面要叫什麼字, 加了後會類同( w1, w2 ....)
- SOURCE: 現在機器下的檔案在哪邊
- REMOTEDIR: 打算要將此檔放到遠端機器哪邊
- HOST的 hostname: 遠端主機的名字
注意:
- 此 Script 只限使用在有機器名字是連續數字的狀況 PS: A=`expr $A + 1`; 此行會將值一直加 1
- 此 Script 有很多活用的範例, 都 # 註解掉, 但可以簡單看一下程式, 會是相當方便的工具
- 若那 機器名稱(數字)列表 中, 有機器不存在或死掉, 不用擔心, 程式還是會繼續跑下去, 只是會有錯誤訊息叫幾聲罷了~