TPM零知识学习四 —— tpm2-tss源码安装

news2024/11/26 13:31:51

tpm2-tss包的的安装方法参考:

tpm2-tss/INSTALL.md at master · tpm2-software/tpm2-tss · GitHub

1. 源码下载

$ git clone https://github.com/tpm2-software/tpm2-tss.git

下载完成后,源码内容如下所示:

$ ls
afl-fuzzing  CHANGELOG.md        configure.ac     dist  Doxyfile.in  include     lib      m4           Makefile.am       Makefile-test.am  README.md   script       sphinx  test          tss2-dlopen
bootstrap    CODE_OF_CONDUCT.md  CONTRIBUTING.md  doc   git.mk       INSTALL.md  LICENSE  MAINTAINERS  Makefile-fuzz.am  man               RELEASE.md  SECURITY.md  src     tpm2-tss.sln

$ ls -l
总用量 504
drwxrwxr-x  2 ph ph   4096 12月  1 16:07 afl-fuzzing
-rwxrwxr-x  1 ph ph   2969 12月  1 16:07 bootstrap
-rw-rw-r--  1 ph ph  53489 12月  1 16:07 CHANGELOG.md
-rw-rw-r--  1 ph ph   5492 12月  1 16:07 CODE_OF_CONDUCT.md
-rw-rw-r--  1 ph ph  28121 12月  1 16:07 configure.ac
-rw-rw-r--  1 ph ph   2901 12月  1 16:07 CONTRIBUTING.md
drwxrwxr-x  5 ph ph   4096 12月  1 16:07 dist
drwxrwxr-x  2 ph ph   4096 12月  1 16:07 doc
-rw-rw-r--  1 ph ph 115070 12月  1 16:07 Doxyfile.in
-rw-rw-r--  1 ph ph  12871 12月  1 16:07 git.mk
drwxrwxr-x  3 ph ph   4096 12月  1 16:07 include
-rw-rw-r--  1 ph ph   7037 12月  1 16:07 INSTALL.md
drwxrwxr-x  2 ph ph   4096 12月  1 16:07 lib
-rw-rw-r--  1 ph ph   1236 12月  1 16:07 LICENSE
drwxrwxr-x  2 ph ph   4096 12月  1 16:07 m4
-rw-rw-r--  1 ph ph    121 12月  1 16:07 MAINTAINERS
-rw-rw-r--  1 ph ph  33267 12月  1 16:07 Makefile.am
-rw-rw-r--  1 ph ph   2074 12月  1 16:07 Makefile-fuzz.am
-rw-rw-r--  1 ph ph 132776 12月  1 16:07 Makefile-test.am
drwxrwxr-x  2 ph ph   4096 12月  1 16:07 man
-rw-rw-r--  1 ph ph  13111 12月  1 16:07 README.md
-rw-rw-r--  1 ph ph   6191 12月  1 16:07 RELEASE.md
drwxrwxr-x  3 ph ph   4096 12月  1 16:07 script
-rw-rw-r--  1 ph ph   1609 12月  1 16:07 SECURITY.md
drwxrwxr-x  2 ph ph   4096 12月  1 16:07 sphinx
drwxrwxr-x 10 ph ph   4096 12月  1 16:07 src
drwxrwxr-x  8 ph ph   4096 12月  1 16:07 test
-rw-rw-r--  1 ph ph   7040 12月  1 16:07 tpm2-tss.sln
drwxrwxr-x  2 ph ph   4096 12月  1 16:07 tss2-dlopen

2. 安装依赖

To build and install the tpm2-tss software the following software packages are required. In many cases dependencies are platform specific and so the following sections describe them for the supported platforms.

编译并安装tpm2-tss需要以下软件依赖。在很多情况下,依赖是特定于平台的,以下段描述支持的平台:

  • GNU Autoconf
  • GNU Autoconf Archive, version >= 2017.03.21
  • GNU Automake
  • GNU Libtool
  • C compiler
  • C library development libraries and header files
  • pkg-config
  • doxygen
  • OpenSSL development libraries and header files, version >= 1.1.0
  • libcurl development libraries
  • Access Control List utility (acl)
  • JSON C Development library

