PCZONE 討論區

PCZONE 討論區 (https://www.pczone.com.tw/vbb3/)
-   -- FreeBSD & Linux 討 論 版 (https://www.pczone.com.tw/vbb3/forum/41/)
-   -   請問 make clean 與 make mrproper 的差異 (https://www.pczone.com.tw/vbb3/thread/41/125627/)

b90220208 2006-07-11 08:20 AM

請問 make clean 與 make mrproper 的差異
 
如題,請問 make clean 與 make mrproper 的差異....

在 kernel source 裡頭下 #make help 可知:
--------------------------------------------
Cleaning targets:
clean - remove most genearted files but keep the config
mrproper - remove all generated files + config + various backup files.


為何一般在編譯 kernel 時既已先執行了 make mrproper 還要再執行 make clean 如上文所述前者所清除掉的不是大(多)於後者嗎? :confused:

wally 2006-07-22 05:36 PM

回覆: 請問 make clean 與 make mrproper 的差異
 
是的, 如果先作了 make mrproper, 就不需再 make clean

b90220208 2006-07-24 12:18 AM

回覆: 請問 make clean 與 make mrproper 的差異
 
[QUOTE=wally]是的, 如果先作了 make mrproper, 就不需再 make clean[/QUOTE]

感謝.

真的嗎?...但為何我的書的確是兩步驟都有執行(教人編譯kernel之章節)

imyoyopp 2006-07-24 10:02 AM

回覆: 請問 make clean 與 make mrproper 的差異
 
make mrproper : 保證 Source Code 是乾淨的 !! (一拿到 Source Code 所以執行的動作)
----------------------------------------------
make clean : 將曾經產生過的 *.o 檔清除掉. (*.o 它是什麼時候產生的呢 ?? 在 make 的時候..)
(保留編譯的成果 , 可省略這一個步驟)
----------------------------------------------
小弟猜測您的步驟大至如下 ..

(1) Get SourceCode.tar.bz2
(2) tar xvjpf SourceCode.tar.bz2
(3) make mrproper : (一拿到 Source Code 所以執行的動作)
(4) make menuconfig
(5) make
(6) make install
(7) make clean : (保留編譯的成果 , 可省略這一個步驟)
(8) 修改 grub

----------------------------------------------
第 (7) 步個人認為是,個人習慣的問題 .... (不高興也可以每次都重頭來過啊 ..)

b90220208 2006-07-25 03:46 AM

回覆: 請問 make clean 與 make mrproper 的差異
 
Thanks#

所謂 -- [I]make mrproper : 保證 Source Code 是乾淨的 !![/I] --是何意?
難道下載來的 source code tarball 會有非原始樣貌(全新的)的情形??.....[COLOR="Red"]此步驟在何種情況下可省略?[/COLOR]

另外,
我書上 (以討論 kernel 2.6 為主) 的 make clean 是在 make menuconfig 之後及 make zImage 之前,但卻無提到 make 與 make install ,[COLOR="red"]請問與 imyoyopp 兄說的步驟有何差別嗎?[/COLOR]


[U]以下列出其提到的所有步驟:[/U]
(1) Get SourceCode.tar.gz
(2) tar zxvf SourceCode.tar.gz
(3) make mrproper : (一拿到 Source Code 所以執行的動作)
(4) make menuconfig
(5) make clean (書上說,[B]若是未編譯過的全新 source 則可省略[/B])
[COLOR="Red"]Q -> 但 wally 兄說的是 ~[I][B]如果先作了 make mrproper, 就不需再 make clean[/B][/I]~ .....兩說法感覺不太一樣,可否為我解疑惑??[/COLOR]
[COLOR="Red"]Q -> 請問,定要執行時,既然功用相仿,可用make mrproper 取代嗎?[/COLOR]
(6) make zImage
(7)
cp /usr/src/linux/arch/i386/boot/zImage /boot/vmlinuz-2.6.9
ln -s /boot/vmlinuz-2.6.9 /boot/vmlinuz
(8)
make modules
make modules_install
(9)
cp /usr/src/linux/System.map /boot/System.map-2.6.9
ln -s System.map-2.6.9 System.map
(10) 修改 grub

imyoyopp 2006-07-25 10:48 AM

回覆: 請問 make clean 與 make mrproper 的差異
 
:jump: 看來我好像幫您省了不少動作厚 ~ (遺漏了很多....)
------------------------------------------------------------
[QUOTE]所謂 -- make mrproper : 保證 Source Code 是乾淨的 !! --是何意?[/QUOTE]
(1) SourceCode.tar.gz , 它是一個壓縮檔 , 從同事或任何地方拿到時 , 很有可能內容已變更過(這裡指 configure 檔).

[QUOTE]此步驟在何種情況下可省略?[/QUOTE]
(2) 個人習慣啦 ! (為了省掉一堆麻煩 , 我想您一定不會省掉這一步的 ..)
------------------------------------------------------------
[QUOTE]另外,
我書上 (以討論 kernel 2.6 為主) 的 make clean 是在 make menuconfig 之後及 make zImage 之前,但卻無提到 make 與 make install ,請問與 imyoyopp 兄說的步驟有何差別嗎?[/QUOTE]
(3) 這裡要向您說聲 拍 Say !! 是我的錯 , 還請見諒嘿 .. :D (哪就先跳過 , 以您書上講的為前提 , 有興趣的話 , 建議您找些 make 相關的書籍 KK)
------------------------------------------------------------
[QUOTE](5) make clean (書上說,若是未編譯過的全新 source 則可省略)
Q -> 但 wally 兄說的是 ~如果先作了 make mrproper, 就不需再 make clean~ .....兩說法感覺不太一樣,可否為我解疑惑??
Q -> 請問,定要執行時,既然功用相仿,可用make mrproper 取代嗎?
[/QUOTE]
(4) 這樣講好了 ~ (要開始唬爛了) :jump:

make menuconfig --> 會產生 ".config" (您在 `make menuconfig` 中所做的動作)
make zImage --> 開始編譯 (會花點時間) , 編譯後就會產生 *.o , vmlinuz , System.map (大至上是這樣)

make mrproper --> 回到初始裝態 (移除 *.o , 清除".config")
make clean --> 移除 *.o (不會清除 ".config")

b90220208 2006-07-25 09:42 PM

回覆: 請問 make clean 與 make mrproper 的差異
 
我翻了幾本書與網站都沒看到編譯核心時有用到
make
make install
只有提到編譯好後只須 copy bzImage 與 System.map 到 /boot 之下.....我糊塗了?

[U][B]另外請教[/B][/U],
make bzImage 所製造出來的 kernel 映像檔是屬於所謂的 executable file(binary file) 嗎?


最後還是老問題:
make mrproper 也會執行到 make clean ([URL="http://moto.debian.org.tw/viewtopic.php?t=1308&sid=9c259f153b867762abeceaba28d913b2"]詳見摩托學園[/URL])
所以 wally 兄所說的 [I][B]~如果先作了 make mrproper, 就不需再 make clean~[/B][/I] 算是"鐵則"囉??

imyoyopp 2006-07-26 10:22 AM

回覆: 請問 make clean 與 make mrproper 的差異
 
[QUOTE]我翻了幾本書與網站都沒看到編譯核心時有用到
make
make install
只有提到編譯好後只須 copy bzImage 與 System.map 到 /boot 之下.....我糊塗了?
[/QUOTE]
關於這點,小弟在此向您說聲 ~ 對不起 ~ 誤導了您的思考方向 .. (編譯核心 !! 沒有 !! 沒有 !!) :jump2:
-------------------------------------------------
[QUOTE]另外請教,
make bzImage 所製造出來的 kernel 映像檔是屬於所謂的 executable file(binary file) 嗎?[/QUOTE]
-------------------------------------------------
bzImage (big zImage) : 是用 gzip 壓縮的,至於壓縮檔等不等於 binary file 呢 ..... ( 嗯災 :D )

[QUOTE]所以 wally 兄所說的 ~如果先作了 make mrproper, 就不需再 make clean~ 算是"鐵則"囉??
[/QUOTE]
嗯嗯 ~
-------------------------------------------------
:|||: 突然覺得自己是來亂的 :D ~ 擔誤大家時間,拍 Say ~

b90220208 2006-07-26 10:58 AM

回覆: 請問 make clean 與 make mrproper 的差異
 
不好意思,關於我前文所提到的([URL="http://moto.debian.org.tw/viewtopic.php?t=1308&sid=9c259f153b867762abeceaba28d913b2"]摩托學園[/URL]) -- make mrproper 也會執行到 make clean

可否請教是如何看出來的呢?.....謝謝.

imyoyopp 2006-07-26 03:53 PM

回覆: 請問 make clean 與 make mrproper 的差異
 
[QUOTE]不好意思,關於我前文所提到的( 摩托學園 ) -- make mrproper 也會執行到 make clean

可否請教是如何看出來的呢?.....謝謝.[/QUOTE]
(1) 假設下載的 kernel 叫 -> "linux-2.x.xx.tar.bz2"
(2) 解壓的後得到的目錄 -> linux-2.xx.xx
(3) 在 linux-2.xx.xx 底下會有個叫 [COLOR="Red"]Makefile[/COLOR] 的檔案
(4) 您在 Makefile 中,可以找到這一行 -> "[COLOR="red"]mrproper: clean archmrproper[/COLOR]"
(5) 這一行的意思 : 遇到 mrproper 這個 target 時,去找 clean (執行),還有 archmrproper (執行),如果找不到 archmrproper 就不往下做了.
------------------------------------------------------------------


所有時間均為 +8。現在的時間是 10:34 PM



 XML   RSS 2.0   RSS 
本站使用 vBulletin 合法版權程式
站務信箱 : [email protected]

本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。