Utilities非默认目录构建和安装

这篇具有很好参考价值的文章主要介绍了Utilities非默认目录构建和安装。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在AppArmor零知识学习八、源码构建(5)中,详细介绍了Utilities的构建步骤,但那完全使用的是官网给出的默认参数。如果需要将目标文件生成到指定目录而非默认的/usr,则需要进行一些修改,本文就来详述如何进行修改。

必须说明以下两点:

(1)Utilities的构建必须在前述步骤(配置环境变量和libapparmor构建)的基础上才能进行。关于这两个步骤,请参阅:AppArmor零知识学习四、源码构建(1)和AppArmor零知识学习五、源码构建(2);

(2)前文libapparmor非默认目录构建和安装中的步骤是为了制作包时使用,由于其没有将目标文件放到/usr/local下,因此实际上并没有起作用。真正起作用的是之前按照默认参数构建的libapparmor相关组件。

接下来,开始Utilities自定义安装目录的构建和安装。

(1)进入utils目录

通过cd命令进入apparmor源码根目录下的utils目录。实际命令及结果如下所示:

penghao@Ding-Perlis-MP260S48:~/AppArmor/apparmor_2/apparmor$ cd utils/
penghao@Ding-Perlis-MP260S48:~/AppArmor/apparmor_2/apparmor/utils$ pwd
/home/penghao/AppArmor/apparmor_2/apparmor/utils

penghao@Ding-Perlis-MP260S48:~/AppArmor/apparmor_2/apparmor/utils$ ls
aa-audit           aa-autodep.pod       aa-complain.8.html  aa-disable.8        aa-enforce         aa-genprof.pod     aa-mergeprof.8.html  aa-remove-unknown         aa-unconfined.8       easyprof             po
aa-audit.8         aa-cleanprof         aa-complain.pod     aa-disable.8.html   aa-enforce.8       aa-logprof         aa-mergeprof.pod     aa-remove-unknown.8       aa-unconfined.8.html  logprof.conf         pod2htmd.tmp
aa-audit.8.html    aa-cleanprof.8       aa-decode           aa-disable.pod      aa-enforce.8.html  aa-logprof.8       aa-notify            aa-remove-unknown.8.html  aa-unconfined.pod     logprof.conf.5       python-tools-setup.py
aa-audit.pod       aa-cleanprof.8.html  aa-decode.8         aa-easyprof         aa-enforce.pod     aa-logprof.8.html  aa-notify.8          aa-remove-unknown.pod     apparmor              logprof.conf.5.html  README.md
aa-autodep         aa-cleanprof.pod     aa-decode.8.html    aa-easyprof.8       aa-genprof         aa-logprof.pod     aa-notify.8.html     aa-sandbox                apparmor.egg-info     logprof.conf.pod     severity.db
aa-autodep.8       aa-complain          aa-decode.pod       aa-easyprof.8.html  aa-genprof.8       aa-mergeprof       aa-notify.desktop    aa-sandbox.pod            build                 Makefile             test
aa-autodep.8.html  aa-complain.8        aa-disable          aa-easyprof.pod     aa-genprof.8.html  aa-mergeprof.8     aa-notify.pod        aa-unconfined             check_po.pl           notify.conf          vim

(2)编译

运行make命令进行编译。实际命令及结果如下:

$ make
/usr/bin/pod2man aa-easyprof.pod --release="AppArmor 3.1.0" --center=AppArmor --stderr --section=8 > aa-easyprof.8
/usr/bin/pod2man aa-genprof.pod --release="AppArmor 3.1.0" --center=AppArmor --stderr --section=8 > aa-genprof.8
/usr/bin/pod2man aa-logprof.pod --release="AppArmor 3.1.0" --center=AppArmor --stderr --section=8 > aa-logprof.8
/usr/bin/pod2man aa-cleanprof.pod --release="AppArmor 3.1.0" --center=AppArmor --stderr --section=8 > aa-cleanprof.8
/usr/bin/pod2man aa-mergeprof.pod --release="AppArmor 3.1.0" --center=AppArmor --stderr --section=8 > aa-mergeprof.8
/usr/bin/pod2man aa-autodep.pod --release="AppArmor 3.1.0" --center=AppArmor --stderr --section=8 > aa-autodep.8
/usr/bin/pod2man aa-audit.pod --release="AppArmor 3.1.0" --center=AppArmor --stderr --section=8 > aa-audit.8
/usr/bin/pod2man aa-complain.pod --release="AppArmor 3.1.0" --center=AppArmor --stderr --section=8 > aa-complain.8
/usr/bin/pod2man aa-enforce.pod --release="AppArmor 3.1.0" --center=AppArmor --stderr --section=8 > aa-enforce.8
/usr/bin/pod2man aa-disable.pod --release="AppArmor 3.1.0" --center=AppArmor --stderr --section=8 > aa-disable.8
/usr/bin/pod2man aa-notify.pod --release="AppArmor 3.1.0" --center=AppArmor --stderr --section=8 > aa-notify.8
/usr/bin/pod2man aa-unconfined.pod --release="AppArmor 3.1.0" --center=AppArmor --stderr --section=8 > aa-unconfined.8
/usr/bin/pod2man aa-decode.pod --release="AppArmor 3.1.0" --center=AppArmor --stderr --section=8 > aa-decode.8
/usr/bin/pod2man aa-remove-unknown.pod --release="AppArmor 3.1.0" --center=AppArmor --stderr --section=8 > aa-remove-unknown.8
/usr/bin/pod2man logprof.conf.pod --release="AppArmor 3.1.0" --center=AppArmor --stderr --section=5 > logprof.conf.5
/usr/bin/pod2html --header --css apparmor.css --infile=aa-easyprof.pod --outfile=aa-easyprof.8.html
/usr/bin/pod2html --header --css apparmor.css --infile=aa-genprof.pod --outfile=aa-genprof.8.html
/usr/bin/pod2html --header --css apparmor.css --infile=aa-logprof.pod --outfile=aa-logprof.8.html
/usr/bin/pod2html --header --css apparmor.css --infile=aa-cleanprof.pod --outfile=aa-cleanprof.8.html
/usr/bin/pod2html --header --css apparmor.css --infile=aa-mergeprof.pod --outfile=aa-mergeprof.8.html
/usr/bin/pod2html --header --css apparmor.css --infile=aa-autodep.pod --outfile=aa-autodep.8.html
/usr/bin/pod2html --header --css apparmor.css --infile=aa-audit.pod --outfile=aa-audit.8.html
/usr/bin/pod2html --header --css apparmor.css --infile=aa-complain.pod --outfile=aa-complain.8.html
/usr/bin/pod2html --header --css apparmor.css --infile=aa-enforce.pod --outfile=aa-enforce.8.html
/usr/bin/pod2html --header --css apparmor.css --infile=aa-disable.pod --outfile=aa-disable.8.html
/usr/bin/pod2html --header --css apparmor.css --infile=aa-notify.pod --outfile=aa-notify.8.html
/usr/bin/pod2html --header --css apparmor.css --infile=aa-unconfined.pod --outfile=aa-unconfined.8.html
/usr/bin/pod2html --header --css apparmor.css --infile=aa-decode.pod --outfile=aa-decode.8.html
/usr/bin/pod2html --header --css apparmor.css --infile=aa-remove-unknown.pod --outfile=aa-remove-unknown.8.html
/usr/bin/pod2html --header --css apparmor.css --infile=logprof.conf.pod --outfile=logprof.conf.5.html
make -C po all
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/utils/po”
msgfmt -c -o af.mo af.po
af.po:7: 警告:头部缺少文件头“Language”
msgfmt -c -o be.mo be.po
be.po:7: 警告:文件头“Last-Translator”仍然是默认值未改变be.po:7: 警告:头部缺少文件头“Language”
msgfmt -c -o bo.mo bo.po
bo.po:7: 警告:文件头“Last-Translator”仍然是默认值未改变bo.po:7: 警告:头部缺少文件头“Language”
msgfmt -c -o bs.mo bs.po
msgfmt -c -o cs.mo cs.po
cs.po:7: 警告:头部缺少文件头“Language”
msgfmt -c -o de.mo de.po
msgfmt -c -o en_GB.mo en_GB.po
msgfmt -c -o es.mo es.po
es.po:7: 警告:头部缺少文件头“Language”
msgfmt -c -o fa.mo fa.po
fa.po:7: 警告:头部缺少文件头“Language”
msgfmt -c -o fr.mo fr.po
msgfmt -c -o gl.mo gl.po
gl.po:7: 警告:文件头“Last-Translator”仍然是默认值未改变gl.po:7: 警告:头部缺少文件头“Language”
msgfmt -c -o hi.mo hi.po
msgfmt -c -o id.mo id.po
msgfmt -c -o it.mo it.po
msgfmt -c -o ko.mo ko.po
msgfmt -c -o oc.mo oc.po
oc.po:7: 警告:文件头“Last-Translator”仍然是默认值未改变oc.po:7: 警告:头部缺少文件头“Language”
msgfmt -c -o pl.mo pl.po
msgfmt -c -o pt_BR.mo pt_BR.po
pt_BR.po:7: 警告:头部缺少文件头“Language”
msgfmt -c -o pt.mo pt.po
msgfmt -c -o ro.mo ro.po
ro.po:7: 警告:头部缺少文件头“Language”
msgfmt -c -o ru.mo ru.po
msgfmt -c -o sv.mo sv.po
msgfmt -c -o tr.mo tr.po
msgfmt -c -o ug.mo ug.po
msgfmt -c -o uk.mo uk.po
msgfmt -c -o zh_CN.mo zh_CN.po
zh_CN.po:7: 警告:头部缺少文件头“Language”
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/utils/po”
make -C vim all
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/utils/vim”
/usr/bin/python3 create-apparmor.vim.py > apparmor.vim || { rm -f apparmor.vim ; exit 1; }
/usr/bin/pod2man apparmor.vim.pod --release="AppArmor 3.1.0" --center=AppArmor --stderr --section=5 > apparmor.vim.5
/usr/bin/pod2html --header --css apparmor.css --infile=apparmor.vim.pod --outfile=apparmor.vim.5.html
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/utils/vim”

