Browse Source

分析列表添加一些日志

侠义书生 3 years ago
parent
commit
0dfd3fbd7c

+ 47 - 0
debootstrap/apt_list/analysis.awk

@@ -0,0 +1,47 @@
+BEGIN {
+    LINO=1
+    PACKAGE_NAME=""
+    VERSION=""
+    PRIORITY=""
+    PREDEPENDS=""
+    DEPENDS=""
+    FILENAME=""
+}
+
+{
+    if ( $1 ~ "^Package:" ) {
+        LINO=NR
+        PACKAGE_NAME=$2
+        VERSION=""
+        PRIORITY=""
+        PREDEPENDS=""
+        DEPENDS=""
+        FILENAME=""
+    } else if ( $1 ~ "^Version:" ) {
+        VERSION=$2
+    } else if ( $1 ~ "^Priority:" ) {
+        PRIORITY=$2
+    } else if ( $1 ~ "^Pre-Depends:" ) {
+        sub(/^Pre-Depends: /, "")
+        PREDEPENDS=$0
+    } else if ( $1 ~ "^Depends:" ) {
+        sub(/^Depends: /, "")
+        DEPENDS=$0
+    } else if ( $1 ~ "^Filename:" ) {
+        FILENAME=$2
+    } else if ( $1 ~ "^Description:" ) {
+        if ( PRIORITY == SEARCH_STR ) {
+            print PACKAGE_NAME
+            # print PACKAGE_NAME,VERSION
+            # print DEPENDS
+            # print PACKAGE_NAME"\n"DEPENDS
+            # print PACKAGE_NAME"\n"PREDEPENDS"\n"DEPENDS
+            # print PREDEPENDS"\n"DEPENDS
+            # print LINO,PACKAGE_NAME,PRIORITY,PREDEPENDS,DEPENDS,FILENAME
+        }
+    }
+}
+
+END {
+    # print "end"
+}

+ 1 - 2
debootstrap/apt_list/depends.awk

