AppArmor零知识学习四、源码构建(1)
本文内容参考:
AppArmor / apparmor · GitLab
接前一篇文章:AppArmor零知识学习三、源码介绍与下载
上一篇文章中介绍了AppArmor项目,并且下载了apparmor源码。apparmor是AppArmor用户空间的开发项目。本文开始详细介绍apparmor的源码构建。
四、源码构建
1. 环境变量设置
要在你的系统上构建和安装AppArmor用户空间,按以下顺序构建和安装(见后续步骤)。一些系统可能需要输出(export)各种与python相关的环境变量来完成构建。
For example, before building anything on these systems, use something along the lines of:
例如,在这些系统上构建任何事物前,使用以下内容:
$ export PYTHONPATH=$(realpath libraries/libapparmor/swig/python) $ export PYTHON=/usr/bin/python3 $ export PYTHON_VERSION=3 $ export PYTHON_VERSIONS=python3
(1)export PYTHONPATH=$(realpath libraries/libapparmor/swig/python)
实际命令及结果如下:
$ cd AppArmor/
$$ cd apparmor/
$$ pwd
~/AppArmor/apparmor$ echo $PYTHONPATH$$ export PYTHONPATH=$(realpath libraries/libapparmor/swig/python)
$ echo $PYTHONPATH
/home/penghao/AppArmor/apparmor/libraries/libapparmor/swig/python
这里再将细节详细说明一下:
1)下载apparmor的源码之后,源码根目录有个libraries文件夹,其下依次有libapparmor->swig->python。各级目录下内容分别如下:
$ ls libraries/
libapparmor$ ls libraries/
libapparmorls libraries/libapparmor/
AUTHORS autogen.sh ChangeLog configure.ac COPYING.LGPL doc include INSTALL m4 Makefile.am NEWS README src swig testsuite$ ls libraries/libapparmor/swig/
java Makefile.am perl python ruby SWIG$ ls libraries/libapparmor/swig/python/
__init__.py Makefile.am setup.py.in test
2)realpath命令用于获取指定目录或文件的绝对路径。编写Shell 脚本时,通常会使用相对路径来指明文件,但有时候我们需要用到绝对路径,此时可以使用realpath来获取。此处realpath libraries/libapparmor/swig/python返回的结果如下:
$ realpath libraries/libapparmor/swig/python
/home/penghao/AppArmor/apparmor/libraries/libapparmor/swig/python
(2)export PYTHON=/usr/bin/python3
实际命令及结果如下:
$ echo $PYTHON$
$ export PYTHON=/usr/bin/python3
$ echo $PYTHON
/usr/bin/python3
(3)export PYTHON_VERSION=3
实际命令及结果如下:
$ echo $PYTHON_VERSION$
$ export PYTHON_VERSION=3
$ echo $PYTHON_VERSION
3
(4)export PYTHON_VERSIONS=python3
实际命令及结果如下:
$ echo $PYTHON_VERSIONS$
$ export PYTHON_VERSIONS=python3
$ echo $PYTHON_VERSIONS
python3
至此,构建的第一步也是最为基础的一步——环境变量设置就完成了。