编译测试套件时需要的包:

  • Integration test suite (see ./configure option --enable-integration):
    • uthash development libraries and header files
    • ps executable (usually in the procps package)
    • ss executable (usually in the iproute2 package)
    • tpm_server executable (from IBM's Software TPM 2.0 download | SourceForge.net)
  • Unit test suite (see ./configure option --enable-unit):
    • cmocka unit test framework, version >= 1.0
  • Code coverage analysis:
    • lcov

Ubuntu(Ubuntu 22.04)环境下,安装依赖步骤:

  • autoconf-archive安装
$ sudo apt install autoconf-archive
[sudo] ph 的密码: 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
下列软件包是自动安装的并且现在不需要了:
  golang-1.18-go golang-1.18-src golang-src libflashrom1 libftdi1-2
使用'sudo apt autoremove'来卸载它(它们)。
下列【新】软件包将被安装:
  autoconf-archive
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 6 个软件包未被升级。
需要下载 676 kB 的归档。
解压缩后会消耗 5,967 kB 的额外空间。
获取:1 http://cn.archive.ubuntu.com/ubuntu jammy/universe amd64 autoconf-archive all 20210219-2.1 [676 kB]
已下载 676 kB,耗时 7秒 (99.8 kB/s)                                            
正在选中未选择的软件包 autoconf-archive。
(正在读取数据库 ... 系统当前共安装有 257780 个文件和目录。)
准备解压 .../autoconf-archive_20210219-2.1_all.deb  ...
正在解压 autoconf-archive (20210219-2.1) ...
正在设置 autoconf-archive (20210219-2.1) ...
正在处理用于 install-info (6.8-4build1) 的触发器 ...
  • libcmocka0安装
$ sudo apt install libcmocka0
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
下列软件包是自动安装的并且现在不需要了:
  golang-1.18-go golang-1.18-src golang-src libflashrom1 libftdi1-2
使用'sudo apt autoremove'来卸载它(它们)。
下列【新】软件包将被安装:
  libcmocka0
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 6 个软件包未被升级。
需要下载 21.1 kB 的归档。
解压缩后会消耗 67.6 kB 的额外空间。
获取:1 http://cn.archive.ubuntu.com/ubuntu jammy/universe amd64 libcmocka0 amd64 1.1.5-2 [21.1 kB]
已下载 21.1 kB,耗时 1秒 (19.0 kB/s)                  
正在选中未选择的软件包 libcmocka0:amd64。
(正在读取数据库 ... 系统当前共安装有 258952 个文件和目录。)
准备解压 .../libcmocka0_1.1.5-2_amd64.deb  ...
正在解压 libcmocka0:amd64 (1.1.5-2) ...
正在设置 libcmocka0:amd64 (1.1.5-2) ...
正在处理用于 libc-bin (2.35-0ubuntu3.1) 的触发器 ...
  •  libcmocka-dev安装
$ sudo apt install libcmocka-dev 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
下列软件包是自动安装的并且现在不需要了:
  golang-1.18-go golang-1.18-src golang-src libflashrom1 libftdi1-2
使用'sudo apt autoremove'来卸载它(它们)。
将会同时安装下列软件:
  cmocka-doc
下列【新】软件包将被安装:
  cmocka-doc libcmocka-dev
升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 6 个软件包未被升级。
需要下载 100 kB 的归档。
解压缩后会消耗 1,106 kB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 http://cn.archive.ubuntu.com/ubuntu jammy/universe amd64 cmocka-doc all 1.1.5-2 [84.2 kB]
获取:2 http://cn.archive.ubuntu.com/ubuntu jammy/universe amd64 libcmocka-dev amd64 1.1.5-2 [15.9 kB]
已下载 100 kB,耗时 3秒 (39.3 kB/s)      
正在选中未选择的软件包 cmocka-doc。
(正在读取数据库 ... 系统当前共安装有 258957 个文件和目录。)
准备解压 .../cmocka-doc_1.1.5-2_all.deb  ...
正在解压 cmocka-doc (1.1.5-2) ...
正在选中未选择的软件包 libcmocka-dev:amd64。
准备解压 .../libcmocka-dev_1.1.5-2_amd64.deb  ...
正在解压 libcmocka-dev:amd64 (1.1.5-2) ...
正在设置 libcmocka-dev:amd64 (1.1.5-2) ...
正在设置 cmocka-doc (1.1.5-2) ...
  • procps安装
$ sudo apt install procps
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
procps 已经是最新版 (2:3.3.17-6ubuntu2)。
procps 已设置为手动安装。
下列软件包是自动安装的并且现在不需要了:
  golang-1.18-go golang-1.18-src golang-src libflashrom1 libftdi1-2
使用'sudo apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 6 个软件包未被升级。
  • iproute2安装
$ sudo apt install iproute2
[sudo] ph 的密码: 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
iproute2 已经是最新版 (5.15.0-1ubuntu2)。
iproute2 已设置为手动安装。
下列软件包是自动安装的并且现在不需要了:
  golang-1.18-go golang-1.18-src golang-src libflashrom1 libftdi1-2
使用'sudo apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 6 个软件包未被升级。
  • build-essential安装
$ sudo apt install build-essential
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
build-essential 已经是最新版 (12.9ubuntu3)。
下列软件包是自动安装的并且现在不需要了:
  golang-1.18-go golang-1.18-src golang-src libflashrom1 libftdi1-2
使用'sudo apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 6 个软件包未被升级。
  • git安装
$ sudo apt install git
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
git 已经是最新版 (1:2.34.1-1ubuntu1.5)。
下列软件包是自动安装的并且现在不需要了:
  golang-1.18-go golang-1.18-src golang-src libflashrom1 libftdi1-2
使用'sudo apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 6 个软件包未被升级。
  •  pkg-config安装
$ sudo apt install pkg-config 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
pkg-config 已经是最新版 (0.29.2-1ubuntu3)。
下列软件包是自动安装的并且现在不需要了:
  golang-1.18-go golang-1.18-src golang-src libflashrom1 libftdi1-2
使用'sudo apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 6 个软件包未被升级。
  • gcc安装
$ sudo apt install gcc
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
gcc 已经是最新版 (4:11.2.0-1ubuntu1)。
下列软件包是自动安装的并且现在不需要了:
  golang-1.18-go golang-1.18-src golang-src libflashrom1 libftdi1-2
使用'sudo apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 6 个软件包未被升级。
  • libtool安装
$ sudo apt install libtool
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
libtool 已经是最新版 (2.4.6-15build2)。
下列软件包是自动安装的并且现在不需要了:
  golang-1.18-go golang-1.18-src golang-src libflashrom1 libftdi1-2
使用'sudo apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 6 个软件包未被升级。
  • automake安装
$ sudo apt install automake
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
automake 已经是最新版 (1:1.16.5-1.3)。
下列软件包是自动安装的并且现在不需要了:
  golang-1.18-go golang-1.18-src golang-src libflashrom1 libftdi1-2
使用'sudo apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 6 个软件包未被升级。
  • libssl-dev安装
$ sudo apt install libssl-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
libssl-dev 已经是最新版 (3.0.2-0ubuntu1.7)。
下列软件包是自动安装的并且现在不需要了:
  golang-1.18-go golang-1.18-src golang-src libflashrom1 libftdi1-2
使用'sudo apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 6 个软件包未被升级。
  • uthash-dev安装
$ sudo apt install uthash-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
下列软件包是自动安装的并且现在不需要了:
  golang-1.18-go golang-1.18-src golang-src libflashrom1 libftdi1-2
使用'sudo apt autoremove'来卸载它(它们)。
下列【新】软件包将被安装:
  uthash-dev
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 6 个软件包未被升级。
需要下载 176 kB 的归档。
解压缩后会消耗 938 kB 的额外空间。
获取:1 http://cn.archive.ubuntu.com/ubuntu jammy/universe amd64 uthash-dev amd64 2.3.0-1 [176 kB]
已下载 176 kB,耗时 2秒 (72.5 kB/s)                   
正在选中未选择的软件包 uthash-dev:amd64。
(正在读取数据库 ... 系统当前共安装有 259148 个文件和目录。)
准备解压 .../uthash-dev_2.3.0-1_amd64.deb  ...
正在解压 uthash-dev:amd64 (2.3.0-1) ...
正在设置 uthash-dev:amd64 (2.3.0-1) ...
正在处理用于 man-db (2.10.2-1) 的触发器 ...
  • autoconf安装
$ sudo apt install autoconf
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
autoconf 已经是最新版 (2.71-2)。
下列软件包是自动安装的并且现在不需要了:
  golang-1.18-go golang-1.18-src golang-src libflashrom1 libftdi1-2
使用'sudo apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 6 个软件包未被升级。
  • doxygen安装
$ sudo apt install doxygen
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
下列软件包是自动安装的并且现在不需要了:
  golang-1.18-go golang-1.18-src golang-src libflashrom1 libftdi1-2
使用'sudo apt autoremove'来卸载它(它们)。
将会同时安装下列软件:
  libclang-cpp14 libxapian30
建议安装:
  doxygen-latex doxygen-doc doxygen-gui graphviz xapian-tools
下列【新】软件包将被安装:
  doxygen libclang-cpp14 libxapian30
升级了 0 个软件包,新安装了 3 个软件包,要卸载 0 个软件包,有 6 个软件包未被升级。
需要下载 17.4 MB 的归档。
解压缩后会消耗 78.6 MB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 http://cn.archive.ubuntu.com/ubuntu jammy/universe amd64 libclang-cpp14 amd64 1:14.0.0-1ubuntu1 [12.1 MB]
获取:2 http://cn.archive.ubuntu.com/ubuntu jammy/universe amd64 libxapian30 amd64 1.4.18-4 [701 kB]                                                                                                       
获取:3 http://cn.archive.ubuntu.com/ubuntu jammy/universe amd64 doxygen amd64 1.9.1-2ubuntu2 [4,620 kB]                                                                                                   
已下载 17.4 MB,耗时 11秒 (1,600 kB/s)                                                                                                                                                                    
正在选中未选择的软件包 libclang-cpp14。
(正在读取数据库 ... 系统当前共安装有 259293 个文件和目录。)
准备解压 .../libclang-cpp14_1%3a14.0.0-1ubuntu1_amd64.deb  ...
正在解压 libclang-cpp14 (1:14.0.0-1ubuntu1) ...
正在选中未选择的软件包 libxapian30:amd64。
准备解压 .../libxapian30_1.4.18-4_amd64.deb  ...
正在解压 libxapian30:amd64 (1.4.18-4) ...
正在选中未选择的软件包 doxygen。
准备解压 .../doxygen_1.9.1-2ubuntu2_amd64.deb  ...
正在解压 doxygen (1.9.1-2ubuntu2) ...
正在设置 libxapian30:amd64 (1.4.18-4) ...
正在设置 libclang-cpp14 (1:14.0.0-1ubuntu1) ...
正在设置 doxygen (1.9.1-2ubuntu2) ...
正在处理用于 man-db (2.10.2-1) 的触发器 ...
正在处理用于 libc-bin (2.35-0ubuntu3.1) 的触发器 ...
  • libjson-c-dev安装
$ sudo apt install libjson-c-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
下列软件包是自动安装的并且现在不需要了:
  golang-1.18-go golang-1.18-src golang-src libflashrom1 libftdi1-2
使用'sudo apt autoremove'来卸载它(它们)。
下列【新】软件包将被安装:
  libjson-c-dev
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 6 个软件包未被升级。
需要下载 60.5 kB 的归档。
解压缩后会消耗 290 kB 的额外空间。
获取:1 http://cn.archive.ubuntu.com/ubuntu jammy-updates/main amd64 libjson-c-dev amd64 0.15-3~ubuntu1.22.04.1 [60.5 kB]
已下载 60.5 kB,耗时 1秒 (46.3 kB/s)                  
正在选中未选择的软件包 libjson-c-dev:amd64。
(正在读取数据库 ... 系统当前共安装有 259323 个文件和目录。)
准备解压 .../libjson-c-dev_0.15-3~ubuntu1.22.04.1_amd64.deb  ...
正在解压 libjson-c-dev:amd64 (0.15-3~ubuntu1.22.04.1) ...
正在设置 libjson-c-dev:amd64 (0.15-3~ubuntu1.22.04.1) ...
  • libini-config-dev
$ sudo apt install libini-config-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
下列软件包是自动安装的并且现在不需要了:
  golang-1.18-go golang-1.18-src golang-src libflashrom1 libftdi1-2
使用'sudo apt autoremove'来卸载它(它们)。
将会同时安装下列软件:
  libbasicobjects-dev libbasicobjects0 libcollection-dev libcollection4 libini-config5 libpath-utils1 libref-array-dev libref-array1
下列【新】软件包将被安装:
  libbasicobjects-dev libbasicobjects0 libcollection-dev libcollection4 libini-config-dev libini-config5 libpath-utils1 libref-array-dev libref-array1
升级了 0 个软件包,新安装了 9 个软件包,要卸载 0 个软件包,有 6 个软件包未被升级。
需要下载 215 kB 的归档。
解压缩后会消耗 1,047 kB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 http://cn.archive.ubuntu.com/ubuntu jammy/main amd64 libbasicobjects0 amd64 0.6.2-1 [6,160 B]
获取:2 http://cn.archive.ubuntu.com/ubuntu jammy/main amd64 libbasicobjects-dev amd64 0.6.2-1 [4,148 B]
获取:3 http://cn.archive.ubuntu.com/ubuntu jammy/main amd64 libcollection4 amd64 0.6.2-1 [23.9 kB]
获取:4 http://cn.archive.ubuntu.com/ubuntu jammy/main amd64 libcollection-dev amd64 0.6.2-1 [43.1 kB]
获取:5 http://cn.archive.ubuntu.com/ubuntu jammy/main amd64 libpath-utils1 amd64 0.6.2-1 [9,254 B]
获取:6 http://cn.archive.ubuntu.com/ubuntu jammy/main amd64 libref-array1 amd64 0.6.2-1 [7,720 B]
获取:7 http://cn.archive.ubuntu.com/ubuntu jammy/main amd64 libini-config5 amd64 0.6.2-1 [44.5 kB]
获取:8 http://cn.archive.ubuntu.com/ubuntu jammy/main amd64 libref-array-dev amd64 0.6.2-1 [7,914 B]
获取:9 http://cn.archive.ubuntu.com/ubuntu jammy/main amd64 libini-config-dev amd64 0.6.2-1 [68.7 kB]
已下载 215 kB,耗时 3秒 (70.2 kB/s)       
正在选中未选择的软件包 libbasicobjects0:amd64。
(正在读取数据库 ... 系统当前共安装有 259349 个文件和目录。)
准备解压 .../0-libbasicobjects0_0.6.2-1_amd64.deb  ...
正在解压 libbasicobjects0:amd64 (0.6.2-1) ...
正在选中未选择的软件包 libbasicobjects-dev。
准备解压 .../1-libbasicobjects-dev_0.6.2-1_amd64.deb  ...
正在解压 libbasicobjects-dev (0.6.2-1) ...
正在选中未选择的软件包 libcollection4:amd64。
准备解压 .../2-libcollection4_0.6.2-1_amd64.deb  ...
正在解压 libcollection4:amd64 (0.6.2-1) ...
正在选中未选择的软件包 libcollection-dev。
准备解压 .../3-libcollection-dev_0.6.2-1_amd64.deb  ...
正在解压 libcollection-dev (0.6.2-1) ...
正在选中未选择的软件包 libpath-utils1:amd64。
准备解压 .../4-libpath-utils1_0.6.2-1_amd64.deb  ...
正在解压 libpath-utils1:amd64 (0.6.2-1) ...
正在选中未选择的软件包 libref-array1:amd64。
准备解压 .../5-libref-array1_0.6.2-1_amd64.deb  ...
正在解压 libref-array1:amd64 (0.6.2-1) ...
正在选中未选择的软件包 libini-config5:amd64。
准备解压 .../6-libini-config5_0.6.2-1_amd64.deb  ...
正在解压 libini-config5:amd64 (0.6.2-1) ...
正在选中未选择的软件包 libref-array-dev。
准备解压 .../7-libref-array-dev_0.6.2-1_amd64.deb  ...
正在解压 libref-array-dev (0.6.2-1) ...
正在选中未选择的软件包 libini-config-dev。
准备解压 .../8-libini-config-dev_0.6.2-1_amd64.deb  ...
正在解压 libini-config-dev (0.6.2-1) ...
正在设置 libpath-utils1:amd64 (0.6.2-1) ...
正在设置 libbasicobjects0:amd64 (0.6.2-1) ...
正在设置 libbasicobjects-dev (0.6.2-1) ...
正在设置 libcollection4:amd64 (0.6.2-1) ...
正在设置 libcollection-dev (0.6.2-1) ...
正在设置 libref-array1:amd64 (0.6.2-1) ...
正在设置 libref-array-dev (0.6.2-1) ...
正在设置 libini-config5:amd64 (0.6.2-1) ...
正在设置 libini-config-dev (0.6.2-1) ...
正在处理用于 libc-bin (2.35-0ubuntu3.1) 的触发器 ...
  • libcurl4-openssl-dev
$ sudo apt install libcurl4-openssl-dev 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
下列软件包是自动安装的并且现在不需要了:
  golang-1.18-go golang-1.18-src golang-src libflashrom1 libftdi1-2
使用'sudo apt autoremove'来卸载它(它们)。
建议安装:
  libcurl4-doc libidn11-dev libkrb5-dev libldap2-dev librtmp-dev libssh2-1-dev
下列软件包将被【卸载】:
  libcurl4-gnutls-dev
下列【新】软件包将被安装:
  libcurl4-openssl-dev
升级了 0 个软件包,新安装了 1 个软件包,要卸载 1 个软件包,有 6 个软件包未被升级。
需要下载 385 kB 的归档。
解压缩后会消耗 25.6 kB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 http://cn.archive.ubuntu.com/ubuntu jammy-updates/main amd64 libcurl4-openssl-dev amd64 7.81.0-1ubuntu1.6 [385 kB]
已下载 385 kB,耗时 2秒 (183 kB/s)            
(正在读取数据库 ... 系统当前共安装有 259410 个文件和目录。)
正在卸载 libcurl4-gnutls-dev:amd64 (7.81.0-1ubuntu1.6) ...
正在选中未选择的软件包 libcurl4-openssl-dev:amd64。
(正在读取数据库 ... 系统当前共安装有 259387 个文件和目录。)
准备解压 .../libcurl4-openssl-dev_7.81.0-1ubuntu1.6_amd64.deb  ...
正在解压 libcurl4-openssl-dev:amd64 (7.81.0-1ubuntu1.6) ...
正在设置 libcurl4-openssl-dev:amd64 (7.81.0-1ubuntu1.6) ...
正在处理用于 man-db (2.10.2-1) 的触发器 ...
  • libuuid-dev(未找到)
$ sudo apt install libuuid-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
E: 无法定位软件包 libuuid-dev

尝试uuid-dev

$ sudo apt install uuid-dev 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
下列软件包是自动安装的并且现在不需要了:
  golang-1.18-go golang-1.18-src golang-src libflashrom1 libftdi1-2
使用'sudo apt autoremove'来卸载它(它们)。
下列【新】软件包将被安装:
  uuid-dev
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 6 个软件包未被升级。
需要下载 33.1 kB 的归档。
解压缩后会消耗 176 kB 的额外空间。
获取:1 http://cn.archive.ubuntu.com/ubuntu jammy/main amd64 uuid-dev amd64 2.37.2-4ubuntu3 [33.1 kB]
已下载 33.1 kB,耗时 1秒 (25.8 kB/s)   
正在选中未选择的软件包 uuid-dev:amd64。
(正在读取数据库 ... 系统当前共安装有 259408 个文件和目录。)
准备解压 .../uuid-dev_2.37.2-4ubuntu3_amd64.deb  ...
正在解压 uuid-dev:amd64 (2.37.2-4ubuntu3) ...
正在设置 uuid-dev:amd64 (2.37.2-4ubuntu3) ...
正在处理用于 man-db (2.10.2-1) 的触发器 ...
  • libltdl-dev
$ sudo apt install libltdl-dev 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
libltdl-dev 已经是最新版 (2.4.6-15build2)。
libltdl-dev 已设置为手动安装。
下列软件包是自动安装的并且现在不需要了:
  golang-1.18-go golang-1.18-src golang-src libflashrom1 libftdi1-2
使用'sudo apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 6 个软件包未被升级。

3. 源码构建

  • 引导构建

在配置tpm2-tss前,首先要运行引导(自举)脚本,此脚本产生源文件列表,并且创建配置脚本。如下所示:

$ ./bootstrap 
Generating file lists: src_vars.mk
aclocal: installing 'm4/ax_ac_append_to_file.m4' from '/usr/share/aclocal/ax_ac_append_to_file.m4'
aclocal: installing 'm4/ax_ac_print_to_file.m4' from '/usr/share/aclocal/ax_ac_print_to_file.m4'
aclocal: installing 'm4/ax_add_am_macro_static.m4' from '/usr/share/aclocal/ax_add_am_macro_static.m4'
aclocal: installing 'm4/ax_add_fortify_source.m4' from '/usr/share/aclocal/ax_add_fortify_source.m4'
aclocal: installing 'm4/ax_am_macros_static.m4' from '/usr/share/aclocal/ax_am_macros_static.m4'
aclocal: installing 'm4/ax_check_compile_flag.m4' from '/usr/share/aclocal/ax_check_compile_flag.m4'
aclocal: installing 'm4/ax_check_enable_debug.m4' from '/usr/share/aclocal/ax_check_enable_debug.m4'
aclocal: installing 'm4/ax_check_gnu_make.m4' from '/usr/share/aclocal/ax_check_gnu_make.m4'
aclocal: installing 'm4/ax_check_link_flag.m4' from '/usr/share/aclocal/ax_check_link_flag.m4'
aclocal: installing 'm4/ax_code_coverage.m4' from '/usr/share/aclocal/ax_code_coverage.m4'
aclocal: installing 'm4/ax_file_escapes.m4' from '/usr/share/aclocal/ax_file_escapes.m4'
aclocal: installing 'm4/ax_is_release.m4' from '/usr/share/aclocal/ax_is_release.m4'
aclocal: installing 'm4/ax_normalize_path.m4' from '/usr/share/aclocal/ax_normalize_path.m4'
aclocal: installing 'm4/ax_prog_doxygen.m4' from '/usr/share/aclocal/ax_prog_doxygen.m4'
aclocal: installing 'm4/ax_recursive_eval.m4' from '/usr/share/aclocal/ax_recursive_eval.m4'
aclocal: installing 'm4/ax_valgrind_check.m4' from '/usr/share/aclocal/ax_valgrind_check.m4'
aclocal: installing 'm4/libtool.m4' from '/usr/share/aclocal/libtool.m4'
aclocal: installing 'm4/ltdl.m4' from '/usr/share/aclocal/ltdl.m4'
aclocal: installing 'm4/ltoptions.m4' from '/usr/share/aclocal/ltoptions.m4'
aclocal: installing 'm4/ltsugar.m4' from '/usr/share/aclocal/ltsugar.m4'
aclocal: installing 'm4/ltversion.m4' from '/usr/share/aclocal/ltversion.m4'
aclocal: installing 'm4/lt~obsolete.m4' from '/usr/share/aclocal/lt~obsolete.m4'
aclocal: installing 'm4/pkg.m4' from '/usr/share/aclocal/pkg.m4'
libtoolize: putting auxiliary files in '.'.
libtoolize: linking file './ltmain.sh'
configure.ac:28: installing './compile'
configure.ac:23: installing './config.guess'
configure.ac:23: installing './config.sub'
configure.ac:12: installing './install-sh'
configure.ac:12: installing './missing'
aminclude_static.am:63: warning: GITIGNOREFILES was already defined in condition TRUE, which includes condition AUTOCONF_CODE_COVERAGE_2019_01_06 and CODE_COVERAGE_ENABLED ...
Makefile.am:56:   'aminclude_static.am' included from here
Makefile.am:52: ... 'GITIGNOREFILES' previously defined here
Makefile.am: installing './depcomp'
parallel-tests: installing './test-driver'
  • 配置构建

Invoking the configure script with the --help option will display all supported options.

先运行带--help选项的configure脚本来查看所有支持的选项。如下所示:

$ ./configure --help
`configure' configures tpm2-tss 4.0.0-rc0 to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:
  -h, --help              display this help and exit
      --help=short        display options specific to this package
      --help=recursive    display the short help of all the included packages
  -V, --version           display version information and exit
  -q, --quiet, --silent   do not print `checking ...' messages
      --cache-file=FILE   cache test results in FILE [disabled]
  -C, --config-cache      alias for `--cache-file=config.cache'
  -n, --no-create         do not create output files
      --srcdir=DIR        find the sources in DIR [configure dir or `..']

Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [PREFIX]

By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc.  You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.

For better control, use the options below.

Fine tuning of the installation directories:
  --bindir=DIR            user executables [EPREFIX/bin]
  --sbindir=DIR           system admin executables [EPREFIX/sbin]
  --libexecdir=DIR        program executables [EPREFIX/libexec]
  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
  --libdir=DIR            object code libraries [EPREFIX/lib]
  --includedir=DIR        C header files [PREFIX/include]
  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
  --infodir=DIR           info documentation [DATAROOTDIR/info]
  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
  --mandir=DIR            man documentation [DATAROOTDIR/man]
  --docdir=DIR            documentation root [DATAROOTDIR/doc/tpm2-tss]
  --htmldir=DIR           html documentation [DOCDIR]
  --dvidir=DIR            dvi documentation [DOCDIR]
  --pdfdir=DIR            pdf documentation [DOCDIR]
  --psdir=DIR             ps documentation [DOCDIR]

Program names:
  --program-prefix=PREFIX            prepend PREFIX to installed program names
  --program-suffix=SUFFIX            append SUFFIX to installed program names
  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names

System types:
  --build=BUILD     configure for building on BUILD [guessed]
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]

