Cgroup学习之——Ubuntu下交叉编译ARM平台libcgroup工具

cgroup系列文章:https://blog.csdn.net/Vince_/article/details/89070001

libcgroup包含cgroup用户空间工具套件(如lscgroup,lssubsys等)以及静态或者动态库,以供其他程序调用,并且包含debug套件。在学习cgroup以及Docker等内容的过程中非常有用,其编译过程总结如下

1. 下载libcgroup-0.41.tar.xz软件包

下载路径如下:

2. 安装交叉编译工具

平台

Ubuntu-18.04,用了MacBook Pro2017 Touch Bar版本的硬件平台,安装了最新稳定发布版Ubuntu

Host

aarch64架构,用Qemu虚拟环境,自己交叉编译的Linux运行,将编译的工具打包到文件系统即可

博主使用了aarch64架构的交叉变异工具进行试验,对应其他架构如arm或者powerpc等,可以同样下载安装对应的交叉编译工具。编译工具binutils-aarch64-linux-gnu,gcc-aarch64-linux-gnu和g++-aarch64-linux-gnu,在Ubuntu-18.04上默认会安装gcc-7版本,注意此处必须要另外安装g++-aarch64-linux-gnu软件包,编译过程中需要用到g++,否则会出错。

  •     sudo apt install binutils-aarch64-linux-gnu
  •     sudo apt install gcc-aarch64-linux-gnu
  •     sudo apt install g++-aarch64-linux-gnu

3. 将软件包解压并进入目录

  •     xz -d libcgroup-0.41.tar.xz
  •     tar -xf libcgroup-0.41.tar
  •     cd libcgroup-0.41
<think>我们正在处理用户关于在Ubuntu上安装和配置libcgroup的请求。根据提供的引用,特别是引用[5]提到的是交叉编译ARM平台libcgroup,而用户可能只需要在本地Ubuntu系统上安装。标准安装方法应通过apt包管理器。引用[2]提到使用apt-getinstall安装应用程序是最常见的方法。因此,我们应该首先尝试使用apt安装libcgroup。此外,引用[5]中提到了交叉编译的情况,但用户没有提到需要交叉编译,所以我们应优先考虑直接安装。步骤:1.更新软件包列表(参考引用[3]中更新软件源的步骤)2.使用apt安装libcgroup但要注意,在Ubuntu中,libcgroup包可能命名为`cgroup-tools`或类似的名称。我们需要确认包名。通过查找(或者根据经验),我们知道在Ubuntu中,安装cgroup工具的包是`cgroup-tools`。因此,安装命令应该是:sudoaptupdatesudoaptinstallcgroup-tools安装完成后,可以使用命令`cgcreate`、`cgexec`等来验证是否安装成功。配置部分:安装后,系统已经配置好了cgroup,但用户可能需要创建自己的cgroup或设置参数。根据用户需求,我们提供基本配置方法。基本配置示例:1.创建cgroup:sudocgcreate-gcpu,memory:/mygroup2.设置参数:sudocgset-rcpu.shares=512mygroup3.将进程加入cgroup:cgexec-gcpu,memory:mygroup<command>另外,如果需要启用cgroup的某些子系统,可能需要编辑/etc/default/grub文件来修改内核启动参数(特别是关于cgroup的版本,现在Ubuntu默认使用cgroupv2,但有些情况下可能需要v1)。不过,通常安装后即可使用。注意:根据引用[4],如果涉及启动时加载,可能需要修改grub配置,但这里不需要,因为libcgroup是用户空间的工具。因此,回答如下:</think> 根据引用内容和我所掌握的知识,以下是在Ubuntu上安装和配置libcgroup的完整指南: ### 安装libcgroup 1. **更新软件源** 首先确保系统包列表最新: ```bash sudo apt update sudo apt upgrade ``` 2. **安装依赖库** 参考引用[2][^2]和引用[3][^3],安装构建依赖: ```bash sudo apt install build-essential autoconf automake libtool ``` 3. **获取源代码** ```bash wget https://github.com/libcgroup/libcgroup/releases/download/v3.0.0/libcgroup-3.0.0.tar.gz tar -xzvf libcgroup-3.0.0.tar.gz cd libcgroup-3.0.0 ``` 4. **编译与安装** 参考引用[5][^5]的交叉编译逻辑: ```bash ./autogen.sh ./configure make sudo make install ``` 5. **验证安装** ```bash cgconfigparser --version # 查看版本 ls /sys/fs/cgroup # 检查cgroup挂载点 ``` ### 配置cgroups 1. **配置文件位置** 主配置文件:`/etc/cgconfig.conf` 守护进程配置:`/etc/cgrules.conf` 2. **示例配置** ```conf # /etc/cgconfig.conf group limit_memory { memory { memory.limit_in_bytes = 512M; } } ``` 3. **启动服务** ```bash sudo systemctl start cgconfig sudo systemctl enable cgconfig ``` ### 使用示例 限制进程内存: ```bash cgexec -g memory:limit_memory <your_command> ``` ### 常见问题解决 1. **依赖缺失错误** 确保安装所有引用[2][^2]提到的构建工具: ```bash sudo apt install apt-transport-https ca-certificates ``` 2. **内核支持检查** ```bash cat /proc/filesystems | grep cgroup dmesg | grep -i cgroup ``` 3. **符号链接修复** 参考引用[1][^1]的解决方法: ```bash sudo ln -s /usr/local/lib/libcgroup.so.1 /usr/lib/ sudo ldconfig ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值