Ver Fonte

分析debootstrap包列表

侠义书生 há 3 anos atrás
pai
commit
38e555fed8
5 ficheiros alterados com 60 adições e 4 exclusões
  1. 11 0
      README.md
  2. 25 4
      debug.sh
  3. 8 0
      usr/sbin/debootstrap
  4. 14 0
      usr/share/debootstrap/functions
  5. 2 0
      usr/share/debootstrap/scripts/gutsy

+ 11 - 0
README.md

@@ -0,0 +1,11 @@
+01-required: 47
+
+01-required@deps: 149
+
+02-important: 44
+
+02-important@deps: 174
+
+02-important@deps@without@required: 61
+
+total: 149 + 61 = 210

+ 25 - 4
debug.sh

@@ -4,8 +4,29 @@ MIRROR_URL="http://172.29.220.242/mirror/kylin"
 
 ROOTFS_DIR="/var/tmp/rootfs-kylin-amd64"
 
-[ -d ${ROOTFS_DIR} ] && sudo rm -rf ${ROOTFS_DIR}
+# [ -d ${ROOTFS_DIR} ] && sudo rm -rf ${ROOTFS_DIR}
 
-sudo debootstrap --no-check-gpg --variant=minbase \
-    --components="main,restricted,universe,multiverse" \
-    v101 "${ROOTFS_DIR}" "${MIRROR_URL}" gutsy
+function min() {
+    sudo debootstrap --no-check-gpg --variant=minbase \
+        --components="main,restricted,universe,multiverse" \
+        v101 "${ROOTFS_DIR}" "${MIRROR_URL}" gutsy
+}
+
+function def() {
+    sudo debootstrap --no-check-gpg --arch=amd64 --keep-debootstrap-dir \
+        --components="main,restricted,universe,multiverse" \
+        v101 "${ROOTFS_DIR}" "${MIRROR_URL}" gutsy
+}
+
+function deb() {
+    sudo debootstrap --no-check-gpg --arch=amd64 --print-debs --keep-debootstrap-dir \
+        --components="main,restricted,universe,multiverse" \
+        v101 "${ROOTFS_DIR}" "${MIRROR_URL}" gutsy
+}
+
+# 判断参数个数
+if [ $# -eq 0 ]; then
+    grep "^function " $(readlink -f $0) | awk -F '[( )]' '{print $2}'
+fi
+
+$1

+ 8 - 0
usr/sbin/debootstrap

@@ -704,9 +704,17 @@ if am_doing_phase finddebs; then
 
 		info RESOLVEREQ "Resolving dependencies of required packages..."
 		required=$(resolve_deps "$requiredX")
+		mylog "01-required@deps.txt" "$(echo ${required} | xargs | tr ' ' '\n')"
 		info RESOLVEBASE "Resolving dependencies of base packages..."
 		base=$(resolve_deps "$baseX")
+		mylog "02-important@deps.txt" "$(echo ${base} | xargs | tr ' ' '\n')"
 		base=$(without "$base" "$required")
+		mylog "02-important@deps@without@required.txt" "$(echo ${base} | xargs | tr ' ' '\n')"
+
+		requiredX=$(without "$required" "$requiredX")
+		mylog "01-requiredX.txt" "$(echo ${requiredX} | xargs | tr ' ' '\n')"
+		baseX=$(without "$base" "$baseX")
+		mylog "02-importantX.txt" "$(echo ${baseX} | xargs | tr ' ' '\n')"
 
 		if [ "$LOG_EXTRA_DEPS" = true ]; then
 			baseN=$(without "$baseX" "$requiredX")

+ 14 - 0
usr/share/debootstrap/functions

@@ -1,3 +1,17 @@
+############################################################### mylog
+MY_LOG_FILE=/var/tmp/my_debootstrap.log
+: >${MY_LOG_FILE}
+
+mylog() {
+	if [ $# -eq 1 ]; then
+		echo "---> $1" >>${MY_LOG_FILE}
+	else
+		filename=$1
+		shift
+		echo "$@" >/var/tmp/${filename}
+	fi
+}
+
 ############################################################### smallutils
 
 smallyes() {

+ 2 - 0
usr/share/debootstrap/scripts/gutsy

@@ -42,11 +42,13 @@ esac
 
 work_out_debs () {
 	required="$(get_debs Priority: required)"
+	mylog "01-required.txt" "${required}"
 
 	if doing_variant - || doing_variant fakechroot; then
 		#required="$required $(get_debs Priority: important)"
 		#  ^^ should be getting debconf here somehow maybe
 		base="$(get_debs Priority: important)"
+		mylog "02-important.txt" "${base}"
 	elif doing_variant buildd; then
 		base="apt build-essential"
 	elif doing_variant minbase; then