我寫了一個腳本,做這一點,但它是我的第一個劇本的人曾經讓我確信有更好的辦法:)腳本遞歸查詢並選擇依賴
讓我知道你將如何去關於這樣做。
我正在尋找一個簡單而有效的方法來做到這一點。
下面是一些重要的背景信息:
(這可能是一個有點混亂,但希望通過年底它纔有意義。)
1)這顯示了相關迪爾斯和文件的結構/位置。
main dir
+-- config
+-- default
+-- config
+-- config.file
+-- package.file
+-- package
+-- $b
+-- $a
+-- $a.cache file
+-- scripts
+-- 40+ scripts
2)位於./config/default/config/packages
的packages.file是空格分隔的文件。
field5是「包名稱」,爲了說明起見,我將其稱爲$a
。
field4中是包含$a
迪爾的選定和「O」(資本名稱.DIR如果選擇包或沒有,
「X」(資本x)的我將調用$b
field1的節目O爲中橙色)未選擇。
這裏是什麼樣的packages.file可能包含一個例子:)
...
X ---3------ 104.800 database gdbm 1.8.3/base/library CROSS 0
O -1---5---- 105.000 base libiconv 1.13.1/base/tool CROSS 0
X 01---5---- 105.000 base pkgconfig 0.25/base/tool CROSS 0
X -1-3------ 105.000 base texinfo 4.13a/base/tool CROSS DIETLIBC 0
O -----5---- 105.000 develop duma 2_5_15/base/development CROSS NOPARALLEL 0
O -----5---- 105.000 develop electricfence 2_4_13/base/development CROSS 0
O -----5---- 105.000 develop gnupth 2.0.7/extra/development CROSS NOPARALLEL FPIC-QUIRK 0
...
3幾乎每包中的「packages.file」上市有一個相應的「.cache文件」
的。$ a包的.cache文件位於./package/$b/$a/$a.cache
.cache文件包含該特定包的依賴項列表。
下面是一個.cache文件的示例。
注意的依賴是包含「[DEP]」
這些依賴包的所有名稱中的「package.file」
[TIMESTAMP] 1134178701 Sat Dec 10 02:38:21 2005
[BUILDTIME] 295 (9)
[SIZE] 11.64 MB, 191 files
[DEP] 00-dirtree
[DEP] bash
[DEP] binutils
[DEP] bzip2
[DEP] cf
[DEP] coreutils
...
因此,所有考慮到這一點的行場2 ... 我在找一個shell腳本:
從‘主目錄’
着眼於./config/default/config/packages
文件
,發現了‘選擇’套餐
和內讀取correspo nding .cache
然後在./config/default/config/packages
文件
編譯排除已經選擇的套餐
然後選擇依賴依賴列表(通過改變字段1到X)和重複,直到所有的依賴都滿足
注意:該腳本最終將在「腳本目錄」中結束,並從「主目錄」中調用。
如果這不清楚,讓我知道需要澄清什麼。
對於那些有興趣的人,我正在玩T2 SDE。
如果你正在玩Linux,可能值得一看。
如果你打算爲我發佈一個腳本,請確保它很好的評論,以幫助我學習。