(3)检查

运行make check命令进行检查。实际命令及结果如下:

$ make check PYFLAKES=/usr/bin/pyflakes3
LANG=C podchecker -warning -warning *.pod
aa-audit.pod pod syntax OK.
aa-autodep.pod pod syntax OK.
aa-cleanprof.pod pod syntax OK.
aa-complain.pod pod syntax OK.
aa-decode.pod pod syntax OK.
aa-disable.pod pod syntax OK.
aa-easyprof.pod pod syntax OK.
aa-enforce.pod pod syntax OK.
aa-genprof.pod pod syntax OK.
aa-logprof.pod pod syntax OK.
aa-mergeprof.pod pod syntax OK.
aa-notify.pod pod syntax OK.
aa-remove-unknown.pod pod syntax OK.
aa-sandbox.pod pod syntax OK.
aa-unconfined.pod pod syntax OK.
logprof.conf.pod pod syntax OK.
Checking aa-easyprof
Checking aa-genprof
Checking aa-logprof
Checking aa-cleanprof
Checking aa-mergeprof
Checking aa-autodep
Checking aa-audit
Checking aa-complain
Checking aa-enforce
Checking aa-disable
Checking aa-notify
Checking aa-unconfined
Checking apparmor
Checking test/common_test.py
Checking test/test-aa-cli-bootstrap.py
Checking test/test-aa-decode.py
Checking test/test-aa-easyprof.py
Checking test/test-aa-notify.py
Checking test/test-aa.py
Checking test/test-aare.py
Checking test/test-abi.py
Checking test/test-alias.py
Checking test/test-baserule.py
Checking test/test-boolean.py
Checking test/test-capability.py
Checking test/test-change_profile.py
Checking test/test-common.py
Checking test/test-config.py
Checking test/test-dbus.py
Checking test/test-example.py
Checking test/test-file.py
Checking test/test-include.py
Checking test/test-libapparmor-test_multi.py
Checking test/test-logparser.py
Checking test/test-minitools.py
Checking test/test-mount_parse.py
Checking test/test-mqueue.py
Checking test/test-network.py
Checking test/test-notify.py
Checking test/test-parser-simple-tests.py
Checking test/test-pivot_root_parse.py
Checking test/test-profile-list.py
Checking test/test-profiles.py
Checking test/test-profile-storage.py
Checking test/test-ptrace.py
Checking test/test-regex_matches.py
Checking test/test-rlimit.py
Checking test/test-severity.py
Checking test/test-signal.py
Checking test/test-translations.py
Checking test/test-unix_parse.py
Checking test/test-userns.py
Checking test/test-variable.py
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/utils/test”

=== test-aa-cli-bootstrap.py ===
.....
----------------------------------------------------------------------
Ran 5 tests in 0.109s

OK

=== test-aa-decode.py ===
..........
----------------------------------------------------------------------
Ran 10 tests in 0.297s

OK

=== test-aa-easyprof.py ===
.........................................
# vim:syntax=apparmor
# test-template
# AppArmor policy for foo
# ###AUTHOR###
# ###COPYRIGHT###
# ###COMMENT###

#include <tunables/global>

# No template variables specified

