具体报错信息
Running postconf script '/home/omige/桌面/OS-DEV/qemu/build/pyvenv/bin/python3 /home/omige/桌面/OS-DEV/qemu/scripts/symlink-install-tree.py'
'/home/omige/桌面/OS-DEV/qemu/build/pyvenv/bin/meson' introspect
Traceback (most recent call last):
File "/home/omige/桌面/OS-DEV/qemu/scripts/symlink-install-tree.py", line 18, in <module>
out = subprocess.run([*introspect.split(' '), '--installed'],
File "/usr/lib/python3.8/subprocess.py", line 493, in run
with Popen(*popenargs, **kwargs) as process:
File "/usr/lib/python3.8/subprocess.py", line 858, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/lib/python3.8/subprocess.py", line 1704, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: "'/home/omige/桌面/OS-DEV/qemu/build/pyvenv/bin/meson'"
将scripts/symlink-install-tree.py修改为如下代码即可解决问题
#!/usr/bin/env python3
from pathlib import PurePath
import errno
import json
import os
import shlex
import subprocess
import sys
def destdir_join(d1: str, d2: str) -> str:
if not d1:
return d2
# c:\destdir + c:\prefix must produce c:\destdir\prefix
return str(PurePath(d1, *PurePath(d2).parts[1:]))
introspect = os.environ.get('MESONINTROSPECT')
# out = subprocess.run([*introspect.split(' '), '--installed'],
out = subprocess.run([*shlex.split(introspect), '--installed'],
stdout=subprocess.PIPE, check=True).stdout
for source, dest in json.loads(out).items():
bundle_dest = destdir_join('qemu-bundle', dest)
path = os.path.dirname(bundle_dest)
try:
os.makedirs(path, exist_ok=True)
except BaseException as e:
print(f'error making directory {path}', file=sys.stderr)
raise e
try:
os.symlink(source, bundle_dest)
except BaseException as e:
if not isinstance(e, OSError) or e.errno != errno.EEXIST:
if os.name == 'nt':
print('Please enable Developer Mode to support soft link '
'without Administrator permission')
print(f'error making symbolic link {dest}', file=sys.stderr)
raise e