我找不到我的问题的好答案,作为开发人员和系统管理员,我是否需要安装 ffmpeg、faac、alac、wavpack、vorbis、lame、imagemagick 和其他多媒体编解码器来运行和播放音乐,或者在网络开发中为音乐制作广播流,或者处理像 imagemagick 这样的图像。
那么什么时候需要安装多媒体编解码器,什么时候不需要它们?
我找不到我的问题的好答案,作为开发人员和系统管理员,我是否需要安装 ffmpeg、faac、alac、wavpack、vorbis、lame、imagemagick 和其他多媒体编解码器来运行和播放音乐,或者在网络开发中为音乐制作广播流,或者处理像 imagemagick 这样的图像。
那么什么时候需要安装多媒体编解码器,什么时候不需要它们?
这就是我要实现的目标。
我想将一台机器上的 Mint 21 迁移到 Ubuntu 24.04 Cinnamon。我这样做的原因是为了在我的家庭网络中标准化操作系统。这台机器上的最终用户拥有他们不想重新设置的数据和应用程序特定配置。
由于 Mint 是 Ubuntu 的一个分支,因此我没有发现任何兼容性问题。因此我想知道我是否可以简单地:
dd
命令并将整个目录发送/
到外部存储。dd
命令,并成功将数据从外部存储导入到新安装。/etc
这实际上是可能的吗,还是这里有一个我需要考虑的细微差别? 复制和/home
目录并将其导入到新安装中是否是一种更好的做法?
我希望在避免数据损坏和丢失的同时,尽可能减少对这台机器用户的影响。我已经敏锐地意识到,需要执行备份以备不时之需。
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.6 LTS
Release: 20.04
Codename: focal
$ uname -r
5.15.0-125-generic
我正在尝试使用 Emacs 和 proof general 使用 snap 安装的 coq 定理证明助手。不幸的是,我遇到了错误。在使用 strace 进行调查后,我发现错误是由futex
程序尝试处理目录中的文件时系统调用“权限被拒绝”引起的/tmp
:
$ strace coqdep /tmp/ProofGeneral-coqofYWUP.v
trying to imitate what proof general does and got the following:
--- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=123729, si_uid=1000} ---
rt_sigreturn({mask=[]}) = 22
getpid() = 123729
tgkill(123729, 123751, SIGURG) = 0
getpid() = 123729
tgkill(123729, 123750, SIGURG) = 0
futex(0x55610de9d158, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x55610de9d250, FUTEX_WAIT_PRIVATE, 0, {tv_sec=0, tv_nsec=100000}) = 0
getpid() = 123729
tgkill(123729, 123751, SIGURG) = 0
getpid() = 123729
tgkill(123729, 123750, SIGURG) = 0
futex(0x55610de9d158, FUTEX_WAKE_PRIVATE, 1) = 1
getpid() = 123729
tgkill(123729, 123751, SIGURG) = 0
futex(0x55610de9d158, FUTEX_WAKE_PRIVATE, 1) = 1
epoll_pwait(4, [], 128, 0, NULL, 0) = 0
futex(0xc000100948, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x55610de9d250, FUTEX_WAIT_PRIVATE, 0, {tv_sec=0, tv_nsec=100000}) = 0
close(3) = 0
futex(0x55610de9bc28, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
epoll_pwait(4, [{EPOLLOUT, {u32=1967093352, u64=140516117149288}}], 128, 0, NULL, 0) = 1
epoll_pwait(4, [{EPOLLOUT, {u32=1967093352, u64=140516117149288}}], 128, -1, NULL, 0) = 1
epoll_pwait(4, [], 128, 0, NULL, 191668) = 0
futex(0x55610de9bc28, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
epoll_pwait(4, [{EPOLLIN|EPOLLOUT, {u32=1967093592, u64=140516117149528}}], 128, 0, NULL, 0) = 1
epoll_pwait(4, [{EPOLLOUT, {u32=1967093352, u64=140516117149288}}], 128, -1, NULL, 0) = 1
epoll_pwait(4, [], 128, 0, NULL, 191668) = 0
epoll_pwait(4, [{EPOLLIN|EPOLLOUT, {u32=1967093352, u64=140516117149288}}], 128, -1, NULL, 0) = 1
recvmsg(3, {msg_name={sa_family=AF_UNIX, sun_path="/run/user/1000/bus"}, msg_namelen=112->21, msg_iov=[{iov_base="l\2\1\1'\0\0\0l\4\0\0-\0\0\0", iov_len=16}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_CMSG_CLOEXEC) = 16
recvmsg(3, {msg_name={sa_family=AF_UNIX, sun_path="/run/user/1000/bus"}, msg_namelen=112->21, msg_iov=[{iov_base="\5\1u\0\2\0\0\0\6\1s\0\6\0\0\0:1.155\0\0\10\1g\0\1o\0\0"..., iov_len=48}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_CMSG_CLOEXEC) = 48
recvmsg(3, {msg_name={sa_family=AF_UNIX, sun_path="/run/user/1000/bus"}, msg_namelen=112->21, msg_iov=[{iov_base="\"\0\0\0/org/freedesktop/systemd1/jo"..., iov_len=39}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_CMSG_CLOEXEC) = 39
futex(0xc000100948, FUTEX_WAKE_PRIVATE, 1) = 1
recvmsg(3, {msg_namelen=112}, MSG_CMSG_CLOEXEC) = -1 EAGAIN (Resource temporarily unavailable)
openat(AT_FDCWD, "/proc/123729/cgroup", O_RDONLY|O_CLOEXEC) = 8
epoll_ctl(4, EPOLL_CTL_ADD, 8, {EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET, {u32=1967093592, u64=140516117149528}}) = -1 EPERM (Operation not permitted)
read(8, "13:cpuset:/\n12:rdma:/\n11:memory:"..., 4096) = 547
close(8) = 0
write(6, "\0", 1) = 1
futex(0x55610de9bc28, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
epoll_pwait(4, [], 128, 0, NULL, 0) = 0
epoll_pwait(4, <unfinished ...>) = ?
*** Error: /tmp/ProofGeneral-coqofYWUP.v: No such file or directory
+++ exited with 1 +++
不幸的是,我没有足够的资格去理解是什么原因导致系统调用权限被拒绝。我甚至把这个文件的权限设为 777,但还是没用。
将文件复制到我的主目录后,它开始工作:
$ cp /tmp/ProofGeneral-coqofYWUP.v ~/aaa.v
$ coqdep ~/aaa.v
home/usr345/aaa.vo /home/usr345/aaa.glob /home/usr345/aaa.v.beautified /home/usr345/aaa.required_vo: /home/usr345/aaa.v
/home/usr345/aaa.vio: /home/usr345/aaa.v
我有一台 22.04 服务器,上面运行着 PM2,用于提供一些节点应用程序。这些应用程序依赖于一个 shell 变量,该变量表示环境是“dev”还是“prd”
每次我重启系统时我都必须运行
export ENV_TYPE = 'dev'
然后重新启动所有 PM2 进程
pm2 restart 0 --update-env
pm2 restart 1 --update-env
等等
我如何构建一个脚本,在重启服务器时自动执行这些操作(不是登录后,而是在启动过程结束时)?稍后我将研究如何运行该脚本,但现在的目标是创建该脚本
我用闲置的 SSD 升级了我的旧 iMac。我毫不犹豫地拿出了一块备用 SSD,可能是我旧笔记本电脑上的。我启动了一个 live iso,它启动了,但当我开始安装时,我收到了一条错误消息。
在 gpartition 上我看到磁盘已被锁定,我没有权限访问该驱动器。
有什么方法可以强制擦除此磁盘?我拆下了整个屏幕并重新安装,手动移除 SSD 会非常麻烦,我非常想避免。
抱歉我的英语不好😅
抱歉,但我不确定这里是否是报告问题的正确地方,因为它涉及三个系统的融合,其中只有一个是 Ubuntu。我首先尝试了其他两个组件(GitHub Actions和R 包future
)的帮助论坛,但无法继续前进,所以我才来到这里。如果有更合适的论坛,请重定向我。
我在ale/.github/workflows/R-CMD-check.yaml at main · tripartio/ale 上为我的软件包创建了一个 R-CMD-CHECK Github Actions 工作流。该操作针对 MacOS、Windows 和三个版本的 Ubuntu 验证了我的软件包。目前除了 之外ubuntu-latest (devel)
,其他一切都通过了, 因与并行处理框架相关的问题而失败future
。值得注意的是,和服务器毫无问题地通过了测试(MacOS 和 Windows 也是如此);问题只出在 上。ubuntu-latest (release)
ubuntu-latest (oldrel-1)
ubuntu-latest (devel)
以下是最近一次失败运行的相关部分:R-CMD-CHECK:
── R CMD build ─────────────────────────────────────────────────────────────────
* checking for file ‘.../DESCRIPTION’ ... OK
* preparing ‘ale’:
* checking DESCRIPTION meta-information ... OK
* installing the package to build vignettes
* creating vignettes ... ERROR
Error: --- re-building ‘ale-intro.Rmd’ using rmarkdown
--- finished re-building ‘ale-intro.Rmd’
--- re-building ‘ale-small-datasets.Rmd’ using rmarkdown
Quitting from lines 95-104 [lm_simple] (ale-small-datasets.Rmd)
Error: Error: processing vignette 'ale-small-datasets.Rmd' failed with diagnostics:
The total size of the 56 globals exported for future expression ('function (it.x_cols); {; if (!silent && is.null(bins)) {; progress_iterator(); }; ale_results <- list_transpose(calc_ale(data, model, it.x_cols,; ...; it.rtn; })); }') is 1.85 GiB.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). The three largest globals are 'abort' (99.45 MiB of class 'function'), 'action_dots' (99.42 MiB of class 'function') and 'as_label' (99.42 MiB of class 'function')
--- failed re-building ‘ale-small-datasets.Rmd’
--- re-building ‘ale-statistics.Rmd’ using rmarkdown
--- finished re-building ‘ale-statistics.Rmd’
--- re-building ‘ale-x-datatypes.Rmd’ using rmarkdown
Quitting from lines 123-134 [cars_full] (ale-x-datatypes.Rmd)
Error: Error: processing vignette 'ale-x-datatypes.Rmd' failed with diagnostics:
The total size of the 129 globals exported for future expression ('function (btit, btit.idxs); {; if (!silent) {; progress_iterator(); }; btit.model <- NULL; ...; else {; NULL; }') is 4.01 GiB.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). The three largest globals are 'abort' (83.31 MiB of class 'function'), 'abort_context' (83.30 MiB of class 'function') and 'trace_back' (83.29 MiB of class 'function')
--- failed re-building ‘ale-x-datatypes.Rmd’
SUMMARY: processing the following files failed:
‘ale-small-datasets.Rmd’ ‘ale-x-datatypes.Rmd’
Error: Error: Vignette re-building failed.
Execution halted
Error: Error in proc$get_built_file() : Build process failed
Calls: <Anonymous> ... build_package -> with_envvar -> force -> <Anonymous>
Execution halted
Error: Process completed with exit code 1.
Run ## --------------------------------------------------------------------
Show testthat output
Run actions/upload-artifact@v4
Warning: No files were found with the provided path: /home/runner/work/ale/ale/check. No artifacts will be uploaded.
Run actions/upload-artifact@v4
No files were found with the provided path: /home/runner/work/ale/ale/check/**/tests*/testthat/_snaps. No artifacts will be uploaded.
我尝试了Posit 社区 GitHub Actions 线程中我提交的 bug 报告中的几个方法,但收到并尝试的几个建议并没有帮助。根据我未来软件包 GitHub 问题中 bug 报告中的提示,我可以确认问题不是软件包本身的配置错误,而是严格与GitHub 操作调用的服务器future
隔离。ubuntu-latest (devel)
上面日志中指定的导出对象的数量并不罕见,但我发现非常奇怪的是列出的前三个函数的大小非常大:
据我所知,这些都是rlang
函数;我不知道它们为什么会这么大。据我从上面的构建日志中得知,服务器似乎ubuntu-latest (devel)
认为 {future} 并行化包没有为我的包测试中的对象分配足够的空间。其他构建(包括其他两个 Ubuntu 构建)均未报告此错误。
在我看来,出于某种原因,{future} 安装ubuntu-latest (devel)
严重高估了软件包的存储需求,而这在早期版本的 Ubuntu 上不是问题。也许某个地方有内存泄漏?如果ubuntu-latest (devel)
代表即将发布的 Ubuntu,那么在发布 Ubuntu 版本之前,应该先调查并解决此问题。
我知道这是一个关于特定系统的非常具体的问题,但如果有人至少能告诉我谁在维护R-CMD-CHECK GitHub Action,那将是一个很好的提示。正如我在开头提到的,我首先在他们的论坛上发帖,但未能在那里得到必要的帮助。
我已经安装了 Windows 11,还想安装 Ubuntu Server。并且我想保持安全启动处于启用状态。
有可能吗?
如果是,那么如果我稍后安装另一个发行版(不是官方的 Ubuntu 版本),安全启动会发生什么情况。新发行版能用吗?安装是否会影响安全启动中的某些内容,导致无法启动任何内容?
为了通过 Line Out 内置音频和蓝牙扬声器播放音乐,我实现了@DidierL的答案,创建了一个新的“同时输出”作为输出设备。
然后我注意到蓝牙说话声音略有延迟。为了解决这个延迟问题,我尝试了@PoDuck的答案。即实施
#!/bin/bash
BLUEZCARD=$(pactl list cards short | egrep -o bluez.*[[:space:]])
pactl set-card-profile $BLUEZCARD a2dp_sink
pactl set-card-profile $BLUEZCARD headset_head_unit
pactl set-card-profile $BLUEZCARD a2dp_sink
由于此解决方案无法纠正延迟,我尝试了:
#!/bin/bash
BLUEZCARD=$(pactl list cards short | egrep -o bluez.*[[:space:]])
pactl set-card-profile $BLUEZCARD off
pactl set-card-profile $BLUEZCARD a2dp_sink
pactl set-card-profile $BLUEZCARD off
pactl set-card-profile $BLUEZCARD a2dp_sink
不幸的是,这个设置破坏了“同步输出”设备的性能。它不会播放任何声音。
此外,如果明确选择,则只有 Line Out 内置音频才有效。当明确选择蓝牙扬声器时,声音非常静音。
我不知道如何撤消 Ubuntu 24.04 中的混乱,正如@PoDuck 的回答中提到的,没有撤消自定义快捷方式的选项。
然后单击右侧的“已禁用”以设置键盘快捷键来执行脚本。
我该如何收拾残局?
更新:
我刚刚发现qpwgraph
。下面给出了一个视觉效果。我注意到几个重复的模块,我不知道它是怎么出现的。
任何关于该做什么的建议都是很好的。