Optional Features:
  --disable-option-checking  ignore unrecognized --enable/--with options
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --enable-silent-rules   less verbose build output (undo: "make V=1")
  --disable-silent-rules  verbose build output (undo: "make V=0")
  --enable-debug=[yes/info/profile/no]
                          compile with debugging
  --enable-dependency-tracking
                          do not reject slow dependency extractors
  --disable-dependency-tracking
                          speeds up one-time build
  --enable-shared[=PKGS]  build shared libraries [default=yes]
  --enable-static[=PKGS]  build static libraries [default=yes]
  --enable-fast-install[=PKGS]
                          optimize for fast installation [default=yes]
  --disable-libtool-lock  avoid locking (might break parallel builds)
  --enable-unit           build cmocka unit tests
  --disable-esys          don't build the esys layer
  --enable-fapi           build the fapi layer (default is yes)
  --enable-fapi-async-tests
                          Force fapi to spin asynchronously. (NOT FOR
                          PRODUCTION!)
  --enable-policy         build the tss2-policy library (default is yes)
  --enable-vendor         build vendor specific extensions (default is yes)
  --disable-tcti-device   don't build the tcti-device module
  --disable-tcti-mssim    don't build the tcti-mssim module
  --disable-tcti-swtpm    don't build the tcti-swtpm module
  --disable-tcti-pcap     don't build the tcti-pcap module
  --disable-tcti-libtpms  don't build the tcti-libtpms module
  --disable-tcti-cmd      don't build the tcti-cmd module
  --disable-tcti-spi-helper
                          don't build the tcti-spi-helper module
  --enable-tcti-fuzzing   build the tcti-fuzzing module
  --enable-nodl           link against TCTIs directly, do not use dlopen
  --enable-integration    build and execute integration tests
  --enable-valgrind       Whether to enable Valgrind on the unit tests
  --disable-valgrind-memcheck
                          Whether to skip memcheck during the Valgrind tests
  --disable-valgrind-helgrind
                          Whether to skip helgrind during the Valgrind tests
  --disable-valgrind-drd  Whether to skip drd during the Valgrind tests
  --disable-valgrind-sgcheck
                          Whether to skip sgcheck during the Valgrind tests
  --enable-ld-version-script
                          enable linker version script (default is enabled
                          when possible)
  --disable-log-file      write logging to stderr only
  --disable-defaultflags  Disable default preprocessor, compiler, and linker
                          flags.
  --disable-weakcrypto    Disable crypto algorithms considered weak
  --enable-self-generated-certificate
                          Alllow usage of self generated root certifcate
  --disable-doxygen-doc   don't generate any doxygen documentation
  --enable-doxygen-dot    generate graphics for doxygen documentation
  --disable-doxygen-man   don't generate doxygen manual pages
  --disable-doxygen-rtf   don't generate doxygen RTF documentation
  --enable-doxygen-xml    generate doxygen XML documentation
  --enable-doxygen-chm    generate doxygen compressed HTML help documentation
  --enable-doxygen-chi    generate doxygen separate compressed HTML help index
                          file
  --disable-doxygen-html  don't generate doxygen plain HTML documentation
  --enable-doxygen-ps     generate doxygen PostScript documentation
  --enable-doxygen-pdf    generate doxygen PDF documentation
  --enable-code-coverage  Whether to enable code coverage support

