This commit is contained in:
qiurui 2024-09-05 15:56:29 +08:00
commit e9adaf10f6
10 changed files with 5011 additions and 0 deletions

137
operation.py Normal file
View File

@ -0,0 +1,137 @@
import subprocess,re,os,time
import networkx as nx
import matplotlib.pyplot as plt
import numpy as np
package_list = []
result_list = []
G = nx.DiGraph()
def download_source(package):
package_folder = os.getcwd() + "/tmp/" + package
if os.path.exists(package_folder) == False:
cmd = "mkdir " + package_folder + " && cd " + package_folder + " && apt source " + package
#print(cmd)
intofolder_source = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE) #cd /tmp && apt source wpasupplicant
intofolder_source.wait()
def get_source_name(package):
package_folder = os.getcwd() + "/tmp/" + package
#print(package_folder)
path_list = os.listdir(package_folder)
for path in path_list:
if '_' in path:
source_name = path.split("_")[0]
else:
source_name = path.split("-")[0]
break
print("package = ",package)
print("-----source_name = ",source_name)
cmd = "rm -rf " + package_folder
#print(cmd)
rm_source = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE) #cd /tmp && apt source wpasupplicant
rm_source.wait()
print(type(source_name))
return source_name
def list_del(list):
for package in list:
if '|' in package:
package_test = package.split("|")
if package_test [0] in package_list:
list.remove(package)
list.append(package_test[0])
else:
list.remove(package)
list.append(package_test[1])
return list
def dpkg_analyze(package):
cmd = "dpkg -s " + package + " |grep Depends:"
#print(package)
dpkg_depends = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE) #dpkg -s wpasupplicant
result_stdout = dpkg_depends.stdout.readline()
result_without = re.sub(u"\\(.*?\\)", "", str(result_stdout,encoding= " utf-8"))
result = result_without.replace('Depends: ','')
result = result.replace(' ','')
result = result.replace('\n','')
result_list = result.split(",")
return list_del(result_list)
f = open ("ubuntu2204-package.txt")
lines = f.readlines()
number = 0
count = 0
for line in lines:
number = number + 1
#if number > 5 and number < 10:
if number > 5:
package_name = line.split()[1].replace(':amd64','')
if "linux-" not in package_name:
package_list.append(package_name) #add package name to list
##初始化使用
#a = np.array([['1','2']],dtype="<U1000")
#b = np.array([['1','2']])
#final_np = np.insert(a, 0, values=b, axis=0)
#for i in range(len(package_list)-1):
# final_np = np.insert(final_np, 0, values=b, axis=0)
##初始化使用2
final_np = np.loadtxt("temp.csv", delimiter=",", dtype="<U1000")
if np.any(final_np == "accountsservice") == False:
final_np = np.empty((len(package_list), 2),dtype="<U1000")
print(final_np)
##加载数据
#final_np = np.loadtxt("temp.csv", delimiter=",", dtype="<U1000")
#print(np.any(final_np == "os-prober"))
#print(final_np)
#exit(0)
###test
#print(package_list)
#list_test = ['hicolor-icon-theme', 'gtk-update-icon-cache', 'ubuntu-mono|adwaita-icon-theme-full']
#list_del(list_test)
#print(list_test)
print("len(package_list) = ", len(package_list)) ##1628个
#print("package_list = ", package_list)
line = 0
#print(np.any(final_np == "os-prober"))
#exit(0)
for package in package_list:
print(package)
if np.any(final_np == package) == False:
print(line)
download_source(package)
final_np[line][0] = package
final_np[line][1] = get_source_name(package)
else:
final_np[line][0] = final_np[line][0]
final_np[line][1] = final_np[line][1]
if len(final_np[line][1]) != 0:
print(final_np[line][1])
result_list.append(final_np[line][1])
G.add_node(final_np[line][1])
np.savetxt("temp.csv", final_np, delimiter=",", fmt='%s')
line = line + 1
print(final_np)
#print("result_list = " , result_list)
print("len(result_list)) = ", len(result_list))
np.savetxt("temp.csv", final_np, delimiter=",")
#for package in package_list:
# depend_list = dpkg_analyze(package)
# print(depend_list)
# if len(depend_list) > 0 and len(get_source_name(package)) != 0:
# for depend in depend_list:
# G.add_edge(get_source_name(package),get_source_name(depend))
#pos = nx.spring_layout(G)
#nx.draw(G,pos,with_labels=True)
#plt.show()

1628
temp.csv Normal file

File diff suppressed because it is too large Load Diff

32
test.py Normal file
View File

@ -0,0 +1,32 @@
import os
package_list = []
def get_source_name(package):
package_folder = os.getcwd() + "/tmp/" + package
#print(package_folder)
path_list = os.listdir(package_folder)
for path in path_list:
if '_' in path:
source_name = path.split("_")[0]
else:
source_name = path.split("-")[0]
break
print("package = ",package)
print("-----source_name = ",source_name)
return source_name
f = open ("ubuntu2204-package.txt")
lines = f.readlines()
number = 0
for line in lines:
number = number + 1
#if number > 5 and number < 10:
if number > 5:
package_name = line.split()[1]
if "linux-" not in package_name:
package_list.append(package_name) #add package name to list
for package in package_list:
get_source_name(package)

View File

