1.2.13 打標(biāo)簽 svn 的標(biāo)簽是通過(guò)copy命令完成,但是操作的路徑必須是服務(wù)器的路徑,,打標(biāo)簽實(shí)際上類似于創(chuàng)建一個(gè)到特定版本的鏈接,,如: svn cp svn://192.168.2.148/smartphone/td0901/t ... e-jianping \ svn://192.168.2.148/smartphone/td0901/t ... cake-1.0.6 如果 svn://192.168.2.148/smartphone/td0901/t ... e-jianping 的當(dāng)前版本為 5 ,\ 那么 svn://192.168.2.148/smartphone/td0901/t ... cake-1.0.6 實(shí)際 \ 上就是 svn://192.168.2.148/smartphone/td0901/t ... e-jianping 版本5的一個(gè)標(biāo)簽,。 1.2.14 清除緩存的認(rèn)證信息,,重新輸入用戶名和密碼 一個(gè)具有權(quán)限控制的 svn 版本庫(kù)在第一次 checkout 工作拷貝的時(shí)候會(huì)要求輸入用戶名和密碼: 認(rèn)證領(lǐng)域: 176512f1-51ee-4947-8c07-88c90ab77ac5 “$USER”的密碼: 認(rèn)證領(lǐng)域: d3216b51-7915-4881-bf30-02e0672c61cd 用戶名: xxxxx “xxxxx”的密碼: 這些信息被緩存在 ~/.subversion/auth/svn.simple/ 如果需要更換另一個(gè)用戶登錄,必須先清除緩存的認(rèn)證信息: rm ~/.subversion/auth/svn.simple/* -rf 1.3 為規(guī)避風(fēng)險(xiǎn),,建議遵守以下規(guī)范 1.3.1 提交前審查修改情況,, 用命令svn status瀏覽所做的修改,svn diff檢查修改的詳細(xì)信息 1.3.2 提交時(shí),,必須填寫注釋,,注釋內(nèi)容清晰描述本次提交內(nèi)容,變動(dòng)信息,。 1.3.3 做較大修改時(shí),,和項(xiàng)目組其他同事的工作相關(guān)時(shí),必須通知對(duì)方,。 1.3.4 納入版本控制的項(xiàng)目必須定期提交,,至少一周提交一次,避免意外事故導(dǎo)致代碼丟失,。 1.3.5 每次提交后,,必須確認(rèn)工程可正常運(yùn)行,即SVN里保存的是可以正確運(yùn)行的代碼,,否則恢復(fù)至穩(wěn)定版本,。 1.3.6 編譯過(guò)程動(dòng)態(tài)產(chǎn)生的東西不要提交到服務(wù)器 1.3.7 每次提交前先更新,,這樣能在提交前發(fā)現(xiàn)是否和別人的沖突 filelist=`find ./ -name "*.conf"`;svn add $filelist; svn commit $filelist filelist=`find ./ -name "*.conf"`;svn delete $filelist --force --keep-local ================================================= ================================================ 8. LFS 相關(guān) 7.1 lfs 相關(guān)資源 7.2 LFS問(wèn)題解答 ========= LFS──Linux from Scratch,就是一種從網(wǎng)上直接下載源碼,,從頭編譯LINUX的安裝方式,。它不是發(fā)行版,只是一個(gè)菜譜,, 告訴你到哪里去買菜(下載源碼),,怎么把這些生東西( raw code) 作成符合自己口味的菜肴──個(gè)性化的linux,不單單是 個(gè)性的桌面,。 LFS 有什么優(yōu)勢(shì)呢,?現(xiàn)在看來(lái),它可以提供最快和最小的 Linux,。但是最大的優(yōu)勢(shì)就是,,安裝LFS是菜鳥變成高手的捷徑。 第一次安裝,,需要按照LFS文檔安裝,,如果在此期間所有文檔內(nèi)容你都認(rèn)真的閱讀,保證你受益匪淺,;然后發(fā)現(xiàn)很多地方可以 不按照別人的老路操作,,這個(gè)時(shí)候用自己的方式參考第一次安裝的經(jīng)驗(yàn),再一次建立linux,,完成的時(shí)候,,你會(huì)發(fā)現(xiàn)你在 LinuxSir.Org 上已經(jīng)再也不是菜鳥了。 7.1 lfs 相關(guān)資源 官方網(wǎng)站: http://www./ lfs中文網(wǎng)站 http://lfs./main/ Linux From Scratch版本 6.2 http://lamp./Linux/LFS-6.2/index.html Linux From Scratch 版本 6.4 http://www./lfsbook-6.4/index.html Linux 發(fā)行版 LFS 討論區(qū) http://www./bbs/forumdisplay.php?f=58 7.2 LFS問(wèn)題解答 構(gòu)建LFS的過(guò)程中遇到一些問(wèn)題,,總體來(lái)說(shuō)還算順利,,但是還有一些不明白的地方,這里總結(jié)一下: 1./etc/fstab是否在開(kāi)機(jī)就執(zhí)行,,是被誰(shuí)調(diào)用執(zhí)行的,。 2.為什么系統(tǒng)啟動(dòng)之后就要自動(dòng)掛載/proc 和/sys,這兩個(gè)目錄有什么作用,;devpts和tmpfs有什么作用,。 參考章節(jié):文件系統(tǒng)概述 3.關(guān)于文件系統(tǒng):按照我的理解,文件系統(tǒng)是內(nèi)核提供支持的,,可以看作是一種協(xié)議,,提供一種數(shù)據(jù)組織方式,每個(gè)設(shè)備必須有自己的文件系統(tǒng),。 不同文件系統(tǒng)的存儲(chǔ)設(shè)備的數(shù)據(jù)組織形式不同。mke2fs -jv /dev/默認(rèn)在上面創(chuàng)建EXT3的文件系統(tǒng)嗎,?既然這樣的話為什么 我們還需要把以ext3掛載到一個(gè)目錄呢,?如果不是 的話,,又是創(chuàng)建什么文件系統(tǒng)呢?為什么第六章中掛載了虛擬內(nèi)核文件系統(tǒng)之后才能 進(jìn)入chroot環(huán)境呢,? 參考章節(jié):文件系統(tǒng)概述 4.虛擬文件系統(tǒng).作用.什么? 虛擬內(nèi)核文件系統(tǒng)(Virtual Kernel File Systems),,是指那些是由內(nèi)核產(chǎn)生但并不存在于硬盤上(存在于內(nèi)存中)的文件系統(tǒng),他們 被用來(lái)與內(nèi)核進(jìn)行通信,。 5.符號(hào)鏈接 和硬鏈接的區(qū)別是什么,?什么是符號(hào)鏈接?什么是硬鏈接,?為什么liinux上都使用符號(hào)鏈接,,而不是硬鏈接?linux上很多地方 使用了鏈接,,是為了組織清晰系統(tǒng)的結(jié)構(gòu)和節(jié)省空間嗎,? 硬連接和軟連接的區(qū)別, 硬連接和復(fù)制的區(qū)別? 硬連接記錄的是目標(biāo)的 inode;軟連接記錄的是目標(biāo)的 path,。 hard link 由于 inode 的緣故,,只能在本分區(qū)中做 link;soft link 可以做跨分區(qū)的 link,。硬連接因?yàn)橛涗浀氖?inode,,所以不怕改名, 比如ln aaa bbb, mv aaa ccc, 這時(shí) bbb 仍然可以訪問(wèn);soft-link 就不行:source 的名字改變后,,所有鏈接到這里的 soft-link 全部變?yōu)?broken,。事實(shí)上,即使所有指向該 inode 的 hard-link 的文件名都變了,,每一個(gè)仍然都可以訪問(wèn),。我想這是它最大的優(yōu)點(diǎn)吧。 硬連接和復(fù)制的區(qū)別: 幾個(gè)硬連接=幾個(gè)名字的同一個(gè)房子,,這些名字可以相同或不同但地址(i-node)是一樣的,, 所以硬連接被刪除只是把相應(yīng)名字抹去,只有最 后一個(gè)名字被抹去你才會(huì)找不到房子,;而復(fù)制是建造一個(gè)一模一樣的房子,,當(dāng)然地址(i-node)就不同的了。 6.工作平臺(tái)中由Glibc提供的動(dòng)態(tài)連接器與Binutils里面的標(biāo)準(zhǔn)連接器有什么區(qū)別,? 參考章節(jié): 鏈接器和加載器 7.$LFS/tools 目錄的所有者是僅存在于宿主環(huán)境中的 lfs 用戶,。如果保留 $LFS/tools 目錄,那么該目錄內(nèi)文件的所有者的 user ID 就 沒(méi)有對(duì)應(yīng)的賬號(hào) ,?為什么沒(méi)有帳戶,,難道不是LFS? 查看 /etc/password /etc/group 兩個(gè)文件 分別記錄 用戶和組的信息 如果用戶名和用戶ID 組名和組ID 的對(duì)應(yīng)關(guān)系分別存在上面兩個(gè)文件中,那么ls -ls 的時(shí)候就可以查看到用戶信息,,而不再是ID等數(shù)字信息 8.系統(tǒng)的環(huán)境變量保存在哪個(gè)文件,? 保存在tty中 9。配置參數(shù)腳本時(shí)[alias1] [alias2 ...]什么時(shí)候用到,? 別名的意思 alias ls='ls --color=auto' /etc/skel/.bashrc:81: #alias dir='dir --color=auto' /etc/skel/.bashrc:82: #alias vdir='vdir --color=auto' /etc/skel/.bashrc:84: #alias grep='grep --color=auto' /etc/skel/.bashrc:85: #alias fgrep='fgrep --color=auto' /etc/skel/.bashrc:86: #alias egrep='egrep --color=auto' /etc/skel/.bashrc:89:# some more ls aliases /etc/skel/.bashrc:90:#alias ll='ls -l' /etc/skel/.bashrc:91:#alias la='ls -A' /etc/skel/.bashrc:92:#alias l='ls -CF' alias mohuifu='ls -l' ======================== 9. linux 內(nèi)核的初步理解 4. 編譯內(nèi)核 此處內(nèi)核編譯主要針對(duì)驅(qū)動(dòng)組之外的同事 1> 設(shè)置工具鏈 內(nèi)核的 linux-2.6.28-a1/Makefile 中設(shè)定了: CROSS_COMPILE ?= arm-linux- 所以設(shè)置PATH環(huán)境變量,,保證能找到正確的工具鏈 假設(shè)工具鏈位于: /usr/local/marvell-arm-linux-4.1.1/ 設(shè)置為: export PATH:=/usr/local/marvell-arm-linux-4.1.1/bin/:$PATH 2> 更改編譯選項(xiàng)(網(wǎng)絡(luò)啟動(dòng)或者本機(jī)啟動(dòng)) 內(nèi)核頂層目錄執(zhí)行: make menuconfig General setup ---> Initial RAM filesystem and RAM disk (initramfs/initrd) support () Initramfs source file(s) (NEW) 如果需要支持網(wǎng)絡(luò)啟動(dòng)反選 [] Initial RAM filesystem and RAM disk (initramfs/initrd) support 如果需要支持本地啟動(dòng)選中 Initial RAM filesystem and RAM disk (initramfs/initrd) support 設(shè)置 () Initramfs source file(s) (NEW) 為 root 拷貝 cupcake 編譯結(jié)果 out/target/product/littleton/root/ 到內(nèi)核頂層目錄 3> 編譯 內(nèi)核頂層目錄執(zhí)行 make zImage 編譯好的內(nèi)核: arch/arm/boot/zImage initramfs與initrd 1. initrd是一個(gè)單獨(dú)的文件;initramfs和Linux內(nèi)核鏈接在一起(/usr目錄下的程序負(fù)責(zé)生成initramfs文檔),。 2. initrd是一個(gè)壓縮的文件系統(tǒng)映像(可以是ext2等,,需要內(nèi)核的驅(qū)動(dòng));initramfs是類似tar的cpio壓縮文檔,。 內(nèi)核中的cpio解壓縮代碼很小,,而且init數(shù)據(jù)在boot后可以丟棄。 3. initrd運(yùn)行的程序(initd,,不是init)進(jìn)行部分setup后返回內(nèi)核,;initramfs執(zhí)行的init程序不返回內(nèi)核 (如果/init需要向內(nèi)核傳遞控制權(quán),可以再次安裝在/目錄下一個(gè)新的root設(shè)備并且啟動(dòng)一個(gè)新的init程序),。 編譯腳本及系統(tǒng)變量 initramfs與initrd的區(qū)別 1. initrd是一個(gè)單獨(dú)的文件,;initramfs和Linux內(nèi)核鏈接在一起(/usr目錄下的程序負(fù)責(zé)生成initramfs文檔)。 2. initrd是一個(gè)壓縮的文件系統(tǒng)映像(可以是ext2等,,需要內(nèi)核的驅(qū)動(dòng)),;initramfs是類似tar的cpio壓縮文檔。 內(nèi)核中的cpio解壓縮代碼很小,,而且init數(shù)據(jù)在boot后可以丟棄,。 3. initrd運(yùn)行的程序(initd,不是init)進(jìn)行部分setup后返回內(nèi)核,;initramfs執(zhí)行的init程序不返回內(nèi)核 (如果/init需要向內(nèi)核傳遞控制權(quán),,可以再次安裝在/目錄下一個(gè)新的root設(shè)備并且啟動(dòng)一個(gè)新的init程序)。 4. 切換到另一個(gè)root設(shè)備時(shí),,initrd執(zhí)行pivot_root后,,卸載ramdisk;initramfs是rootfs,,既不能 pivot_root,,也不能卸載。initramfs會(huì)刪掉rootfs的所有內(nèi)容(find -xdev / -exec rm '{}' ';'),, 再次安裝root到rootfs(cd /newmount; mount --move . /; chroot .),,把stdin/sdout/stderr掛在 新的/dev/console上,重新執(zhí)行init,。由于這是一個(gè)相當(dāng)困難的實(shí)現(xiàn)過(guò)程(包括在使用一個(gè)命令之前把它刪除),,所以 klibc工具包引入一個(gè)幫助程序/utils/run_init.c來(lái)執(zhí)行上述過(guò)程,。其他大部分工具包(包括busybox) 把這個(gè)命令 稱為"switch_root"。 ======================= end ======================== |
|
來(lái)自: shaobin0604@1... > 《Android》