Optional Packages:
  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  --with-pic[=PKGS]       try to use only PIC/non-PIC objects [default=use
                          both]
  --with-aix-soname=aix|svr4|both
                          shared library versioning (aka "SONAME") variant to
                          provide on AIX, [default=aix].
  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
  --with-sysroot[=DIR]    Search for dependent libraries within DIR (or the
                          compiler's sysroot if not specified).
  --with-pkgconfigdir     pkg-config installation directory
                          ['${libdir}/pkgconfig']
  --with-imameasurements=<file>
                          sets file with the IMA measurements")
  --with-sysmeasurements=<file>
                          sets file with the binary bios measurements")
  --with-runstatedir=<dir>
                          replacement for --runstatedir in Autoconf <2.70
  --with-userstatedir=<dir>
                          sets the relative path in the user's home (default
                          is ".local/share")
  --with-sysusersdir=<dir>
                          sets the sysusers.d directory (default is
                          "${sysconfdir}/sysusers.d")
  --with-tmpfilesdir=<dir>
                          sets the tmpfiles.d directory (default is
                          "${sysconfdir}/tmpfiles.d")
  --with-crypto={ossl,mbed,none}
                          sets the ESYS crypto backend (default is OpenSSL)
  --with-tctidefaultmodule
                          The default TCTI module for ESYS. (Default:
                          libtss2-tcti-default.so)
  --with-tctidefaultconfig
                          The default tcti module's configuration.
  --with-udevrulesdir=DIR udev rules directory
  --with-udevrulesprefix=XY
                          prefix for udev rules file
  --with-device=<device>  TPM device for testing
  --with-devicetests=<case>
                          Comma-separated values of possible tests:
                          destructive,mandatory,optional default is mandatory
  --with-sanitizer={none,address,undefined}
                          build with the given sanitizer
  --with-fuzzing={none,libfuzzer,ossfuzz}
                          fuzzing to build with (default is none)
  --with-maxloglevel={none,error,warning,info,debug,trace}
                          sets the maximum log level (default is trace)
  --with-gcov=GCOV        use given GCOV for coverage (GCOV=gcov).
  --with-default-test-fapi-profile=PROFILE
                          sets the default FAPI profile used in tests

