|
@@ -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}"
|