> 文章列表 > AppArmor零知识学习四、源码构建(1)

AppArmor零知识学习四、源码构建(1)

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

至此,构建的第一步也是最为基础的一步——环境变量设置就完成了。