Some influential environment variables:
  CC          C compiler command
  CFLAGS      C compiler flags
  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
              nonstandard directory <lib dir>
  LIBS        libraries to pass to the linker, e.g. -l<library>
  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
              you have headers in a nonstandard directory <include dir>
  CXX         C++ compiler command
  CXXFLAGS    C++ compiler flags
  LT_SYS_LIBRARY_PATH
              User-defined run-time library search path.
  CXXCPP      C++ preprocessor
  PKG_CONFIG  path to pkg-config utility
  PKG_CONFIG_PATH
              directories to add to pkg-config's search path
  PKG_CONFIG_LIBDIR
              path overriding pkg-config's built-in search path
  CMOCKA_CFLAGS
              C compiler flags for CMOCKA, overriding pkg-config
  CMOCKA_LIBS linker flags for CMOCKA, overriding pkg-config
  CRYPTO_CFLAGS
              C compiler flags for CRYPTO, overriding pkg-config
  CRYPTO_LIBS linker flags for CRYPTO, overriding pkg-config
  JSONC_CFLAGS
              C compiler flags for JSONC, overriding pkg-config
  JSONC_LIBS  linker flags for JSONC, overriding pkg-config
  CURL_CFLAGS C compiler flags for CURL, overriding pkg-config
  CURL_LIBS   linker flags for CURL, overriding pkg-config
  UUID_CFLAGS C compiler flags for UUID, overriding pkg-config
  UUID_LIBS   linker flags for UUID, overriding pkg-config
  DOXYGEN_PAPER_SIZE
              a4wide (default), a4, letter, legal or executive

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