"/opt/bin/foo" {
  #include <abstractions/base>

  # No abstractions specified

  # No policy groups specified

  # No read paths specified

  # No write paths specified
bzzzt


..........................................................................................WARN: Manifest definition is potentially unsafe
found 'user-tmp' abstraction
..WARN: Manifest definition is potentially unsafe
profile_name 'bin/*'
..WARN: Manifest definition is potentially unsafe
@{VAR1}=f*o
WARN: Manifest definition is potentially unsafe
@{VAR2}=*foo
WARN: Manifest definition is potentially unsafe
@{VAR3}=fo*
WARN: Manifest definition is potentially unsafe
@{VAR4}=b{ar
WARN: Manifest definition is potentially unsafe
@{VAR5}=b{a,r}
WARN: Manifest definition is potentially unsafe
@{VAR6}=b}ar
WARN: Manifest definition is potentially unsafe
@{VAR7}=bar[0-9]
WARN: Manifest definition is potentially unsafe
@{VAR8}=b{ar
WARN: Manifest definition is potentially unsafe
@{VAR9}=foo/bar
..
----------------------------------------------------------------------
Ran 137 tests in 1.179s

OK

=== test-aa-notify.py ===
.....
----------------------------------------------------------------------
Ran 5 tests in 0.442s

OK

=== test-aa.py ===
..Traceback (most recent call last):
  File "/home/penghao/AppArmor/apparmor_2/apparmor/utils/test/./fake_ldd", line 60, in <module>
    raise Exception('unknown parameter in fake_ldd: ' + sys.argv[1])
Exception: unknown parameter in fake_ldd: invalid
..................................................................................
Execute target /tmp/aa-test-g1uyk9gs/file-not-found does not exist!
.
Execute target /dev/null is not a file!
...................................................................
----------------------------------------------------------------------
Ran 152 tests in 0.839s

OK

=== test-aare.py ===
............................................................................................................................................................................................................................
----------------------------------------------------------------------
Ran 220 tests in 0.009s

OK

=== test-abi.py ===
....................................................
----------------------------------------------------------------------
Ran 52 tests in 0.002s

OK

=== test-alias.py ===
..........................................
----------------------------------------------------------------------
Ran 42 tests in 0.001s

OK

=== test-baserule.py ===
............
----------------------------------------------------------------------
Ran 12 tests in 0.002s

OK

=== test-boolean.py ===
...............................................
----------------------------------------------------------------------
Ran 47 tests in 0.002s

OK

=== test-capability.py ===
.............................................................................WARN: unknown capability: foo
..............
----------------------------------------------------------------------
Ran 91 tests in 0.012s

OK

=== test-change_profile.py ===
...............................................................................................................................
----------------------------------------------------------------------
Ran 127 tests in 0.004s

OK

=== test-common.py ===
.........
----------------------------------------------------------------------
Ran 9 tests in 0.000s

OK

=== test-config.py ===
..
----------------------------------------------------------------------
Ran 2 tests in 0.001s

OK

=== test-dbus.py ===
..............................................................................................................................................................................................................................................................................................................................................
----------------------------------------------------------------------
Ran 334 tests in 0.015s

OK

=== test-example.py ===
.......
----------------------------------------------------------------------
Ran 7 tests in 0.000s

OK

=== test-file.py ===
..............................................................................................................................................................................................................................................................................................................................................................
----------------------------------------------------------------------
Ran 350 tests in 0.040s

OK

=== test-include.py ===
.......................................................................................
----------------------------------------------------------------------
Ran 87 tests in 0.122s

OK

=== test-libapparmor-test_multi.py ===
Testing libapparmor test_multi tests...
......................................................................................................................................................................................................................................................................................................................
----------------------------------------------------------------------
Ran 310 tests in 0.036s

OK

=== test-logparser.py ===
.......
----------------------------------------------------------------------
Ran 7 tests in 0.000s

OK

=== test-minitools.py ===
.......
----------------------------------------------------------------------
Ran 7 tests in 2.373s

OK

=== test-mount_parse.py ===
..........
----------------------------------------------------------------------
Ran 10 tests in 0.000s

OK

=== test-mqueue.py ===
.............................................................................................
----------------------------------------------------------------------
Ran 93 tests in 0.003s

OK

=== test-network.py ===
.....................................................................................................
----------------------------------------------------------------------
Ran 101 tests in 0.017s

OK

=== test-notify.py ===
.............
----------------------------------------------------------------------
Ran 13 tests in 0.001s

OK

=== test-parser-simple-tests.py ===
Searching for parser simple_tests... (this will take a while)
Running 1570 parser simple_tests...
....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
WARNING: endless loop detected: file /home/penghao/AppArmor/apparmor_2/apparmor/parser/tst/simple_tests/includes/recursive.include includes itself

WARNING: endless loop detected: file /home/penghao/AppArmor/apparmor_2/apparmor/parser/tst/simple_tests/includes/recursive.preamble includes itself
................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Ignoring no longer supported change hat declaration "^hat xattrs=(myvalue=foo) { /foo r," found in file: /home/penghao/AppArmor/apparmor_2/apparmor/parser/tst/simple_tests/xattrs/hats_01.sd line: 7
..............................................................................................................................................................................
----------------------------------------------------------------------
Ran 1570 tests in 0.360s

OK

=== test-pivot_root_parse.py ===
....
----------------------------------------------------------------------
Ran 4 tests in 0.000s

OK

=== test-profile-list.py ===
............................................................
----------------------------------------------------------------------
Ran 60 tests in 1.207s

OK

=== test-profiles.py ===
..
----------------------------------------------------------------------
Ran 2 tests in 0.212s

OK

=== test-profile-storage.py ===
......................................................................................
----------------------------------------------------------------------
Ran 86 tests in 0.003s

OK

=== test-ptrace.py ===
..........................................................................................................................................................................................
----------------------------------------------------------------------
Ran 186 tests in 0.010s

OK

=== test-regex_matches.py ===
........................................................................................................................................................................................................................................................................................................................................................
----------------------------------------------------------------------
Ran 344 tests in 0.007s

OK

=== test-rlimit.py ===
........................................................................................................................................
----------------------------------------------------------------------
Ran 136 tests in 0.004s

OK

=== test-severity.py ===
...................................WARN: unknown capability: UNKNOWN
WARN: unknown capability: UNKNOWN
.WARN: unknown capability: K*
WARN: unknown capability: K*
........
----------------------------------------------------------------------
Ran 44 tests in 0.041s

OK

=== test-signal.py ===
...................................................................................................................................................................................................................................
----------------------------------------------------------------------
Ran 227 tests in 0.012s

OK

=== test-translations.py ===
................
----------------------------------------------------------------------
Ran 16 tests in 2.166s

OK

=== test-unix_parse.py ===
............
----------------------------------------------------------------------
Ran 12 tests in 0.000s

OK

=== test-userns.py ===
.............................
----------------------------------------------------------------------
Ran 29 tests in 0.001s

OK

=== test-variable.py ===
.................................................................................................
----------------------------------------------------------------------
Ran 97 tests in 0.003s

OK
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/utils/test”
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/utils/vim”
LANG=C podchecker -warning -warning *.pod
apparmor.vim.pod pod syntax OK.
#Testing with all pythons
set -e;  python3  create-apparmor.vim.py > /dev/null;
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/utils/vim”

(4)安装 

运行make install命令进行安装。实际命令及结果如下(注意DESTDIR=的参数):

$ make install DESTDIR=/home/penghao/AppArmor/apparmor_2/output2
install -d /home/penghao/AppArmor/apparmor_2/output2/etc/apparmor
install -m 644 logprof.conf severity.db notify.conf /home/penghao/AppArmor/apparmor_2/output2/etc/apparmor
install -d /home/penghao/AppArmor/apparmor_2/output2/usr/sbin
# aa-easyprof is installed by python-tools-setup.py
install -m 755 aa-genprof aa-logprof aa-cleanprof aa-mergeprof aa-autodep aa-audit aa-complain aa-enforce aa-disable aa-notify aa-unconfined aa-decode aa-remove-unknown /home/penghao/AppArmor/apparmor_2/output2/usr/sbin
make -C po install DESTDIR=/home/penghao/AppArmor/apparmor_2/output2 NAME=apparmor-utils
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/utils/po”
mkdir -p /home/penghao/AppArmor/apparmor_2/output2//usr/share/locale
for lang in  af  be  bo  bs  cs  de  en_GB  es  fa  fr  gl  hi  id  it  ko  oc  pl  pt_BR  pt  ro  ru  sv  tr  ug  uk  zh_CN ; do \
        mkdir -p /home/penghao/AppArmor/apparmor_2/output2//usr/share/locale/${lang}/LC_MESSAGES ; \
        install -m 644 ${lang}.mo /home/penghao/AppArmor/apparmor_2/output2//usr/share/locale/${lang}/LC_MESSAGES/apparmor-utils.mo ; \
done
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/utils/po”
make install_manpages DESTDIR=/home/penghao/AppArmor/apparmor_2/output2
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/utils”
install -d /home/penghao/AppArmor/apparmor_2/output2//usr/share/man/man5 ; install -m 644 logprof.conf.5 /home/penghao/AppArmor/apparmor_2/output2//usr/share/man/man5;   install -d /home/penghao/AppArmor/apparmor_2/output2//usr/share/man/man8 ; install -m 644 aa-easyprof.8 aa-genprof.8 aa-logprof.8 aa-cleanprof.8 aa-mergeprof.8 aa-autodep.8 aa-audit.8 aa-complain.8 aa-enforce.8 aa-disable.8 aa-notify.8 aa-unconfined.8 aa-decode.8 aa-remove-unknown.8 /home/penghao/AppArmor/apparmor_2/output2//usr/share/man/man8; 
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/utils”
make -C vim install DESTDIR=/home/penghao/AppArmor/apparmor_2/output2
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/utils/vim”
install -d /home/penghao/AppArmor/apparmor_2/output2/usr/share/apparmor
install -m 644 apparmor.vim /home/penghao/AppArmor/apparmor_2/output2/usr/share/apparmor
make install_manpages DESTDIR=/home/penghao/AppArmor/apparmor_2/output2
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/utils/vim”
install -d /home/penghao/AppArmor/apparmor_2/output2//usr/share/man/man5 ; install -m 644 apparmor.vim.5 /home/penghao/AppArmor/apparmor_2/output2//usr/share/man/man5; 
make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/utils/vim”
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/utils/vim”
/usr/bin/python3 python-tools-setup.py install --prefix=/usr --root=/home/penghao/AppArmor/apparmor_2/output2 --version=3.1.0
running install
/usr/lib/python3.10/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
running build
running build_py
creating build
creating build/lib
creating build/lib/apparmor
copying staging/__init__.py -> build/lib/apparmor
copying staging/easyprof.py -> build/lib/apparmor
copying staging/aare.py -> build/lib/apparmor
copying staging/fail.py -> build/lib/apparmor
copying staging/profile_list.py -> build/lib/apparmor
copying staging/rules.py -> build/lib/apparmor
copying staging/regex.py -> build/lib/apparmor
copying staging/sandbox.py -> build/lib/apparmor
copying staging/logparser.py -> build/lib/apparmor
copying staging/ui.py -> build/lib/apparmor
copying staging/config.py -> build/lib/apparmor
copying staging/tools.py -> build/lib/apparmor
copying staging/severity.py -> build/lib/apparmor
copying staging/aa.py -> build/lib/apparmor
copying staging/profile_storage.py -> build/lib/apparmor
copying staging/common.py -> build/lib/apparmor
copying staging/notify.py -> build/lib/apparmor
copying staging/translations.py -> build/lib/apparmor
copying staging/cleanprofile.py -> build/lib/apparmor
creating build/lib/apparmor/rule
copying staging/rule/include.py -> build/lib/apparmor/rule
copying staging/rule/abi.py -> build/lib/apparmor/rule
copying staging/rule/change_profile.py -> build/lib/apparmor/rule
copying staging/rule/boolean.py -> build/lib/apparmor/rule
copying staging/rule/file.py -> build/lib/apparmor/rule
copying staging/rule/alias.py -> build/lib/apparmor/rule
copying staging/rule/userns.py -> build/lib/apparmor/rule
copying staging/rule/variable.py -> build/lib/apparmor/rule
copying staging/rule/mqueue.py -> build/lib/apparmor/rule
copying staging/rule/ptrace.py -> build/lib/apparmor/rule
copying staging/rule/rlimit.py -> build/lib/apparmor/rule
copying staging/rule/capability.py -> build/lib/apparmor/rule
copying staging/rule/__init__.py -> build/lib/apparmor/rule
copying staging/rule/signal.py -> build/lib/apparmor/rule
copying staging/rule/dbus.py -> build/lib/apparmor/rule
copying staging/rule/network.py -> build/lib/apparmor/rule
running install_lib
creating /home/penghao/AppArmor/apparmor_2/output2/usr/lib
creating /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10
creating /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages
creating /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/aare.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/fail.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/profile_list.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/rules.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/regex.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/sandbox.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/logparser.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/easyprof.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/ui.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/config.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/tools.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/severity.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/aa.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/profile_storage.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/common.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/__init__.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/notify.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor
creating /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/include.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/abi.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/change_profile.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/boolean.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/file.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/alias.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/userns.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/variable.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/mqueue.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/ptrace.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/rlimit.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/capability.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/__init__.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/signal.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/dbus.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/network.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/translations.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/cleanprofile.py -> /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/aare.py to aare.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/fail.py to fail.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/profile_list.py to profile_list.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rules.py to rules.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/regex.py to regex.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/sandbox.py to sandbox.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/logparser.py to logparser.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/easyprof.py to easyprof.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/ui.py to ui.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/config.py to config.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/tools.py to tools.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/severity.py to severity.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/aa.py to aa.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/profile_storage.py to profile_storage.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/common.py to common.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/__init__.py to __init__.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/notify.py to notify.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule/include.py to include.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule/abi.py to abi.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule/change_profile.py to change_profile.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule/boolean.py to boolean.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule/file.py to file.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule/alias.py to alias.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule/userns.py to userns.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule/variable.py to variable.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule/mqueue.py to mqueue.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule/ptrace.py to ptrace.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule/rlimit.py to rlimit.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule/capability.py to capability.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule/__init__.py to __init__.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule/signal.py to signal.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule/dbus.py to dbus.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/rule/network.py to network.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/translations.py to translations.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor/cleanprofile.py to cleanprofile.cpython-310.pyc
running install_egg_info
running egg_info
creating apparmor.egg-info
writing apparmor.egg-info/PKG-INFO
writing dependency_links to apparmor.egg-info/dependency_links.txt
writing top-level names to apparmor.egg-info/top_level.txt
writing manifest file 'apparmor.egg-info/SOURCES.txt'
reading manifest file 'apparmor.egg-info/SOURCES.txt'
writing manifest file 'apparmor.egg-info/SOURCES.txt'
Copying apparmor.egg-info to /home/penghao/AppArmor/apparmor_2/output2/usr/lib/python3.10/site-packages/apparmor-3.1.0-py3.10.egg-info
running install_scripts
creating /home/penghao/AppArmor/apparmor_2/output2/usr/bin
copying aa-easyprof -> /home/penghao/AppArmor/apparmor_2/output2/usr/bin
copying easyprof/easyprof.conf -> /home/penghao/AppArmor/apparmor_2/output2/etc/apparmor
creating /home/penghao/AppArmor/apparmor_2/output2/usr/share/apparmor/easyprof
creating /home/penghao/AppArmor/apparmor_2/output2/usr/share/apparmor/easyprof/templates
copying easyprof/templates/user-application -> /home/penghao/AppArmor/apparmor_2/output2/usr/share/apparmor/easyprof/templates
copying easyprof/templates/sandbox-x -> /home/penghao/AppArmor/apparmor_2/output2/usr/share/apparmor/easyprof/templates
copying easyprof/templates/default -> /home/penghao/AppArmor/apparmor_2/output2/usr/share/apparmor/easyprof/templates
copying easyprof/templates/sandbox -> /home/penghao/AppArmor/apparmor_2/output2/usr/share/apparmor/easyprof/templates
creating /home/penghao/AppArmor/apparmor_2/output2/usr/share/apparmor/easyprof/policygroups
copying easyprof/policygroups/user-application -> /home/penghao/AppArmor/apparmor_2/output2/usr/share/apparmor/easyprof/policygroups
copying easyprof/policygroups/opt-application -> /home/penghao/AppArmor/apparmor_2/output2/usr/share/apparmor/easyprof/policygroups

(5)查看生成内容

查看一下通过make DESTDIR=/home/penghao/AppArmor/apparmor_2/output2配置后实际的生成文件及路径:

$ tree ../../output2
../../output2
├── etc
│   └── apparmor
│       ├── easyprof.conf
│       ├── logprof.conf
│       ├── notify.conf
│       └── severity.db
└── usr
    ├── bin
    │   └── aa-easyprof
    ├── lib
    │   └── python3.10
    │       └── site-packages
    │           ├── apparmor
    │           │   ├── aa.py
    │           │   ├── aare.py
    │           │   ├── cleanprofile.py
    │           │   ├── common.py
    │           │   ├── config.py
    │           │   ├── easyprof.py
    │           │   ├── fail.py
    │           │   ├── __init__.py
    │           │   ├── logparser.py
    │           │   ├── notify.py
    │           │   ├── profile_list.py
    │           │   ├── profile_storage.py
    │           │   ├── __pycache__
    │           │   │   ├── aa.cpython-310.pyc
    │           │   │   ├── aare.cpython-310.pyc
    │           │   │   ├── cleanprofile.cpython-310.pyc
    │           │   │   ├── common.cpython-310.pyc
    │           │   │   ├── config.cpython-310.pyc
    │           │   │   ├── easyprof.cpython-310.pyc
    │           │   │   ├── fail.cpython-310.pyc
    │           │   │   ├── __init__.cpython-310.pyc
    │           │   │   ├── logparser.cpython-310.pyc
    │           │   │   ├── notify.cpython-310.pyc
    │           │   │   ├── profile_list.cpython-310.pyc
    │           │   │   ├── profile_storage.cpython-310.pyc
    │           │   │   ├── regex.cpython-310.pyc
    │           │   │   ├── rules.cpython-310.pyc
    │           │   │   ├── sandbox.cpython-310.pyc
    │           │   │   ├── severity.cpython-310.pyc
    │           │   │   ├── tools.cpython-310.pyc
    │           │   │   ├── translations.cpython-310.pyc
    │           │   │   └── ui.cpython-310.pyc
    │           │   ├── regex.py
    │           │   ├── rule
    │           │   │   ├── abi.py
    │           │   │   ├── alias.py
    │           │   │   ├── boolean.py
    │           │   │   ├── capability.py
    │           │   │   ├── change_profile.py
    │           │   │   ├── dbus.py
    │           │   │   ├── file.py
    │           │   │   ├── include.py
    │           │   │   ├── __init__.py
    │           │   │   ├── mqueue.py
    │           │   │   ├── network.py
    │           │   │   ├── ptrace.py
    │           │   │   ├── __pycache__
    │           │   │   │   ├── abi.cpython-310.pyc
    │           │   │   │   ├── alias.cpython-310.pyc
    │           │   │   │   ├── boolean.cpython-310.pyc
    │           │   │   │   ├── capability.cpython-310.pyc
    │           │   │   │   ├── change_profile.cpython-310.pyc
    │           │   │   │   ├── dbus.cpython-310.pyc
    │           │   │   │   ├── file.cpython-310.pyc
    │           │   │   │   ├── include.cpython-310.pyc
    │           │   │   │   ├── __init__.cpython-310.pyc
    │           │   │   │   ├── mqueue.cpython-310.pyc
    │           │   │   │   ├── network.cpython-310.pyc
    │           │   │   │   ├── ptrace.cpython-310.pyc
    │           │   │   │   ├── rlimit.cpython-310.pyc
    │           │   │   │   ├── signal.cpython-310.pyc
    │           │   │   │   ├── userns.cpython-310.pyc
    │           │   │   │   └── variable.cpython-310.pyc
    │           │   │   ├── rlimit.py
    │           │   │   ├── signal.py
    │           │   │   ├── userns.py
    │           │   │   └── variable.py
    │           │   ├── rules.py
    │           │   ├── sandbox.py
    │           │   ├── severity.py
    │           │   ├── tools.py
    │           │   ├── translations.py
    │           │   └── ui.py
    │           └── apparmor-3.1.0-py3.10.egg-info
    │               ├── dependency_links.txt
    │               ├── PKG-INFO
    │               ├── SOURCES.txt
    │               └── top_level.txt
    ├── sbin
    │   ├── aa-audit
    │   ├── aa-autodep
    │   ├── aa-cleanprof
    │   ├── aa-complain
    │   ├── aa-decode
    │   ├── aa-disable
    │   ├── aa-enforce
    │   ├── aa-genprof
    │   ├── aa-logprof
    │   ├── aa-mergeprof
    │   ├── aa-notify
    │   ├── aa-remove-unknown
    │   └── aa-unconfined
    └── share
        ├── apparmor
        │   ├── apparmor.vim
        │   └── easyprof
        │       ├── policygroups
        │       │   ├── opt-application
        │       │   └── user-application
        │       └── templates
        │           ├── default
        │           ├── sandbox
        │           ├── sandbox-x
        │           └── user-application
        ├── locale
        │   ├── af
        │   │   └── LC_MESSAGES
        │   │       └── apparmor-utils.mo
        │   ├── be
        │   │   └── LC_MESSAGES
        │   │       └── apparmor-utils.mo
        │   ├── bo
        │   │   └── LC_MESSAGES
        │   │       └── apparmor-utils.mo
        │   ├── bs
        │   │   └── LC_MESSAGES
        │   │       └── apparmor-utils.mo
        │   ├── cs
        │   │   └── LC_MESSAGES
        │   │       └── apparmor-utils.mo
        │   ├── de
        │   │   └── LC_MESSAGES
        │   │       └── apparmor-utils.mo
        │   ├── en_GB
        │   │   └── LC_MESSAGES
        │   │       └── apparmor-utils.mo
        │   ├── es
        │   │   └── LC_MESSAGES
        │   │       └── apparmor-utils.mo
        │   ├── fa
        │   │   └── LC_MESSAGES
        │   │       └── apparmor-utils.mo
        │   ├── fr
        │   │   └── LC_MESSAGES
        │   │       └── apparmor-utils.mo
        │   ├── gl
        │   │   └── LC_MESSAGES
        │   │       └── apparmor-utils.mo
        │   ├── hi
        │   │   └── LC_MESSAGES
        │   │       └── apparmor-utils.mo
        │   ├── id
        │   │   └── LC_MESSAGES
        │   │       └── apparmor-utils.mo
        │   ├── it
        │   │   └── LC_MESSAGES
        │   │       └── apparmor-utils.mo
        │   ├── ko
        │   │   └── LC_MESSAGES
        │   │       └── apparmor-utils.mo
        │   ├── oc
        │   │   └── LC_MESSAGES
        │   │       └── apparmor-utils.mo
        │   ├── pl
        │   │   └── LC_MESSAGES
        │   │       └── apparmor-utils.mo
        │   ├── pt
        │   │   └── LC_MESSAGES
        │   │       └── apparmor-utils.mo
        │   ├── pt_BR
        │   │   └── LC_MESSAGES
        │   │       └── apparmor-utils.mo
        │   ├── ro
        │   │   └── LC_MESSAGES
        │   │       └── apparmor-utils.mo
        │   ├── ru
        │   │   └── LC_MESSAGES
        │   │       └── apparmor-utils.mo
        │   ├── sv
        │   │   └── LC_MESSAGES
        │   │       └── apparmor-utils.mo
        │   ├── tr
        │   │   └── LC_MESSAGES
        │   │       └── apparmor-utils.mo
        │   ├── ug
        │   │   └── LC_MESSAGES
        │   │       └── apparmor-utils.mo
        │   ├── uk
        │   │   └── LC_MESSAGES
        │   │       └── apparmor-utils.mo
        │   └── zh_CN
        │       └── LC_MESSAGES
        │           └── apparmor-utils.mo
        └── man
            ├── man5
            │   ├── apparmor.vim.5
            │   └── logprof.conf.5
            └── man8
                ├── aa-audit.8
                ├── aa-autodep.8
                ├── aa-cleanprof.8
                ├── aa-complain.8
                ├── aa-decode.8
                ├── aa-disable.8
                ├── aa-easyprof.8
                ├── aa-enforce.8
                ├── aa-genprof.8
                ├── aa-logprof.8
                ├── aa-mergeprof.8
                ├── aa-notify.8
                ├── aa-remove-unknown.8
                └── aa-unconfined.8

74 directories, 141 files

这里将生成目标放到了output2文件夹下,是为了看清楚Utilities都生成了哪些内容。最终还是要安装到之前的output目录下。

更换DESTDIR=参数后再次进行安装,实际命令及结果如下:

$ make install DESTDIR=/home/penghao/AppArmor/apparmor_2/output
install -d /home/penghao/AppArmor/apparmor_2/output/etc/apparmor
install -m 644 logprof.conf severity.db notify.conf /home/penghao/AppArmor/apparmor_2/output/etc/apparmor
install -d /home/penghao/AppArmor/apparmor_2/output/usr/sbin
# aa-easyprof is installed by python-tools-setup.py
install -m 755 aa-genprof aa-logprof aa-cleanprof aa-mergeprof aa-autodep aa-audit aa-complain aa-enforce aa-disable aa-notify aa-unconfined aa-decode aa-remove-unknown /home/penghao/AppArmor/apparmor_2/output/usr/sbin
make -C po install DESTDIR=/home/penghao/AppArmor/apparmor_2/output NAME=apparmor-utils
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/utils/po”
mkdir -p /home/penghao/AppArmor/apparmor_2/output//usr/share/locale
for lang in  af  be  bo  bs  cs  de  en_GB  es  fa  fr  gl  hi  id  it  ko  oc  pl  pt_BR  pt  ro  ru  sv  tr  ug  uk  zh_CN ; do \
        mkdir -p /home/penghao/AppArmor/apparmor_2/output//usr/share/locale/${lang}/LC_MESSAGES ; \
        install -m 644 ${lang}.mo /home/penghao/AppArmor/apparmor_2/output//usr/share/locale/${lang}/LC_MESSAGES/apparmor-utils.mo ; \
done
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/utils/po”
make install_manpages DESTDIR=/home/penghao/AppArmor/apparmor_2/output
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/utils”
install -d /home/penghao/AppArmor/apparmor_2/output//usr/share/man/man5 ; install -m 644 logprof.conf.5 /home/penghao/AppArmor/apparmor_2/output//usr/share/man/man5;   install -d /home/penghao/AppArmor/apparmor_2/output//usr/share/man/man8 ; install -m 644 aa-easyprof.8 aa-genprof.8 aa-logprof.8 aa-cleanprof.8 aa-mergeprof.8 aa-autodep.8 aa-audit.8 aa-complain.8 aa-enforce.8 aa-disable.8 aa-notify.8 aa-unconfined.8 aa-decode.8 aa-remove-unknown.8 /home/penghao/AppArmor/apparmor_2/output//usr/share/man/man8; 
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/utils”
make -C vim install DESTDIR=/home/penghao/AppArmor/apparmor_2/output
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/utils/vim”
install -d /home/penghao/AppArmor/apparmor_2/output/usr/share/apparmor
install -m 644 apparmor.vim /home/penghao/AppArmor/apparmor_2/output/usr/share/apparmor
make install_manpages DESTDIR=/home/penghao/AppArmor/apparmor_2/output
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/utils/vim”
install -d /home/penghao/AppArmor/apparmor_2/output//usr/share/man/man5 ; install -m 644 apparmor.vim.5 /home/penghao/AppArmor/apparmor_2/output//usr/share/man/man5; 
make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/utils/vim”
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/utils/vim”
/usr/bin/python3 python-tools-setup.py install --prefix=/usr --root=/home/penghao/AppArmor/apparmor_2/output --version=3.1.0
running install
/usr/lib/python3.10/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
running build
running build_py
running install_lib
creating /home/penghao/AppArmor/apparmor_2/output/usr/lib
creating /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10
creating /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages
creating /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/aare.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/fail.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/profile_list.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/rules.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/regex.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/sandbox.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/logparser.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/easyprof.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/ui.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/config.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/tools.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/severity.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/aa.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/profile_storage.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/common.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/__init__.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/notify.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor
creating /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/include.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/abi.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/change_profile.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/boolean.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/file.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/alias.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/userns.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/variable.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/mqueue.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/ptrace.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/rlimit.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/capability.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/__init__.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/signal.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/dbus.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/rule/network.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule
copying build/lib/apparmor/translations.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor
copying build/lib/apparmor/cleanprofile.py -> /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/aare.py to aare.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/fail.py to fail.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/profile_list.py to profile_list.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rules.py to rules.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/regex.py to regex.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/sandbox.py to sandbox.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/logparser.py to logparser.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/easyprof.py to easyprof.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/ui.py to ui.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/config.py to config.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/tools.py to tools.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/severity.py to severity.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/aa.py to aa.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/profile_storage.py to profile_storage.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/common.py to common.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/__init__.py to __init__.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/notify.py to notify.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule/include.py to include.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule/abi.py to abi.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule/change_profile.py to change_profile.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule/boolean.py to boolean.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule/file.py to file.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule/alias.py to alias.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule/userns.py to userns.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule/variable.py to variable.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule/mqueue.py to mqueue.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule/ptrace.py to ptrace.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule/rlimit.py to rlimit.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule/capability.py to capability.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule/__init__.py to __init__.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule/signal.py to signal.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule/dbus.py to dbus.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/rule/network.py to network.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/translations.py to translations.cpython-310.pyc
byte-compiling /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor/cleanprofile.py to cleanprofile.cpython-310.pyc
running install_egg_info
running egg_info
writing apparmor.egg-info/PKG-INFO
writing dependency_links to apparmor.egg-info/dependency_links.txt
writing top-level names to apparmor.egg-info/top_level.txt
reading manifest file 'apparmor.egg-info/SOURCES.txt'
writing manifest file 'apparmor.egg-info/SOURCES.txt'
Copying apparmor.egg-info to /home/penghao/AppArmor/apparmor_2/output/usr/lib/python3.10/site-packages/apparmor-3.1.0-py3.10.egg-info
running install_scripts
copying aa-easyprof -> /home/penghao/AppArmor/apparmor_2/output/usr/bin
copying easyprof/easyprof.conf -> /home/penghao/AppArmor/apparmor_2/output/etc/apparmor
creating /home/penghao/AppArmor/apparmor_2/output/usr/share/apparmor/easyprof
creating /home/penghao/AppArmor/apparmor_2/output/usr/share/apparmor/easyprof/templates
copying easyprof/templates/user-application -> /home/penghao/AppArmor/apparmor_2/output/usr/share/apparmor/easyprof/templates
copying easyprof/templates/sandbox-x -> /home/penghao/AppArmor/apparmor_2/output/usr/share/apparmor/easyprof/templates
copying easyprof/templates/default -> /home/penghao/AppArmor/apparmor_2/output/usr/share/apparmor/easyprof/templates
copying easyprof/templates/sandbox -> /home/penghao/AppArmor/apparmor_2/output/usr/share/apparmor/easyprof/templates
creating /home/penghao/AppArmor/apparmor_2/output/usr/share/apparmor/easyprof/policygroups
copying easyprof/policygroups/user-application -> /home/penghao/AppArmor/apparmor_2/output/usr/share/apparmor/easyprof/policygroups
copying easyprof/policygroups/opt-application -> /home/penghao/AppArmor/apparmor_2/output/usr/share/apparmor/easyprof/policygroups

对比一下output在安装Utilities前后的变化:

安装前

$ tree ../../output
../../output
├── etc
│   └── apparmor
│       └── parser.conf
├── lib
│   └── apparmor
│       ├── profile-load
│       └── rc.apparmor.functions
├── sbin
│   └── apparmor_parser
├── usr
│   ├── bin
│   │   ├── aa-enabled
│   │   ├── aa-exec
│   │   └── aa-features-abi
│   ├── local
│   │   ├── include
│   │   │   ├── aalogparse
│   │   │   │   └── aalogparse.h
│   │   │   └── sys
│   │   │       ├── apparmor.h
│   │   │       └── apparmor_private.h
│   │   ├── lib
│   │   │   ├── libapparmor.a
│   │   │   ├── libapparmor.la
│   │   │   ├── libapparmor.so -> libapparmor.so.1.12.2
│   │   │   ├── libapparmor.so.1 -> libapparmor.so.1.12.2
│   │   │   ├── libapparmor.so.1.12.2
│   │   │   ├── perl5
│   │   │   │   └── 5.36
│   │   │   │       ├── core_perl
│   │   │   │       │   └── perllocal.pod
│   │   │   │       └── vendor_perl
│   │   │   │           ├── auto
│   │   │   │           │   └── LibAppArmor
│   │   │   │           │       └── LibAppArmor.so
│   │   │   │           └── LibAppArmor.pm
│   │   │   ├── pkgconfig
│   │   │   │   └── libapparmor.pc
│   │   │   └── python3.10
│   │   │       └── site-packages
│   │   │           ├── LibAppArmor
│   │   │           │   ├── __init__.py
│   │   │           │   ├── _LibAppArmor.cpython-310-x86_64-linux-gnu.so
│   │   │           │   ├── LibAppArmor.py
│   │   │           │   └── __pycache__
│   │   │           │       ├── __init__.cpython-310.pyc
│   │   │           │       └── LibAppArmor.cpython-310.pyc
│   │   │           └── LibAppArmor-3.1.0-py3.10.egg-info
│   │   │               ├── dependency_links.txt
│   │   │               ├── PKG-INFO
│   │   │               ├── SOURCES.txt
│   │   │               └── top_level.txt
│   │   └── share
│   │       └── man
│   │           ├── man2
│   │           │   ├── aa_change_hat.2
│   │           │   ├── aa_change_profile.2
│   │           │   ├── aa_find_mountpoint.2
│   │           │   ├── aa_getcon.2
│   │           │   ├── aa_query_label.2
│   │           │   └── aa_stack_profile.2
│   │           └── man3
│   │               ├── aa_features.3
│   │               ├── aa_kernel_interface.3
│   │               ├── aa_policy_cache.3
│   │               └── aa_splitcon.3
│   ├── sbin
│   │   ├── aa-status
│   │   └── apparmor_status -> aa-status
│   └── share
│       ├── locale
│       │   ├── af
│       │   │   └── LC_MESSAGES
│       │   │       ├── aa-binutils.mo
│       │   │       └── apparmor-parser.mo
│       │   ├── ar
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── bg
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── bn
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── bo
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── bs
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── ca
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── ce
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── cs
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── cy
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── da
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── de
│       │   │   └── LC_MESSAGES
│       │   │       ├── aa-binutils.mo
│       │   │       └── apparmor-parser.mo
│       │   ├── el
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── en_AU
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── en_CA
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── en_GB
│       │   │   └── LC_MESSAGES
│       │   │       ├── aa-binutils.mo
│       │   │       └── apparmor-parser.mo
│       │   ├── es
│       │   │   └── LC_MESSAGES
│       │   │       ├── aa-binutils.mo
│       │   │       └── apparmor-parser.mo
│       │   ├── et
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── fa
│       │   │   └── LC_MESSAGES
│       │   │       ├── aa-binutils.mo
│       │   │       └── apparmor-parser.mo
│       │   ├── fi
│       │   │   └── LC_MESSAGES
│       │   │       ├── aa-binutils.mo
│       │   │       └── apparmor-parser.mo
│       │   ├── fr
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── gl
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── gu
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── he
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── hi
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── hr
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── hu
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── id
│       │   │   └── LC_MESSAGES
│       │   │       ├── aa-binutils.mo
│       │   │       └── apparmor-parser.mo
│       │   ├── it
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── ja
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── ka
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── km
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── ko
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── lo
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── lt
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── mk
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── mr
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── ms
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── nb
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── nl
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── oc
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── pa
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── pl
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── pt
│       │   │   └── LC_MESSAGES
│       │   │       ├── aa-binutils.mo
│       │   │       └── apparmor-parser.mo
│       │   ├── pt_BR
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── ro
│       │   │   └── LC_MESSAGES
│       │   │       ├── aa-binutils.mo
│       │   │       └── apparmor-parser.mo
│       │   ├── ru
│       │   │   └── LC_MESSAGES
│       │   │       ├── aa-binutils.mo
│       │   │       └── apparmor-parser.mo
│       │   ├── si
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── sk
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── sl
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── sq
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── sr
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── sv
│       │   │   └── LC_MESSAGES
│       │   │       ├── aa-binutils.mo
│       │   │       └── apparmor-parser.mo
│       │   ├── sw
│       │   │   └── LC_MESSAGES
│       │   │       └── aa-binutils.mo
│       │   ├── ta
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── th
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── tr
│       │   │   └── LC_MESSAGES
│       │   │       ├── aa-binutils.mo
│       │   │       └── apparmor-parser.mo
│       │   ├── ug
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── uk
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── vi
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── wa
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── xh
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── zh_CN
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── zh_TW
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   └── zu
│       │       └── LC_MESSAGES
│       │           └── apparmor-parser.mo
│       └── man
│           ├── man1
│           │   ├── aa-enabled.1
│           │   ├── aa-exec.1
│           │   └── aa-features-abi.1
│           ├── man5
│           │   └── apparmor.d.5
│           ├── man7
│           │   ├── apparmor.7
│           │   └── apparmor_xattrs.7
│           └── man8
│               ├── aa-status.8
│               ├── aa-teardown.8
│               ├── apparmor_parser.8
│               └── apparmor_status.8 -> aa-status.8
└── var
    └── lib
        └── apparmor

169 directories, 127 files

安装后文章来源地址https://www.toymoban.com/news/detail-420565.html

$ tree ../../output
../../output
├── etc
│   └── apparmor
│       ├── easyprof.conf
│       ├── logprof.conf
│       ├── notify.conf
│       ├── parser.conf
│       └── severity.db
├── lib
│   └── apparmor
│       ├── profile-load
│       └── rc.apparmor.functions
├── sbin
│   └── apparmor_parser
├── usr
│   ├── bin
│   │   ├── aa-easyprof
│   │   ├── aa-enabled
│   │   ├── aa-exec
│   │   └── aa-features-abi
│   ├── lib
│   │   └── python3.10
│   │       └── site-packages
│   │           ├── apparmor
│   │           │   ├── aa.py
│   │           │   ├── aare.py
│   │           │   ├── cleanprofile.py
│   │           │   ├── common.py
│   │           │   ├── config.py
│   │           │   ├── easyprof.py
│   │           │   ├── fail.py
│   │           │   ├── __init__.py
│   │           │   ├── logparser.py
│   │           │   ├── notify.py
│   │           │   ├── profile_list.py
│   │           │   ├── profile_storage.py
│   │           │   ├── __pycache__
│   │           │   │   ├── aa.cpython-310.pyc
│   │           │   │   ├── aare.cpython-310.pyc
│   │           │   │   ├── cleanprofile.cpython-310.pyc
│   │           │   │   ├── common.cpython-310.pyc
│   │           │   │   ├── config.cpython-310.pyc
│   │           │   │   ├── easyprof.cpython-310.pyc
│   │           │   │   ├── fail.cpython-310.pyc
│   │           │   │   ├── __init__.cpython-310.pyc
│   │           │   │   ├── logparser.cpython-310.pyc
│   │           │   │   ├── notify.cpython-310.pyc
│   │           │   │   ├── profile_list.cpython-310.pyc
│   │           │   │   ├── profile_storage.cpython-310.pyc
│   │           │   │   ├── regex.cpython-310.pyc
│   │           │   │   ├── rules.cpython-310.pyc
│   │           │   │   ├── sandbox.cpython-310.pyc
│   │           │   │   ├── severity.cpython-310.pyc
│   │           │   │   ├── tools.cpython-310.pyc
│   │           │   │   ├── translations.cpython-310.pyc
│   │           │   │   └── ui.cpython-310.pyc
│   │           │   ├── regex.py
│   │           │   ├── rule
│   │           │   │   ├── abi.py
│   │           │   │   ├── alias.py
│   │           │   │   ├── boolean.py
│   │           │   │   ├── capability.py
│   │           │   │   ├── change_profile.py
│   │           │   │   ├── dbus.py
│   │           │   │   ├── file.py
│   │           │   │   ├── include.py
│   │           │   │   ├── __init__.py
│   │           │   │   ├── mqueue.py
│   │           │   │   ├── network.py
│   │           │   │   ├── ptrace.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── abi.cpython-310.pyc
│   │           │   │   │   ├── alias.cpython-310.pyc
│   │           │   │   │   ├── boolean.cpython-310.pyc
│   │           │   │   │   ├── capability.cpython-310.pyc
│   │           │   │   │   ├── change_profile.cpython-310.pyc
│   │           │   │   │   ├── dbus.cpython-310.pyc
│   │           │   │   │   ├── file.cpython-310.pyc
│   │           │   │   │   ├── include.cpython-310.pyc
│   │           │   │   │   ├── __init__.cpython-310.pyc
│   │           │   │   │   ├── mqueue.cpython-310.pyc
│   │           │   │   │   ├── network.cpython-310.pyc
│   │           │   │   │   ├── ptrace.cpython-310.pyc
│   │           │   │   │   ├── rlimit.cpython-310.pyc
│   │           │   │   │   ├── signal.cpython-310.pyc
│   │           │   │   │   ├── userns.cpython-310.pyc
│   │           │   │   │   └── variable.cpython-310.pyc
│   │           │   │   ├── rlimit.py
│   │           │   │   ├── signal.py
│   │           │   │   ├── userns.py
│   │           │   │   └── variable.py
│   │           │   ├── rules.py
│   │           │   ├── sandbox.py
│   │           │   ├── severity.py
│   │           │   ├── tools.py
│   │           │   ├── translations.py
│   │           │   └── ui.py
│   │           └── apparmor-3.1.0-py3.10.egg-info
│   │               ├── dependency_links.txt
│   │               ├── PKG-INFO
│   │               ├── SOURCES.txt
│   │               └── top_level.txt
│   ├── local
│   │   ├── include
│   │   │   ├── aalogparse
│   │   │   │   └── aalogparse.h
│   │   │   └── sys
│   │   │       ├── apparmor.h
│   │   │       └── apparmor_private.h
│   │   ├── lib
│   │   │   ├── libapparmor.a
│   │   │   ├── libapparmor.la
│   │   │   ├── libapparmor.so -> libapparmor.so.1.12.2
│   │   │   ├── libapparmor.so.1 -> libapparmor.so.1.12.2
│   │   │   ├── libapparmor.so.1.12.2
│   │   │   ├── perl5
│   │   │   │   └── 5.36
│   │   │   │       ├── core_perl
│   │   │   │       │   └── perllocal.pod
│   │   │   │       └── vendor_perl
│   │   │   │           ├── auto
│   │   │   │           │   └── LibAppArmor
│   │   │   │           │       └── LibAppArmor.so
│   │   │   │           └── LibAppArmor.pm
│   │   │   ├── pkgconfig
│   │   │   │   └── libapparmor.pc
│   │   │   └── python3.10
│   │   │       └── site-packages
│   │   │           ├── LibAppArmor
│   │   │           │   ├── __init__.py
│   │   │           │   ├── _LibAppArmor.cpython-310-x86_64-linux-gnu.so
│   │   │           │   ├── LibAppArmor.py
│   │   │           │   └── __pycache__
│   │   │           │       ├── __init__.cpython-310.pyc
│   │   │           │       └── LibAppArmor.cpython-310.pyc
│   │   │           └── LibAppArmor-3.1.0-py3.10.egg-info
│   │   │               ├── dependency_links.txt
│   │   │               ├── PKG-INFO
│   │   │               ├── SOURCES.txt
│   │   │               └── top_level.txt
│   │   └── share
│   │       └── man
│   │           ├── man2
│   │           │   ├── aa_change_hat.2
│   │           │   ├── aa_change_profile.2
│   │           │   ├── aa_find_mountpoint.2
│   │           │   ├── aa_getcon.2
│   │           │   ├── aa_query_label.2
│   │           │   └── aa_stack_profile.2
│   │           └── man3
│   │               ├── aa_features.3
│   │               ├── aa_kernel_interface.3
│   │               ├── aa_policy_cache.3
│   │               └── aa_splitcon.3
│   ├── sbin
│   │   ├── aa-audit
│   │   ├── aa-autodep
│   │   ├── aa-cleanprof
│   │   ├── aa-complain
│   │   ├── aa-decode
│   │   ├── aa-disable
│   │   ├── aa-enforce
│   │   ├── aa-genprof
│   │   ├── aa-logprof
│   │   ├── aa-mergeprof
│   │   ├── aa-notify
│   │   ├── aa-remove-unknown
│   │   ├── aa-status
│   │   ├── aa-unconfined
│   │   └── apparmor_status -> aa-status
│   └── share
│       ├── apparmor
│       │   ├── apparmor.vim
│       │   └── easyprof
│       │       ├── policygroups
│       │       │   ├── opt-application
│       │       │   └── user-application
│       │       └── templates
│       │           ├── default
│       │           ├── sandbox
│       │           ├── sandbox-x
│       │           └── user-application
│       ├── locale
│       │   ├── af
│       │   │   └── LC_MESSAGES
│       │   │       ├── aa-binutils.mo
│       │   │       ├── apparmor-parser.mo
│       │   │       └── apparmor-utils.mo
│       │   ├── ar
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── be
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-utils.mo
│       │   ├── bg
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── bn
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── bo
│       │   │   └── LC_MESSAGES
│       │   │       ├── apparmor-parser.mo
│       │   │       └── apparmor-utils.mo
│       │   ├── bs
│       │   │   └── LC_MESSAGES
│       │   │       ├── apparmor-parser.mo
│       │   │       └── apparmor-utils.mo
│       │   ├── ca
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── ce
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── cs
│       │   │   └── LC_MESSAGES
│       │   │       ├── apparmor-parser.mo
│       │   │       └── apparmor-utils.mo
│       │   ├── cy
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── da
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── de
│       │   │   └── LC_MESSAGES
│       │   │       ├── aa-binutils.mo
│       │   │       ├── apparmor-parser.mo
│       │   │       └── apparmor-utils.mo
│       │   ├── el
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── en_AU
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── en_CA
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── en_GB
│       │   │   └── LC_MESSAGES
│       │   │       ├── aa-binutils.mo
│       │   │       ├── apparmor-parser.mo
│       │   │       └── apparmor-utils.mo
│       │   ├── es
│       │   │   └── LC_MESSAGES
│       │   │       ├── aa-binutils.mo
│       │   │       ├── apparmor-parser.mo
│       │   │       └── apparmor-utils.mo
│       │   ├── et
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── fa
│       │   │   └── LC_MESSAGES
│       │   │       ├── aa-binutils.mo
│       │   │       ├── apparmor-parser.mo
│       │   │       └── apparmor-utils.mo
│       │   ├── fi
│       │   │   └── LC_MESSAGES
│       │   │       ├── aa-binutils.mo
│       │   │       └── apparmor-parser.mo
│       │   ├── fr
│       │   │   └── LC_MESSAGES
│       │   │       ├── apparmor-parser.mo
│       │   │       └── apparmor-utils.mo
│       │   ├── gl
│       │   │   └── LC_MESSAGES
│       │   │       ├── apparmor-parser.mo
│       │   │       └── apparmor-utils.mo
│       │   ├── gu
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── he
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── hi
│       │   │   └── LC_MESSAGES
│       │   │       ├── apparmor-parser.mo
│       │   │       └── apparmor-utils.mo
│       │   ├── hr
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── hu
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── id
│       │   │   └── LC_MESSAGES
│       │   │       ├── aa-binutils.mo
│       │   │       ├── apparmor-parser.mo
│       │   │       └── apparmor-utils.mo
│       │   ├── it
│       │   │   └── LC_MESSAGES
│       │   │       ├── apparmor-parser.mo
│       │   │       └── apparmor-utils.mo
│       │   ├── ja
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── ka
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── km
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── ko
│       │   │   └── LC_MESSAGES
│       │   │       ├── apparmor-parser.mo
│       │   │       └── apparmor-utils.mo
│       │   ├── lo
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── lt
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── mk
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── mr
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── ms
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── nb
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── nl
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── oc
│       │   │   └── LC_MESSAGES
│       │   │       ├── apparmor-parser.mo
│       │   │       └── apparmor-utils.mo
│       │   ├── pa
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── pl
│       │   │   └── LC_MESSAGES
│       │   │       ├── apparmor-parser.mo
│       │   │       └── apparmor-utils.mo
│       │   ├── pt
│       │   │   └── LC_MESSAGES
│       │   │       ├── aa-binutils.mo
│       │   │       ├── apparmor-parser.mo
│       │   │       └── apparmor-utils.mo
│       │   ├── pt_BR
│       │   │   └── LC_MESSAGES
│       │   │       ├── apparmor-parser.mo
│       │   │       └── apparmor-utils.mo
│       │   ├── ro
│       │   │   └── LC_MESSAGES
│       │   │       ├── aa-binutils.mo
│       │   │       ├── apparmor-parser.mo
│       │   │       └── apparmor-utils.mo
│       │   ├── ru
│       │   │   └── LC_MESSAGES
│       │   │       ├── aa-binutils.mo
│       │   │       ├── apparmor-parser.mo
│       │   │       └── apparmor-utils.mo
│       │   ├── si
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── sk
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── sl
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── sq
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── sr
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── sv
│       │   │   └── LC_MESSAGES
│       │   │       ├── aa-binutils.mo
│       │   │       ├── apparmor-parser.mo
│       │   │       └── apparmor-utils.mo
│       │   ├── sw
│       │   │   └── LC_MESSAGES
│       │   │       └── aa-binutils.mo
│       │   ├── ta
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── th
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── tr
│       │   │   └── LC_MESSAGES
│       │   │       ├── aa-binutils.mo
│       │   │       ├── apparmor-parser.mo
│       │   │       └── apparmor-utils.mo
│       │   ├── ug
│       │   │   └── LC_MESSAGES
│       │   │       ├── apparmor-parser.mo
│       │   │       └── apparmor-utils.mo
│       │   ├── uk
│       │   │   └── LC_MESSAGES
│       │   │       ├── apparmor-parser.mo
│       │   │       └── apparmor-utils.mo
│       │   ├── vi
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── wa
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── xh
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   ├── zh_CN
│       │   │   └── LC_MESSAGES
│       │   │       ├── apparmor-parser.mo
│       │   │       └── apparmor-utils.mo
│       │   ├── zh_TW
│       │   │   └── LC_MESSAGES
│       │   │       └── apparmor-parser.mo
│       │   └── zu
│       │       └── LC_MESSAGES
│       │           └── apparmor-parser.mo
│       └── man
│           ├── man1
│           │   ├── aa-enabled.1
│           │   ├── aa-exec.1
│           │   └── aa-features-abi.1
│           ├── man5
│           │   ├── apparmor.d.5
│           │   ├── apparmor.vim.5
│           │   └── logprof.conf.5
│           ├── man7
│           │   ├── apparmor.7
│           │   └── apparmor_xattrs.7
│           └── man8
│               ├── aa-audit.8
│               ├── aa-autodep.8
│               ├── aa-cleanprof.8
│               ├── aa-complain.8
│               ├── aa-decode.8
│               ├── aa-disable.8
│               ├── aa-easyprof.8
│               ├── aa-enforce.8
│               ├── aa-genprof.8
│               ├── aa-logprof.8
│               ├── aa-mergeprof.8
│               ├── aa-notify.8
│               ├── aa-remove-unknown.8
│               ├── aa-status.8
│               ├── aa-teardown.8
│               ├── aa-unconfined.8
│               ├── apparmor_parser.8
│               └── apparmor_status.8 -> aa-status.8
└── var
    └── lib
        └── apparmor

183 directories, 268 files

到了这里,关于Utilities非默认目录构建和安装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【LangChain学习】基于PDF文档构建问答知识库(一)前期准备

    这系列主要介绍如何使用LangChain大模型,结合ChatGPT3.5,基于PDF文档构建专属的问答知识库。 LangChain 和 OpenAI 本身可支持 Nodejs 和 Python 两个版本,笔者后续的介绍主要用到Python版本,如果有需要Nodejs版本的同学,也可以给我留言,因为Nodejs版本我也实现了。 Python 版本为 ≥

    2024年02月13日
    浏览(63)
  • 【LangChain学习】基于PDF文档构建问答知识库(三)实战整合 LangChain、OpenAI、FAISS等

    接下来,我们开始在web框架上整合 LangChain、OpenAI、FAISS等。 因为项目是基于PDF文档的,所以需要一些操作PDF的库,我们这边使用的是PyPDF2 传入 pdf 文件路径,返回 pdf 文档的文本内容。 首先我们需要将第一步拿到的本文内容拆分,我们使用的是 RecursiveCharacterTextSplitter ,默认

    2024年02月13日
    浏览(67)
  • 【学习笔记】pandas提取excel数据形成三元组,采用neo4j数据库构建小型知识图谱

    前言     代码来自github项目 neo4j-python-pandas-py2neo-v3,项目作者为Skyelbin。我记录一下运行该项目的一些过程文字以及遇到的问题和解决办法。 invoice_data 如下: node_list_key 如下: node_list_value 如下: df_data 如下: 构建的知识图谱如下所示: 压缩包里其他文件说明(个人理

    2024年01月16日
    浏览(49)
  • 《人工智能专栏》必读150篇 | 专栏介绍 & 专栏目录 & Python与PyTorch | 机器与深度学习 | 目标检测 | YOLOv5及改进 | YOLOv8及改进 | 关键知识点 | 工具

    各位读者们好,本专栏最近刚推出,限于个人能力有限,不免会有诸多错误,敬请私信反馈给我,接受善意的提示,后期我会改正,谢谢,感谢。 第一步 :[ 购买点击跳转 ] 第二步 : 代码函数调用关系图(全网最详尽-重要) 因文档特殊,不能在博客正确显示,请移步以下链接

    2024年02月02日
    浏览(71)
  • 安装Stable Diffusion遇到RuntimeError: cannot import name ‘_compare_version‘ from ‘torchmetrics.utilities

    在b站,根据这位博主的这个视频安装Stable Diffusion时遇到的这个bug。 解决办法: 1、打开命令行(不懂,去百度)输入pip show torchmetrics 可以看到torchmetrics的版本是1.2.1 2、卸载torchmetrics  3、下载0.11.4版本的torchmetrics 然后问题就解决了。 我解决问题的时间就是发文章的时间,

    2024年04月13日
    浏览(34)
  • Docker修改默认根目录

    Docker安装后的默认根目录在/var/lib/docker,修改根目录的方法如下: 1、使用docker info查看默认的目录 2、确保停止docker服务 3、修改docker服务启动文件(docker.service ) 4、同步docker根目录数据到新目录 5、重新加载配置并启动 6、查看修改后的docker信息 如果能看到Docker Root Dir: /

    2024年02月13日
    浏览(42)
  • jupyter默认工作目录的更改

    1、 生成配置文件 :打开Anaconda Prompt,输入如下命令 询问 [y/N] 时输入 y 2、 配置文件修改 :根据打印路径打开配置文件jupyter_notebook_config.py,全文搜索找到 notebook_dir 所在位置。在单引号中填入新的工作路径,并删掉 # ,在路径前添加字母 r 。如下图: 3、 修改快捷方式目标

    2024年02月12日
    浏览(35)
  • IDEA(2023)修改默认缓存目录

    😇作者介绍:一个有梦想、有理想、有目标的,且渴望能够学有所成的追梦人。 🎆学习格言:不读书的人,思想就会停止。——狄德罗 ⛪️个人主页:进入博主主页 🗼专栏系列:无 🌼欢迎小伙伴们访问到博主的文章内容,在浏览阅读过程发现需要纠正的地方,烦请指出,

    2024年02月07日
    浏览(43)
  • Linux PAM和AppArmor

    PAM全称叫作Pluggable Authentication Modules,译为可插拔验证模块。1995年起源于sun公司,PAM是一个框架,通过PAM框架提供的接口,应用程序可以不关心基层具体的实现过程,直接调用接口实现身份验证功能。 PAM还有一个功能就是在用户空间就是先对用户的资源进行限制。 PAM不是L

    2024年02月06日
    浏览(41)
  • Nginx目录结构简介:深入理解Nginx的默认文件和目录

    第一章 Nginx的默认目录结构 当你安装Nginx后,它的默认目录结构如下: 让我们逐个了解这些目录和文件的作用。 第二章 conf目录 conf目录包含了Nginx的配置文件,其中nginx.conf是Nginx主配置文件,它包含了所有全局的Nginx配置项。mime.types文件包含了MIME类型的定义,它告诉Nginx如

    2024年02月13日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包