- 先建一個 svn 目錄,用來管理所有的 project
- ~ # mkdir svn ; cd svn;
~/svn #
- ~ # mkdir svn ; cd svn;
- 替 project 獨立地建一個 svn db
- ~/svn # svnadmin create my_project
- 將原先在某處的資料匯入 my_project 的 svn db
- ~/my_project # ls
yoyo_tv - ~/my_project # svn import yoyo_tv file:///.../svn/my_project/trunk
接著打打資訊提醒自己
- ~/my_project # ls
- 對 my_project 的 svn db 撈資料出來
- ~/tmp # mkdir p1 ; svn co file:///.../svn/my_project/trunk p1 ;
- 對查看 my_project 的紀錄
- ~/tmp # cd p1;
~/tmp/p1 # svn log
- ~/tmp # cd p1;
- 透過 svn 將遠處 mirror 的地方更新
- ~/mirror/p1 # svn up
- 將修改好的程式進行紀錄
- ~/tmp/p1 # svn commit;
- 新增對某個新增的檔案或目錄加至 svn db 中
- ~/tmp/p1 # touch haha.c ; svn add haha.c
- 查看目前所在目錄狀況,可得知是否有遺漏管理的
- ~/tmp/p1 # svn status
- 僅列出有更動的檔案並略過未加入 svn db 的檔案
- ~/tmp/p1 # svn status | grep -v "?"
- 得知有哪些檔案有變更
- # svn diff --summarize -r 5 http://svn.example.com/trunk
- SVN repository location change
- # svn switch --relocate file:///from/svn/proj/trunk file:///to/svn/proj/trunk
- 想要把剛剛 svn add 的檔案去掉(還沒 commit)
- # svn add path
# svn revert path - svn revert — Undo all local edits.
- # svn add path
2008年10月29日 星期三
個人常用的 svn 指令
[FreeBSD] 設定 NIS Client 與 AMD Service
有一大批的機器要管理,最佳的做法就是由一至兩台負責管理帳號,這時候就會使用到 yp 服務囉。這篇不適用於初學者,在此僅分享記錄管的機器。
機器狀況敘述,目前僅用一台機器當 NIS Server ,並且於該台設定分享其目錄出來,目前課題擺在新增新的 client 端機器。
Server 的設定部分
- /etc/hosts.allow (目前手邊機器常用的管法 :P )
- ypserv : client_ip : allow
- rpcbind : client_ip : allow ( portmap : client_ip : allow )
- /etc/exports
- 設定待分享的目錄的權限, ex: /data/home -maproot=root client_ip
- 設定好要記得重跑, /etc/rc.d/mountd restart
- /var/yp/securenets
- client_ip 255.255.255.255
- 設定完後, 記得 touch /var/yp/master.passwd 更新其 last modified time, 然後在 /var/yp/ 下打 make 即可更新完成。
新機器 Client 的設定部分
- /etc/rc.conf - YP Client
- rpcbind_enable="YES"
- nisdomainname="WorkCC"
- nis_client_enable="YES"
- nis_client_flags="-s -S WorkCC,Server_IP" (若跨網域要記得加 -m)
- /etc/rc.conf - AMD Client
- nfs_client_enable="YES"
- nfs_client_flags="-n 4"
- amd_enable="YES"
- amd_flags="-a /.amd_mnt -l syslog -d ServerDomain /net /etc/amd.map"
- 目前有一批機器是設成先 /net 再 /.amd_mnt 但基於某些關係,暫用舊設定(相反過來)
- 可重開機或使用 /etc/rc.d/amd start 啟動
- /etc/hosts.allow
- rpcbind : server_ip : allow ( portmap : server_ip : allow )
- YP client 部分
- /etc/group
- 最後一行加上 +:*::
- 某些帳號是 wheel 群組的,記得加一加
- # vipw
- 最後一行加上 +:::::::::
- 接著,則是使用者登入時的家目錄囉,由於使用 amd 服務,就來建建 ln -s 啦
- # cd /; ln -s /net/Server_IP/data/home /home
- /etc/group
- 如此一來,重開機就搞定了
2008年10月22日 星期三
[FreeBSD] 設定 ccd 服務
目前手邊的機器,大概都配置四顆 250GB 以上的硬碟,然後通常一顆是用來安裝系統,所剩的空間和其他三顆會被併在一起使用。由於為數說多不多說少不少的機器都一直採用 ccd 的方式,暫且就先不試 geom 等新的方式。
在此暫記管的機器的設定,有興趣可多逛逛網路上的文件:連接式磁碟裝置驅動程式。以下是 JBOD (Just Bunch of Disks) 的設定筆記。
- 首先,在安裝過程中可以先行設定,或是安裝完後,透過 sysinstall 至 Configure 的 Fdisk 和 Label 設置也行。
- 目前的狀況大置於下:
- 四顆 250GB 的硬碟,第一顆切 8GB 給 / 、切 4GB 給 /swap ,剩下的就先切出,暫且叫 /mnt/raw_ccd0
- 其他三顆則是全些切,依序為 /mnt/raw_ccd1、/mnt/raw_ccd2和/mnt/raw_ccd3。
- 在此僅為了產生 /dev/ad1s1d, /dev/ad2s1d, etc (正確上應該是採用bsdlabel設定)
- 另外,因為我是對已執行的系統碟進行更新的動作,因此會跳出一個系統框要你 set sysctl kern.geom.debugflags=16 的相關訊息,其主因應該是當你設定完要按 W 更新,但其更新方式就是照目前設定跑一次,就會碰到有些裝置已在使用中(ex:/swap),若未設定上述 flags 的話,有錯誤就會停下來,因此無法更新到 /mnt/raw_ccd0 的部分,設定完 flags 後,就可以更新到囉。
- 接著,若要使用 ccd 的服務,必須編 kernel 時就要設定囉
- device ccd
- 開始正式設置 ccd 的串連方式,首先先 umount 這些地方: /mnt/raw_ccd0、 /mnt/raw_ccd1、/mnt/raw_ccd2和/mnt/raw_ccd3。
- 然後對於 ccd 的部分,預設的設定檔位置是 /etc/ccd.conf ,因此,若擺好設定檔後,開機就會自動幫你設定囉
- 目前 /etc/ccd.conf 裡頭的資料,類似下面
- ccd0 128 none /dev/ad1s1d /dev/ad2s1d /dev/ad3s1d /dev/ad4s1d
- 另外,若是用 single mode 進去,那就執行 # ccdconfig -C 就會自動幫你弄好而產生 /dev/ccd0
- 目前 /etc/ccd.conf 裡頭的資料,類似下面
- 透過上述的設定,在 /dev 下就會產生 /dev/ccd0 囉!
- 第一次初始化它!
- # newfs -U -m 0 /dev/ccd0
- 使用它!
- # mount /dev/ccd0 /data
- 設成自動開始時掛載(採用/etc/rc.local)
- mount /dev/ccd0 /data
if [ "`df | grep /data`" = "" ]; then
fsck_ufs -y /dev/ccd0 ; mount /dev/ccd0 /data
fi
- mount /dev/ccd0 /data
以上就是目前的老式設定方式 XD ,雖然有些東西有點過時,或是設定方式有點怪怪的,例如自動掛載可寫在 /etc/fstab 等,但就暫且如此為之吧。
醜陋的人心
世上存在很多種人,有的人很好心,但卻也有不少人見不得別人好的人。然而,壞心的人也不是壞心,只是在某個層面會看不起別人,結果面對自己時卻又用另一個角度款待自己,說真的還真令我感冒。
但我深信,世上沒有絕對的好與壞,相對的世界需要適當地調適自己的心態。
2008年10月21日 星期二
[FreeBSD] 安裝 FreeBSD 與系統更新
前陣子又開始搞 FreeBSD ,我好像大四那年就拋開了管理者的身份,總覺得不必需要管理者權限,早就可以完成八成以上想做的事。現在,我得開始回顧回顧啦。這篇是以管的機器狀況來記錄的,詳細的部分可參考:[FreeBSD] FreeBSD 詳細的安裝教學 - 舊安裝方式
在此記錄一下管的機器狀態。會慢慢地補資料
- 安裝 FreeBSD
- 首先,先燒一片開機片。可以到 ftp://freebsd.cs.nctu.edu.tw 逛逛。接著,光碟開機。記得 BIOS 要調。
- 接下來,就用 FreeBSD 開機後,進入設定畫面,一開始好像是問語系?選 Taiwan ,接著是鍵盤資訊?預設的 us.iso ,印象中這兩項調好就進入正式的安裝設定。
- 我習慣用 Custom 設置
- Options 就看要不要調,若是燒的片子已經是你要安裝的版本,那就不用動,若片子不夠新或不是你要的版本,請進入調整 Release Name
- Partition 部分,算簡單地問要將哪些硬碟設置進入,按空白鍵去選取,選取後會問你要配置多少空間,通常我都是全部,所以按 a (All ),另外,特定要開機的硬碟要選 s 的樣子,好像是 bootable 吧,並且給予 Standard 的開機管理,而若有多顆硬碟,那些其他的硬碟就選 none 。
- Label 部分,目前管的機器很隨性,大概 8GB 切給 / ,4GB 給 /swap 啦,其他的?晚點再弄成 /data 啦。
- Distributions 部分,一樣 Custom 啦,我會選六項:base、kernels、man、src、ports和local,其中若有碰到子選單的,一律選 all 。
- Media 部分,若光碟資料已經是你要的,可以選 CD/DVD 囉,否則已改過 Options 的話,就會選用 ftp 啦
- 然後就開始安裝了,很快就完成囉,因此進入最後的設定。
- 最後設定的部分,我會設定"Root Password"、"Time Zone"、"Networking”、"Console"等,像sshd一開始是未被開啟的,所以要記得打開,一切弄完後就可以重開機享受 FreeBSD 啦。
- 更新 FreeBSD
- 完成了安裝後,接下來就是先更新一下系統囉,學會更新系統應該可以降低被攻擊的機會。更新部分分為兩處,一處是系統整體,另一部分是系統核心部分。
- 首先,編輯 /etc/make.conf
- # 透過內建的 cvsup 更新系統
SUP_UPDATE= YES
SUPHOST= cvsup.tw.freebsd.org
PORTSSUPFILE= /usr/share/examples/cvsup/ports-supfile
SUPFILE= /usr/share/examples/cvsup/standard-supfile
#SUPFILE= /usr/share/examples/cvsup/stable-supfile - # 從台灣更新
MASTER_SITE_BACKUP?=\
ftp://ftp.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/ \
ftp://ftp2.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/
MASTER_SITE_OVERRIDE ?= ${MASTER_SITE_BACKUP} - # 我幾乎沒在用 X-Window
WITHOUT_X11 ?= yes
NO_X ?= true - # Kernel 設定檔
KERNCONF = yourBSD
KERNEL = yourBSD
- # 透過內建的 cvsup 更新系統
- 然後必須準備一下 Kernel config 囉,請切換到 /usr/src/sys/i386/conf/ ,然後將 cp GENERIC yourBSD,若不曉得就先別動,預設就不會出問題!
- 接著,就能切換到 /usr/src 下,打入 make update 啦,就會先幫你把新的資料擺妥,下一步就是去編譯啦
- 另外,也可以切換到 /usr/ports ,打入 make update ,也會更新 ports ,這個地方算是軟體安裝的便利區
- 好囉,其實上述動作都差不多,而更新系統的方式可以用以下一連串的指令來達成
- # cd /usr/src ; make update && make -j5 buildworld && make buildkernel && make installworld && make installkernel && mergemaster -iU
- 以上動作依序:更新原始碼、編譯系統、編譯核心、安裝系統、安裝核心以及最後的設定檔更新,最後那步會是互動式的,可以依你的狀況做調整,大部分都是用 i 來更新成最新的設定檔,若有些設定檔你想保留原先的設定,就按 enter 略過吧!另外,中間過程有個 -j 5 ,是代表要用 5 支 process 去編,畢竟很多東西都是在等 IO ,用多一點編可以稍稍加快!這個更新動作會耗時一陣子喔!大概兩三小時以上!
訂閱:
文章 (Atom)