Report bugs to <https://github.com/tpm2-software/tpm2-tss/issues>.
tpm2-tss home page: <https://github.com/tpm2-software/tpm2-tss>.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/51852.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于ssm的小区物业管理系统

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

mac下安装nodejs跟vscode

1.打开官网 Node.js 2.点击下载 3.下载完成&#xff0c;根据提示下一步安装&#xff0c;安装完成后&#xff0c;在vscode中新建一个js文件&#xff0c;执行node test.js

[附源码]计算机毕业设计ssm新能源电动汽车充电桩服务APPSpringboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

opencv c++ 图像噪声及去噪

1、噪声类型及生成 1.1、类型 高斯噪声、椒盐噪声、泊松噪声、乘性噪声&#xff0c;等。 具体解释参考&#xff1a;(31条消息) 图像噪声简介_yeler082的博客-CSDN博客_图像噪声 高斯噪声 泊松噪声 乘性噪声 …

AWS SAP-C02 考试指南

Hello大家好&#xff0c;欢迎来到AWS解决方案架构师professional中文视频培训课程&#xff0c;我是讲师沉默恶魔。 本课时的内容是SAP-C02考试指南&#xff0c;我将介绍有关SAP-C02考试的详细信息。 SAP-C02是解决方案架构师专业级认证的最新版本的考试&#xff0c;目前也只能…