@ -0,0 +1,50 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Format: 3.0 (quilt)
Source: alsa-driver
Binary: linux-sound-base, alsa-base, alsa-base-udeb, alsa-source
Architecture: all
Version: 1.0.25+dfsg-0ubuntu7
Maintainer: Ubuntu Core Developers <ubuntu-devel@lists.ubuntu.com>
Uploaders: Jordi Mallach <jordi@debian.org>, Elimar Riesebieter <riesebie@lxtec.de>
Homepage: http://www.alsa-project.org/
Standards-Version: 3.9.2
Vcs-Bzr: http://bazaar.launchpad.net/~ubuntu-audio-dev/alsa-driver/ubuntu
Build-Depends: debhelper (>= 7), po-debconf
Build-Depends-Indep: autoconf, bzip2, cpio
Package-List:
alsa-base deb sound optional arch=all
alsa-base-udeb udeb debian-installer optional arch=all profile=!noudeb
alsa-source deb kernel optional arch=all
linux-sound-base deb sound optional arch=all
Checksums-Sha1:
4f40148f91cb3fcc88ea198916ae5970bfe54eda 3825058 alsa-driver_1.0.25+dfsg.orig.tar.bz2
21b81a9092f6cb36f0d22b392ced3c7b79a1f569 261976 alsa-driver_1.0.25+dfsg-0ubuntu7.debian.tar.bz2
Checksums-Sha256:
5367f37c2228269c31ab656cbbefbaafa7e56b2bba4569b25c13f7d62649188c 3825058 alsa-driver_1.0.25+dfsg.orig.tar.bz2
5e427a5b140aa163c8285ab3d26958db6a5d9e79a563528a2444c72e1dbe22c6 261976 alsa-driver_1.0.25+dfsg-0ubuntu7.debian.tar.bz2
Files:
5b4349327b0d1200b0a97c58926e15a3 3825058 alsa-driver_1.0.25+dfsg.orig.tar.bz2
0f3169e8cb9c4dd95520fb748a600f16 261976 alsa-driver_1.0.25+dfsg-0ubuntu7.debian.tar.bz2
Debian-Vcs-Browser: http://svn.debian.org/wsvn/pkg-alsa/trunk/alsa-driver/
Debian-Vcs-Svn: svn://svn.debian.org/pkg-alsa/trunk/alsa-driver
Original-Maintainer: Debian ALSA Maintainers <pkg-alsa-devel@lists.alioth.debian.org>
-----BEGIN PGP SIGNATURE-----
iQJEBAEBCAAuFiEE1WVxuIqLuvFAv2PWvX6qYHePpvUFAmAzl7sQHGRva29AdWJ1
bnR1LmNvbQAKCRC9fqpgd4+m9S+qD/4lAeUJ9TWUiTvfnepeHZZO/33LRk3uxeb/
K05FCeWii8VnelRpq2UbGxwgDmMJcUeeoOi1wirn3107BThLwBZcxUcaXI0Ec/s3
stgyeNdKTFHz9yatE2PRdv+3z1f82qvDXW/rAag2ukbdz6KFXFCMEhFcglTqF+98
cOIZALFm58ugmVPGgslogMMykcSgTKfc2VCOsOSS9vPT7CnEpQqbggnjMerhGLbh
JCc0bBeWz5IyaVVws6QfmDSdIaxXG0QSPrFrhzL3Qq2QmpBbcZWAGQtXw88JGQxl
Ibw8alT0YPL4QypTpwIcfvqy+KG8WAmiZUsXcdzYiYL0ZBLdVE5787XuoUoi9qAF
eGbYQHq5eBWT8EbdvAdKad0/fniJeXEkADSurn4lLw+kU8f7osIgYQG+BwldwcC/
6jYZHL645ElBy9EsX04JMKUK4B8PGb+cnxC84wyVTNY2HjuG0O1+6eJuk+gSAhOR
y99v/EzmyESTv9uc3Nz0JkhIpLyKT/Xq+QUDPzfde5I975MAVvPCZCVeIxepE4E5
rmthq7bF14ijlkZ8KRpK2ZZD6iY5ONljeYNZOVBmVNGFc3pk8tZSig9dVSrc1vOx
XmWrylLyYb2DO64DMJl0nHNWDEJ3SFwn11aVWQde8I+j1WfpQRRf9aS5dSkryxX8
4uhy4j506Q==
=3X+a
-----END PGP SIGNATURE-----

Binary file not shown.

1652
ubuntu2204-package.txt Normal file

File diff suppressed because it is too large Load Diff

9
ubuntu2204-snap.txt Normal file
View File

@ -0,0 +1,9 @@
Name Version Rev Tracking Publisher Notes
bare 1.0 5 latest/stable canonical** base
core20 20220719 1587 latest/stable canonical** base
firefox 103.0.1-1 1635 latest/stable/… mozilla** -
gnome-3-38-2004 0+git.891e5bc 112 latest/stable/… canonical** -
gtk-common-themes 0.1-81-g442e511 1535 latest/stable/… canonical** -
snap-store 41.3-60-gfe4703a 582 latest/stable/… canonical** -
snapd 2.56.2 16292 latest/stable canonical** snapd
snapd-desktop-integration 0.1 14 latest/stable/… canonical** -

1493
ubuntu2404-package.txt Normal file

File diff suppressed because it is too large Load Diff

10
ubuntu2404-snap.txt Normal file
View File

@ -0,0 +1,10 @@
Name Version Rev Tracking Publisher Notes
bare 1.0 5 latest/stable canonical** base
core22 20240408 1380 latest/stable canonical** base
firefox 125.0.2-1 4173 latest/stable/… mozilla** -
firmware-updater 0+git.5007558 127 latest/stable/… canonical** -
gnome-42-2204 0+git.510a601 176 latest/stable/… canonical** -
gtk-common-themes 0.1-81-g442e511 1535 latest/stable/… canonical** -
snap-store 0+git.1419621 1124 latest/stable/… canonical** -
snapd 2.62 21465 latest/stable canonical** snapd
snapd-desktop-integration 0.9 157 latest/stable/… canonical** -