网站建设一样注意什么,文字域名可以做网站,wordpress怎么加插件下载,网址搜索引擎入口在AppArmor零知识学习六、源码构建#xff08;3#xff09;中#xff0c;详细介绍了libapparmor的构建步骤#xff0c;但那完全使用的是官网给出的默认参数。如果需要将目标文件生成到指定目录而非默认的/usr#xff0c;则需要进行一些修改#xff0c;本文就来详述如何进…在AppArmor零知识学习六、源码构建3中详细介绍了libapparmor的构建步骤但那完全使用的是官网给出的默认参数。如果需要将目标文件生成到指定目录而非默认的/usr则需要进行一些修改本文就来详述如何进行修改。
必须说明以下两点
1Binary Utilities的构建必须在前述步骤配置环境变量和libapparmor构建的基础上才能进行。关于这两个步骤请参阅AppArmor零知识学习四、源码构建1和AppArmor零知识学习五、源码构建2
2前文libapparmor非默认目录构建和安装中的步骤是为了制作包时使用由于其没有将目标文件放到/usr/local下因此实际上并没有起作用。真正起作用的是之前按照默认参数构建的libapparmor相关组件。
接下来开始Binary Utilities自定义安装目录的构建和安装。
1进入binutils目录
通过cd命令进入apparmor源码根目录下的binutils目录。实际命令及结果如下
penghaoDing-Perlis-MP260S48:~/AppArmor/apparmor_2/apparmor$ cd binutils/
penghaoDing-Perlis-MP260S48:~/AppArmor/apparmor_2/apparmor/binutils$ pwd
/home/penghao/AppArmor/apparmor_2/apparmor/binutilspenghaoDing-Perlis-MP260S48:~/AppArmor/apparmor_2/apparmor/binutils$ ls
aa-enabled aa_enabled.c aa-exec aa_exec.c aa-features-abi aa_features_abi.c aa-status aa_status.c cJSON.c cJSON.o po
aa-enabled.1 aa-enabled.pod aa-exec.1 aa-exec.pod aa-features-abi.1 aa-features-abi.pod aa-status.8 aa-status.pod cJSON.h Makefile2编译
运行make命令进行编译实际命令及结果如下
$ make
cc -L../libraries/libapparmor//src/.libs -g -O2 -pipe -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -DPACKAGE\aa-binutils\ -DLOCALEDIR\/usr/share/locale\ -I../libraries/libapparmor//include -o aa-enabled aa_enabled.c -Wl,-Bstatic -lapparmor -Wl,-Bdynamic -lpthread
cc -L../libraries/libapparmor//src/.libs -g -O2 -pipe -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -DPACKAGE\aa-binutils\ -DLOCALEDIR\/usr/share/locale\ -I../libraries/libapparmor//include -o aa-exec aa_exec.c -Wl,-Bstatic -lapparmor -Wl,-Bdynamic -lpthread
cc -L../libraries/libapparmor//src/.libs -g -O2 -pipe -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -DPACKAGE\aa-binutils\ -DLOCALEDIR\/usr/share/locale\ -I../libraries/libapparmor//include -o aa-features-abi aa_features_abi.c -Wl,-Bstatic -lapparmor -Wl,-Bdynamic -lpthread
cc -g -O2 -pipe -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -DPACKAGE\aa-binutils\ -DLOCALEDIR\/usr/share/locale\ -I../libraries/libapparmor//include -c -o cJSON.o cJSON.c
cc -L../libraries/libapparmor//src/.libs -g -O2 -pipe -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -DPACKAGE\aa-binutils\ -DLOCALEDIR\/usr/share/locale\ -I../libraries/libapparmor//include -o aa-status aa_status.c -Wl,-Bstatic -lapparmor -Wl,-Bdynamic -lpthread cJSON.o
/usr/bin/pod2man aa-enabled.pod --releaseAppArmor 3.1.0 --centerAppArmor --stderr --section1 aa-enabled.1
/usr/bin/pod2man aa-exec.pod --releaseAppArmor 3.1.0 --centerAppArmor --stderr --section1 aa-exec.1
/usr/bin/pod2man aa-features-abi.pod --releaseAppArmor 3.1.0 --centerAppArmor --stderr --section1 aa-features-abi.1
/usr/bin/pod2man aa-status.pod --releaseAppArmor 3.1.0 --centerAppArmor --stderr --section8 aa-status.8
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/binutils/po”
msgfmt -c -o af.mo af.po
af.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 fi.mo fi.po
fi.po:7: 警告头部缺少文件头“Language”
msgfmt -c -o id.mo id.po
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
sv.po:7: 警告头部缺少文件头“Language”
msgfmt -c -o sw.mo sw.po
sw.po:7: 警告头部缺少文件头“Language”
msgfmt -c -o tr.mo tr.po
tr.po:7: 警告头部缺少文件头“Language”
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/binutils/po”3检查
运行make check命令进行检查。实际命令及结果如下
$ make check
LANGC podchecker -warning -warning *.pod
aa-enabled.pod pod syntax OK.
aa-exec.pod pod syntax OK.
aa-features-abi.pod pod syntax OK.
aa-status.pod pod syntax OK.
no tests atm4安装
运行make install命令进行安装实际命令及结果如下注意DESTDIR的参数
$ make install DESTDIR/home/penghao/AppArmor/apparmor_2/output2
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/binutils/po”
make[1]: 对“all”无需做任何事。make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/binutils/po”
make -C po install NAMEaa-binutils DESTDIR/home/penghao/AppArmor/apparmor_2/output2
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/binutils/po”
mkdir -p /home/penghao/AppArmor/apparmor_2/output2//usr/share/locale
for lang in af de en_GB es fa fi id pt ro ru sv sw tr ; 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/aa-binutils.mo ; \
done
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/binutils/po”
make install_manpages DESTDIR/home/penghao/AppArmor/apparmor_2/output2
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/binutils”
install -d /home/penghao/AppArmor/apparmor_2/output2//usr/share/man/man1 ; install -m 644 aa-enabled.1 aa-exec.1 aa-features-abi.1 /home/penghao/AppArmor/apparmor_2/output2//usr/share/man/man1; install -d /home/penghao/AppArmor/apparmor_2/output2//usr/share/man/man8 ; install -m 644 aa-status.8 /home/penghao/AppArmor/apparmor_2/output2//usr/share/man/man8;
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/binutils”
ln -sf aa-status.8 /home/penghao/AppArmor/apparmor_2/output2//usr/share/man/man8/apparmor_status.8
install -m 755 -d /home/penghao/AppArmor/apparmor_2/output2/usr/bin
install -m 755 aa-enabled aa-exec aa-features-abi /home/penghao/AppArmor/apparmor_2/output2/usr/bin
install -m 755 -d /home/penghao/AppArmor/apparmor_2/output2/usr/sbin
ln -sf aa-status /home/penghao/AppArmor/apparmor_2/output2/usr/sbin/apparmor_status
install -m 755 aa-status /home/penghao/AppArmor/apparmor_2/output2/usr/sbin5查看生成内容
查看一下通过make DESTDIR/home/penghao/AppArmor/apparmor_2/output2配置后实际的生成文件及路径
usr
penghaoDing-Perlis-MP260S48:~/AppArmor/apparmor_2/apparmor/binutils$ ls ../../output2/usr/
bin sbin share
penghaoDing-Perlis-MP260S48:~/AppArmor/apparmor_2/apparmor/binutils$ tree ../../output2/
../../output2/
└── usr├── bin│ ├── aa-enabled│ ├── aa-exec│ └── aa-features-abi├── sbin│ ├── aa-status│ └── apparmor_status - aa-status└── share├── locale│ ├── af│ │ └── LC_MESSAGES│ │ └── aa-binutils.mo│ ├── de│ │ └── LC_MESSAGES│ │ └── aa-binutils.mo│ ├── en_GB│ │ └── LC_MESSAGES│ │ └── aa-binutils.mo│ ├── es│ │ └── LC_MESSAGES│ │ └── aa-binutils.mo│ ├── fa│ │ └── LC_MESSAGES│ │ └── aa-binutils.mo│ ├── fi│ │ └── LC_MESSAGES│ │ └── aa-binutils.mo│ ├── id│ │ └── LC_MESSAGES│ │ └── aa-binutils.mo│ ├── pt│ │ └── LC_MESSAGES│ │ └── aa-binutils.mo│ ├── ro│ │ └── LC_MESSAGES│ │ └── aa-binutils.mo│ ├── ru│ │ └── LC_MESSAGES│ │ └── aa-binutils.mo│ ├── sv│ │ └── LC_MESSAGES│ │ └── aa-binutils.mo│ ├── sw│ │ └── LC_MESSAGES│ │ └── aa-binutils.mo│ └── tr│ └── LC_MESSAGES│ └── aa-binutils.mo└── man├── man1│ ├── aa-enabled.1│ ├── aa-exec.1│ └── aa-features-abi.1└── man8├── aa-status.8└── apparmor_status.8 - aa-status.834 directories, 23 files这里将生成目标放到了output2文件夹下是为了看清楚Binary Utilities都生成了哪些内容。最终还是要安装到之前的output目录下。
更换DESTDIR参数后再次进行安装实际命令及结果如下
$ make install DESTDIR/home/penghao/AppArmor/apparmor_2/output
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/binutils/po”
make[1]: 对“all”无需做任何事。make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/binutils/po”
make -C po install NAMEaa-binutils DESTDIR/home/penghao/AppArmor/apparmor_2/output
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/binutils/po”
mkdir -p /home/penghao/AppArmor/apparmor_2/output//usr/share/locale
for lang in af de en_GB es fa fi id pt ro ru sv sw tr ; 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/aa-binutils.mo ; \
done
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/binutils/po”
make install_manpages DESTDIR/home/penghao/AppArmor/apparmor_2/output
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/binutils”
install -d /home/penghao/AppArmor/apparmor_2/output//usr/share/man/man1 ; install -m 644 aa-enabled.1 aa-exec.1 aa-features-abi.1 /home/penghao/AppArmor/apparmor_2/output//usr/share/man/man1; install -d /home/penghao/AppArmor/apparmor_2/output//usr/share/man/man8 ; install -m 644 aa-status.8 /home/penghao/AppArmor/apparmor_2/output//usr/share/man/man8;
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/binutils”
ln -sf aa-status.8 /home/penghao/AppArmor/apparmor_2/output//usr/share/man/man8/apparmor_status.8
install -m 755 -d /home/penghao/AppArmor/apparmor_2/output/usr/bin
install -m 755 aa-enabled aa-exec aa-features-abi /home/penghao/AppArmor/apparmor_2/output/usr/bin
install -m 755 -d /home/penghao/AppArmor/apparmor_2/output/usr/sbin
ln -sf aa-status /home/penghao/AppArmor/apparmor_2/output/usr/sbin/apparmor_status
install -m 755 aa-status /home/penghao/AppArmor/apparmor_2/output/usr/sbin对比一下output在安装Binary Utilities前后的变化
安装前
$ tree ../../output
../../output
└── usr└── 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.322 directories, 31 files安装后
$ tree ../../output
../../output
└── 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│ ├── de│ │ └── LC_MESSAGES│ │ └── aa-binutils.mo│ ├── en_GB│ │ └── LC_MESSAGES│ │ └── aa-binutils.mo│ ├── es│ │ └── LC_MESSAGES│ │ └── aa-binutils.mo│ ├── fa│ │ └── LC_MESSAGES│ │ └── aa-binutils.mo│ ├── fi│ │ └── LC_MESSAGES│ │ └── aa-binutils.mo│ ├── id│ │ └── LC_MESSAGES│ │ └── aa-binutils.mo│ ├── pt│ │ └── LC_MESSAGES│ │ └── aa-binutils.mo│ ├── ro│ │ └── LC_MESSAGES│ │ └── aa-binutils.mo│ ├── ru│ │ └── LC_MESSAGES│ │ └── aa-binutils.mo│ ├── sv│ │ └── LC_MESSAGES│ │ └── aa-binutils.mo│ ├── sw│ │ └── LC_MESSAGES│ │ └── aa-binutils.mo│ └── tr│ └── LC_MESSAGES│ └── aa-binutils.mo└── man├── man1│ ├── aa-enabled.1│ ├── aa-exec.1│ └── aa-features-abi.1└── man8├── aa-status.8└── apparmor_status.8 - aa-status.855 directories, 54 files