@@ -51,7 +51,6 @@ BEGIN {
     } else if ( $1 ~ "^Filename:" ) {
         FILENAME=$2
     } else if ( $1 ~ "^Description:" ) {
-        # DEPENDS ~ SEARCH_STR || PREDEPENDS ~ SEARCH_STR
         if ( FIND==1 ) {
             # print PACKAGE_NAME
             # print LINO,PACKAGE_NAME,PRIORITY,PREDEPENDS,DEPENDS,FILENAME
@@ -66,4 +65,4 @@ BEGIN {
 
 END {
     # print "end"
-}
+}

+ 106 - 0
debootstrap/apt_list/test2.sh

@@ -0,0 +1,106 @@
+############################################################### mylog
+MY_LOG_FILE=/var/tmp/my_analysis.log
+: >${MY_LOG_FILE}
+
+mylog() {
+    if [ $# -eq 1 ]; then
+        echo "---> $1" >>${MY_LOG_FILE}
+    else
+        filename=$1
+        shift
+        echo "$@" >/var/tmp/${filename}
+    fi
+}
+
+mylog2() {
+    echo "---> $@" >>${MY_LOG_FILE}
+}
+
+# 查找依赖 pkgname 的包
+function t1() {
+    pkgname="bash"
+    result=$(awk -v SEARCH_STR="${pkgname}" -f depends.awk /var/tmp/indices/172.29.220.242/mirror/kylin/dists/v101/main/binary-amd64/Packages)
+    # echo "${result}"
+}
+
+# 查找 Priority 对应的包
+function t2() {
+    PRIO="required"
+    required=$(awk -v SEARCH_STR="${PRIO}" -f analysis.awk /var/tmp/indices/172.29.220.242/mirror/kylin/dists/v101/main/binary-amd64/Packages)
+    mylog "01-required.txt2" "${required}"
+
+    PRIO="important"
+    base=$(awk -v SEARCH_STR="${PRIO}" -f analysis.awk /var/tmp/indices/172.29.220.242/mirror/kylin/dists/v101/main/binary-amd64/Packages)
+    mylog "02-important.txt2" "${base}"
+}
+
+# apt list 分析
+function t3() {
+    MIRROR="/var/tmp/indices/172.29.220.242/mirror/kylin/dists"
+
+    # analysis.sh --repo ${MIRROR} --prio required | awk '{print $1}' |
+    #     xargs -i analysis.sh --repo ${MIRROR} --pkg {} |
+    #     grep -E "^Depends:|^Pre-Depends" | sed 's/^.*Depends://' | tr ',' '\n' | tr '|' '\n' | sed 's#(.*)##g' | xargs | tr ' ' '\n' | sort | uniq
+
+    analysis.sh --repo ${MIRROR} --prio required | awk '{print $1}' |
+        xargs -i analysis.sh --repo ${MIRROR} --pkg {} |
+        grep -E "^Depends:|^Pre-Depends" | sed 's/^.*Depends://' | tr ',' '\n' | sed 's/|.*//' | sed 's#(.*)##g' | xargs | tr ' ' '\n' | sort | uniq
+}
+
+# 查找单个包
+function t4() {
+    . analysis.sh
+    analysis_sigle_file2 /var/tmp/indices/172.29.220.242/mirror/kylin/dists/v101/main/binary-amd64/Packages libpam-runtime |
+        grep -E "^Depends:|^Pre-Depends" | sed 's/^.*Depends://' | tr ',' '\n' | sed 's/|.*//' | sed 's#(.*)##g' | xargs | tr ' ' '\n' | sort | uniq
+}
+
+resolve_deps() {
+    MIRROR="/var/tmp/indices/172.29.220.242/mirror/kylin/dists"
+
+    local PKGS="$*"
+    local ALLPKGS="$PKGS"
+    local ALLPKGS2=""
+    while [ "$PKGS" != "" ]; do
+        local NEWPKGS=""
+        # for s in $SUITE $EXTRA_SUITES; do
+        #     for c in ${COMPONENTS:-$(echo ${USE_COMPONENTS} | tr '|' ' ')}; do
+        #         local path="dists/$s/$c/binary-$ARCH/Packages"
+        #         local pkgdest="${TARGET_DIR}/172.29.220.242/mirror/kylin/dists/v101/main/binary-amd64/Packages"
+        #         NEWPKGS="$NEWPKGS $(pkgdetails_perl GETDEPS "$pkgdest" $PKGS)"
+        #     done
+        # done
+
+        for p in ${PKGS}; do
+            # echo ${p}
+            analysis.sh --repo ${MIRROR} --pkg ${p}
+        done | grep -E "^Depends:|^Pre-Depends" | sed 's/^.*Depends://' | tr ',' '\n' | sed 's/|.*//' | sed 's#(.*)##g' | xargs | tr ' ' '\n' | sort | uniq
+
+        # TMP=$(echo ${PKGS} | xargs -i analysis.sh --repo ${MIRROR} --pkg {} | grep -E "^Depends:|^Pre-Depends" | sed 's/^.*Depends://' | tr ',' '\n' | sed 's/|.*//' | sed 's#(.*)##g' | xargs | tr ' ' '\n' | sort | uniq)
+        # mylog2 "${TMP}"
+
+        exit
+
+        mylog "newpkgs.txt2" "$(echo ${NEWPKGS} | xargs | tr ' ' '\n')"
+        PKGS=$(echo "$PKGS $NEWPKGS" | tr ' ' '\n' | sort | uniq)
+        local REALPKGS=""
+        for s in $SUITE $EXTRA_SUITES; do
+            for c in ${COMPONENTS:-$(echo ${USE_COMPONENTS} | tr '|' ' ')}; do
+                local path="dists/$s/$c/binary-$ARCH/Packages"
+                local pkgdest="${TARGET_DIR}/172.29.220.242/mirror/kylin/dists/v101/main/binary-amd64/Packages"
+                REALPKGS="$REALPKGS $(pkgdetails_perl PKGS REAL "$pkgdest" $PKGS | sed -n 's/ .*REAL.*$//p')"
+            done
+        done
+        mylog "realpkgs.txt2" "$(echo ${REALPKGS} | xargs | tr ' ' '\n')"
+        PKGS="$REALPKGS"
+        ALLPKGS2=$(echo "$PKGS $ALLPKGS" | tr ' ' '\n' | sort | uniq)
+        PKGS=$(without "$ALLPKGS2" "$ALLPKGS")
+        ALLPKGS="$ALLPKGS2"
+    done
+    echo "$ALLPKGS"
+}
+
+SHELL_DIR=$(dirname $(readlink -f $0))
+
+PRIO="required"
+required=$(awk -v SEARCH_STR="${PRIO}" -f ${SHELL_DIR}/analysis.awk /var/tmp/indices/172.29.220.242/mirror/kylin/dists/v101/main/binary-amd64/Packages)
+resolve_deps "${required}"

+ 7 - 0
debootstrap/my_debootstrap.sh

@@ -12,6 +12,10 @@ mylog() {
     fi
 }
 
+mylog2() {
+    echo "---> $@" >>${MY_LOG_FILE}
+}
+
 smallyes() {
     YES="${1-y}"
     while echo "$YES" 2>/dev/null; do :; done
@@ -310,6 +314,7 @@ for $v (keys %fields) {
 }
 
 pkgdetails_perl() {
+    mylog2 "$@"
     if [ "$1" = "WGET%" ]; then
         shift
         perl -e '
@@ -439,6 +444,7 @@ resolve_deps() {
                 NEWPKGS="$NEWPKGS $(pkgdetails_perl GETDEPS "$pkgdest" $PKGS)"
             done
         done
+        mylog "newpkgs.txt" "$(echo ${NEWPKGS} | xargs | tr ' ' '\n')"
         PKGS=$(echo "$PKGS $NEWPKGS" | tr ' ' '\n' | sort | uniq)
         local REALPKGS=""
         for s in $SUITE $EXTRA_SUITES; do
@@ -449,6 +455,7 @@ resolve_deps() {
                 REALPKGS="$REALPKGS $(pkgdetails_perl PKGS REAL "$pkgdest" $PKGS | sed -n 's/ .*REAL.*$//p')"
             done
         done
+        mylog "realpkgs.txt" "$(echo ${REALPKGS} | xargs | tr ' ' '\n')"
         PKGS="$REALPKGS"
         ALLPKGS2=$(echo "$PKGS $ALLPKGS" | tr ' ' '\n' | sort | uniq)
         PKGS=$(without "$ALLPKGS2" "$ALLPKGS")