1 changed files with 64 additions and 0 deletions
@ -0,0 +1,64 @@
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/python |
||||
# -*- coding: UTF-8 -*- |
||||
#================== |
||||
# Author: Alvis Zhao |
||||
# Date: 2020-08-14 11:45:09 |
||||
# LastEditTime: 2020-08-14 11:51:17 |
||||
# Description: 下载ubuntu deb软件及其依赖包 |
||||
#================== |
||||
|
||||
import os |
||||
import sys |
||||
|
||||
def showUsage(): |
||||
print("Usage:") |
||||
print(" python download-apt.py net-tools") |
||||
|
||||
def getDepends(pkg): |
||||
dependList = [] |
||||
cmd = 'apt-cache depends ' + pkg + ' | grep Depends |cut -d: -f2 |tr -d "<>" | sort | uniq' |
||||
pipeline = os.popen(cmd) |
||||
items = pipeline.read().split("\n") |
||||
for item in items: |
||||
if len(item) > 0: |
||||
dependList.append(item) |
||||
return dependList |
||||
|
||||
def main(): |
||||
if len(sys.argv) < 2: |
||||
print("用法错误!") |
||||
showUsage() |
||||
return |
||||
|
||||
pkgAll = [] |
||||
pkg = sys.argv[1] |
||||
outputDir = pkg |
||||
pkgAll.append(pkg) |
||||
|
||||
os.popen('mkdir -p ' + outputDir) |
||||
# dependList = getDepends(pkg) |
||||
# pkgAll = pkgAll + dependList |
||||
# 递归深度 |
||||
depth = 3 |
||||
count = 0 |
||||
tempList = [] |
||||
tempList.append(pkg) |
||||
while (count < depth): |
||||
count = count + 1 |
||||
itemDepends = [] |
||||
for item in tempList: |
||||
dependList = getDepends(item) |
||||
itemDepends = itemDepends + dependList |
||||
pkgAll = pkgAll + itemDepends |
||||
tempList = itemDepends |
||||
|
||||
# 先将列表转化为set,再转化为list就可以实现去重操作 |
||||
pkgAll = list(set(pkgAll)) |
||||
os.chdir(outputDir) |
||||
for item in pkgAll: |
||||
# download deb package |
||||
print(" downloading " + item) |
||||
os.popen('apt-get download ' + item) |
||||
|
||||
if __name__ == '__main__': |
||||
main() |
Loading…
Reference in new issue