空域图像增强-图像滤波处理

3.图像滤波处理。自选一张图片&#xff0c;完成以下图像处理&#xff1a;①给图像分别添加随机噪声和椒盐噪声&#xff1b;②采用不同的平滑滤波模板进行滤波对比&#xff08;不同模板、不同尺寸&#xff09;&#xff1b;③采用中值滤波对图像进行滤波对比&#xff1b;④对添加…

GEE开发之Modis_NPP数据分析和获取

GEE开发之Modis_NPP数据分析和获取1.NPP2.MOD系列和MYD系列区别3.MOD17A3H_v006(500m/1年)4.MOD17A3HGF_v006(500m/1年)5.MOD17A3HGF_v061(500m/1年)6.MYD17A3H_v006(500m/1年)6.1 MYD17A3H下的指数6.2 遥感影像查看7.MYD17A3HGF_v061(500m/1年)8.MYD17A3HGF_v006(500m/1年)9.N…

行业应用之无限可能,就在亚马逊云科技re:Invent

在2022亚马逊云科技re:Invent全球大会Adam Selipsky“如何借助云的力量&#xff0c;在未知领域抓住机遇并茁壮成长”的主题演讲中&#xff0c;除了阐述主要的产品升级以外&#xff0c;亚马逊云科技还致力于打造面向特定行业或者特定应用场景的解决方案&#xff0c;以帮助客户快…

