我不明白为什么在 21.10 上构建的二进制文件与 21.04 系统不兼容。
该二进制文件也链接到libc.so.621.04 操作系统版本上。
相同的二进制文件,在 21.10 系统上:
$ ldd turboledzd
linux-vdso.so.1 (0x00007ffdc2595000)
libhidapi-hidraw.so.0 => /lib/x86_64-linux-gnu/libhidapi-hidraw.so.0 (0x00007fdd64057000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fdd63e2f000)
libudev.so.1 => /lib/x86_64-linux-gnu/libudev.so.1 (0x00007fdd63e06000)
/lib64/ld-linux-x86-64.so.2 (0x00007fdd64085000)
Run Code Online (Sandbox Code Playgroud)
在21.04系统上:
$ ldd turboledzd
./turboledzd: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./turboledzd)
linux-vdso.so.1 (0x00007fff9c570000)
libhidapi-hidraw.so.0 => /lib/x86_64-linux-gnu/libhidapi-hidraw.so.0 (0x00007f37ec402000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f37ec216000)
libudev.so.1 => /lib/x86_64-linux-gnu/libudev.so.1 (0x00007f37ec1ed000)
/lib64/ld-linux-x86-64.so.2 (0x00007f37ec423000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f37ec1cb000)
Run Code Online (Sandbox Code Playgroud)
我的问题:
如果21.04 与21.10libc.so.6不兼容,那么为什么不调用 21.10 上的 libc ?libc.so.6libc.so.7
或者,更好的是,为什么它不与称为libglibc.so.2.34- 如果这是依赖项的东西联系起来?
因为 linux 的 Steam 客户端只有 32 位二进制文件,所以我想在我的 64 位 Ubuntu 操作系统上安装libnvidia-gl:i386。
但是,如果我这样做,包管理器想要卸载 cuda-11。但是,我需要 cuda-11。
如何在不干扰 cuda 的情况下让 64 位和 32 位版本的 libnvidia-gl 共存?
$ sudo apt install libnvidia-gl-455:i386
...
The following additional packages will be installed:
libnvidia-common-455 libnvidia-compute-455 libnvidia-decode-455 libnvidia-encode-455 libnvidia-fbc1-455
The following packages will be REMOVED:
cuda-11-1 cuda-demo-suite-11-1 cuda-drivers cuda-drivers-455 cuda-runtime-11-1 libnvidia-gl-455 libnvidia-ifr1-455 nvidia-driver-455
The following NEW packages will be installed:
libnvidia-gl-455:i386
The following packages will be upgraded:
libnvidia-common-455 libnvidia-compute-455 libnvidia-decode-455 libnvidia-encode-455 libnvidia-fbc1-455
5 upgraded, 1 newly …Run Code Online (Sandbox Code Playgroud) 当我尝试将 CUDA 与 Blender 2.82.a+dfsg-1 一起使用时,出现以下错误:
Compiling CUDA kernel ...
"nvcc" -arch=sm_86 --cubin "/usr/share/blender/scripts/addons/cycles/source/kernel/kernels/cuda/kernel.cu" -o "/home/bram/.cache/cycles/kernels/cycles_kernel_sm86_673C3180FADE8EDF0E80E61994C4DC92.cubin" -m64 --ptxas-options="-v" --use_fast_math -DNVCC -I"/usr/share/blender/scripts/addons/cycles/source"
nvcc fatal : Value 'sm_86' is not defined for option 'gpu-architecture'
CUDA kernel compilation failed, see console for details.
Run Code Online (Sandbox Code Playgroud)
根据 nvidia-smi 的报告,我的系统上安装了 CUDA 11.1
$ nvidia-smi
Sun Dec 20 19:34:48 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 455.38 Driver Version: 455.38 CUDA Version: 11.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| …Run Code Online (Sandbox Code Playgroud) 我有一款适用于 iOS 和 Android 的游戏,现在我想将其移植到 Ubuntu。我计划将它与 Ubuntu 软件中心一起分发。最好通过应用内购买免费。
我的代码库目前基于 OpenGL ES2 并用 C++ 编写。我可以重写为 OpenGL,但必须拥有可编程着色器。固定管道 OpenGL 是不够的。
是否有一个功能可以让您在 Ubuntu 软件中心指定 OpenGL 要求?我想确保只有具有兼容硬件的 Ubuntu 用户才能下载我的游戏。
我可以使用任何 API 来获取合适的 OpenGL 上下文,还是我只希望为此使用 glx?还是必须使用 GTK?
我尽量保持 dmesg 干净,这样我就可以在噪音中看到信号。然而,我对应用程序盔甲在日志中发送的垃圾邮件感到恼火:
[74339.538450] audit: type=1400 audit(1620404490.953:75): apparmor="DENIED" operation="open" profile="snap.chromium.chromium" name="/run/udev/data/c509:6" pid=33938 comm="ThreadPoolForeg" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
Run Code Online (Sandbox Code Playgroud)
如何阻止创建这些消息?
Ubuntu 21.10 中似乎存在问题libpulse-dev,因为如果我想在完全最新的系统上安装 libsdl2-dev,我会得到:
以下软件包具有未满足的依赖关系:
libpulse-dev :依赖:libpulse0 (= 1:15.0+dfsg1-1ubuntu2) 但要安装 1:15.0+dfsg1-1ubuntu2.1
# dpkg --get-selections | grep hold
root@gamer2:/# apt update
Hit:1 https://repo.steampowered.com/steam stable InRelease
Hit:2 http://ca.archive.ubuntu.com/ubuntu impish InRelease
Hit:3 http://ca.archive.ubuntu.com/ubuntu impish-updates InRelease
Hit:4 http://security.ubuntu.com/ubuntu impish-security InRelease
Hit:5 http://ca.archive.ubuntu.com/ubuntu impish-backports InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
root@gamer2:/# apt dist-upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
0 upgraded, …Run Code Online (Sandbox Code Playgroud) 我想创建一个适合多个操作系统版本的 debian 源代码包。
\n最初,我的目标是动能,并采用以下变更日志格式:
\ngfxi (1.3-1) kinetic; urgency=medium\n\n * Add install and uninstall targets to Makefile.\n\n...\nRun Code Online (Sandbox Code Playgroud)\n从手册中:
\n distributions lists one or more space-separated distributions where this version should be\n installed when it is uploaded; it is copied to the Distribution field in the .changes\n file. distributions must be terminated by a semicolon (U+003B \xe2\x80\x98;\xe2\x80\x99).\nRun Code Online (Sandbox Code Playgroud)\n所以我将更改日志条目更改为:
\ngfxi (1.3-2) jammy kinetic lunar; urgency=medium\n\n * Add jammy and lunar releases.\n...\nRun Code Online (Sandbox Code Playgroud)\n该debuild -S命令成功,但是当我使用 …
我正在按照本指南升级我的 Ubuntu 操作系统。
我的系统是最新的,版本为 22.04,因此我希望能够升级到 22.10,但我没有:
此外,我的软件更新设置设置为“有新版本时通知我”。
然而,事实并非如此。
如何强制将我的22.04升级到22.10版本?