简介
编译mesa需要用到meson,meson要用最新版本的才能支持mesa中的meson.build新语法。所以我们要手动安装meson,但是最新的meson的版本又需要依赖3.8以上的python。
如果你的ubuntu自带的python没有3.8以上,卸载python再安装python3.8又可能会破坏原先的系统环境。
一般我们会使用virtualenv来搭建特定版本的python的运行环境,去编译运行,但是我这里出现的3.8版本的virtualenv 运行的python一直是ubuntu自带3.6。
为了避免其他同时搭建mesa编译环境出现和我一样的问题,还是弄了个docker环境,内部仅运行一个python版本。
提示
以下全凭记忆编写,个中细节,参考者自行补全
一、创建docker容器
1. docker安装
sudo apt install docker.io
2. 修改权限,不带sudo
docker用户组加上当前用户
sudo usermod -a -G docker `whoami`
sudo service docker restart
3. 获取镜像
选择一个最干净版本的ubuntu20.04,里面既没有python2,也没有python3
docker pull ubuntu:20.04
4. 创建并运行容器
# 创建容器 suchp-mesa是指容器的名称
docker create -it --name suchp-mesa ubuntu:20.04
# 运行容器 suchp-mesa
docker start suchp-mesa
# 进入容器中
docker exec -it suchp-mesa /bin/bash
二、安装python开发环境
此时的ubuntu中什么都没有, 我们需要先通过apt安装一个python版本,但是ubuntu默认源下载太慢,老三步走起来
1. 更新源
echo "网易镜像源,去百度找找" > /etc/apt/sources.list
apt update
apt list --upgradable
2. 安装工具
# 安装python,ubuntu22.04默认是3.8版本,我们先安装,等会就卸载了
apt install python3
# 安装git
apt install git
# 搞个vim吧
apt install vim-tiny
3. 下载pip源码
不直接下载python3-pip,因为依赖太多的,直接运行源码就可以了,pip运行依赖distutils这个库,也需要下载。
cd home
git clone https://github.com/pypa/pip.git
git clone https://github.com/pypa/distutils.git
直接进入pip目录运行 python src/pip会报错找不到distutils,设置环境变量PYTHONPATH就可以找到了。
export PYTHONPATH=/home/distutils
4. 下载安装virtualenv
下载
cd /home/pip
# virtualenv创建python虚拟运行环境
python3 src/pip install virtualenv
有了这个就可以创建独属于某特定版本的python运行环境了。我们在/home目录下创建一个python3.8_venv的目录用于保存python3.8的运行环境
cd /home
virtualenv python3.8_venv

本文介绍了如何在Ubuntu 20.04 Docker容器中搭建特定版本的Python环境,以编译meson和mesa。首先,创建并运行Docker容器,然后在容器内安装Python3.8,使用virtualenv创建隔离的运行环境。接着,下载并安装meson和mesa源码,修改meson_options.txt禁用某些驱动,最后通过meson和ninja进行编译。该过程旨在避免对系统原有环境的影响。
最低0.47元/天 解锁文章
1308

被折叠的 条评论
为什么被折叠?