【Mongoose应用和文件上传】一.Express框架访问MongDB数据库;二.node实现文件上传

目录 一.Express框架访问MongDB数据库 1.目的&#xff1a; &#xff08;1&#xff09;mongoose模块的使用 &#xff08;2&#xff09;学会代码的封装&#xff1a;dao层、service层、接口层 &#xff08;3&#xff09;MVC设计思想&#xff1a;M&#xff08;Model&#xff0…

5.RabbitMQ高级特性

5.RabbitMQ高级特性 为什么不是RabbitMQ的事务&#xff1f; 这是从官网直接翻译过来的&#xff1a;网络可能以不太明显的方式出现故障&#xff0c;而且检测某些故障需要时间。因此&#xff0c;向套接字编写协议帧或一组帧(例如发布的消息)的客户端不能假定消息已经到达服务器…

【库存控制】基于蜜蜂算法优化库存控制附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

如何将dwg文件转成kml文件

第一步&#xff1a; 在CAD中将DWG另存为 DXF&#xff0c;如下&#xff1a; 注意&#xff1a;&#xff08;中文乱码&#xff09;为了打开的中文不出现乱码&#xff0c;保存DXF文件请选择如下的选项 第二步&#xff1a; 下载安装Bigemap GIS Office download.bigemap.com/bmset…

12.01 M4-UART-IT实验

1.使用CORTEX-M4核&#xff0c;实验中断实验和串口实验结合--->上传到CSDN 按键触发时&#xff0c;LED灯状态取反&#xff0c;并且在串口工具打印一句话 KEY1按键按下&#xff0c;LED1状态取反&#xff0c;串口工具打印key1 down!!!! 主要代码gpio.c void HAL_GPI…

C++ 语言学习 day14 复习 (6)

1.stack / queue(栈&#xff0c;队列) stack 构造函数 stack<int> v; 入栈 v.push(i); 出栈 v.pop(); 是否为空 v.empty() queue 构造函数 queue<int> v; 入队 v.push(i); 出队 v.…

下载axios时出现很多npm ERR错误:npm ERR! code ERESOLVEnpm ERR! ERESOLVE could not resolve

出现的下载错误&#xff1a; npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolvenpm ERR! npm ERR! while resolving: vue/eslint-config-standard6.1.0npm ERR! Found: eslint-plugin-vue8.7.1 npm ERR! node_modules/eslint-plugin-vue npm ERR!dev eslint-plugin-…

毕业设计案例:Python实现疫苗接种数据库管理系统

一、序言 那一年过年前&#xff0c;疫情开始爆发&#xff0c;对全国人民的生活和工作造成了严重的影响。但凭借着国家强盛的实力&#xff0c;新冠疫苗也很快的被技术人员研发出来&#xff0c;人们通过接种新冠疫苗来抵御新冠病毒的危害。本次通过接种新冠疫苗的这个数据统计&a…

(一)正则表达式——基础概念

&#xff08;一&#xff09;正则表达式——基础概念 概括 用来处理字符串的规则。除了对象、函数&#xff0c;我们操作得最多的就是字符串 正则的两大作用&#xff1a; 验证是否匹配把匹配到的内容捕获到量词元字符*特殊元字符点. &#xff1a;除了\r \n以外的字符 普通元字符h…

【OpenCV 例程 300篇】247. 特征检测之最大稳定极值区域(MSER)

『youcans 的 OpenCV 例程300篇 - 总目录』 【youcans 的 OpenCV 例程 300篇】247. 特征检测之最大稳定极值区域&#xff08;MSER&#xff09; 1. 最大稳定极值区域&#xff08;MSER&#xff09; 最大稳定极值区域&#xff08;MSER-Maximally Stable Extremal Regions&#xf…

RNN/LSTM (三) 学习torchtext源码

文章目录包装dataset构建词库1.列举数据源2. 遍历数据3. 列举特殊符号4. 构建词库 Field::vocab_clsload_vectors构建读指针 data.BucketIterator在上一文&#xff0c;我们学习了基于torchtext编写lstm模型的实践案例&#xff0c;本文将结合上文案例&#xff0c;深入案例代码&a…

Python自动化之Excel利器openpyxl

文章目录前言一、Workbook1.1 读取xlsx文件1.2 保存二、Sheet2.1 创建Sheet2.2 遍历Sheet2.3 移动Sheet2.4 删除Sheet2.5 插入、删除行列三、单元格3.1 获取某个单元格3.2 遍历单元格3.3 获取范围单元格3.4 单元格赋值3.5 合并/解除合并单元格3.6 单元格数据格式3.7 单元格数字…