Utilities non-default directory build and install

In AppArmor zero-knowledge learning eight, source code construction (5) , the construction steps of Utilities are introduced in detail, but the default parameters given by the official website are completely used. If you need to generate the target file to the specified directory instead of the default /usr, you need to make some modifications. This article will detail how to make the modifications.

The following two points must be stated:

(1) The construction of Utilities must be carried out on the basis of the previous steps (configuration of environment variables and libapparmor construction). For these two steps, please refer to: AppArmor zero-knowledge learning 4. Source code construction (1) and AppArmor zero-knowledge learning 5. Source code construction (2) ;

(2) The above steps in the construction and installation of libapparmor's non-default directory are for making packages. Since it does not put the target file under /usr/local, it does not actually work. What really works is the libapparmor related components that were previously built according to the default parameters.

Next, start building and installing the Utilities custom installation directory.

(1) Enter utils目录

Use the cd command to enter the utils directory under the root directory of the apparmor source code. The actual commands and results are as follows:

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) compile

Run the make command to compile. The actual commands and results are as follows:

$ 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) check

Run the make check command to check. The actual commands and results are as follows:

$ 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) Installation 

Run the make install command to install. The actual commands and results are as follows (note the parameter of 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) View generated content

Check the actual generated file and path after configuring 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

The generation target is placed under the output2 folder here to see clearly what content is generated by Utilities. In the end, it still needs to be installed in the previous output directory.

Install again after changing the DESTDIR= parameter, the actual command and results are as follows:

$ 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

Compare the changes in output before and after installing Utilities:

before installation

$ 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

After installation

$ 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

Guess you like

Origin blog.csdn.net/phmatthaus/article/details/130293247