我在旧系统上有一个旧软件包,我想升级我的操作系统。让特定的包在较新的系统上工作可能是可能的,但我现在不想弄乱它,我仍然想使用它。当我尝试使用 Ubuntu 23.04 时,我陷入了依赖噩梦。
无论如何,是否#apt-mark hold <package>
保留了包以及包的依赖关系?apt-mark Hold 是否可以采取任何措施来防止包损坏?或者它仅阻止对特定软件包的更新?
我在旧系统上有一个旧软件包,我想升级我的操作系统。让特定的包在较新的系统上工作可能是可能的,但我现在不想弄乱它,我仍然想使用它。当我尝试使用 Ubuntu 23.04 时,我陷入了依赖噩梦。
无论如何,是否#apt-mark hold <package>
保留了包以及包的依赖关系?apt-mark Hold 是否可以采取任何措施来防止包损坏?或者它仅阻止对特定软件包的更新?
我正在尝试安装 yelp-tools。我跑了 sudo apt-get update && sudo apt-get upgrade 然后 sudo apt-get install yelp-tools 它失败了:
E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/universe/libx/libxml2/python3-libxml2_2.9.13%2bdfsg-1ubuntu0.2_amd64.deb 404 Not Found [IP: 91.189.91.38 80]
sudo apt-get install --fix-missing yelp-tools
返回相同的错误。
查看回购协议:没有 libxml2_2.9.13%2bdfsg-1ubuntu0.2_amd64.deb 的包
而是:libxml2_2.9.13%2bdfsg-1ubuntu0.3_amd64.deb
我会怀疑某个地方,有一个包裹列表指向一个由于打字错误而不存在的包裹。
回购的索引文件在哪里
http://security.ubuntu.com/ubuntu jammy-security universe
apt-get update 更新包索引文件。这些索引文件到底在哪里?我认为其中有一个错字。
问题从那里继续,但都是同一类型的错误。我安装了更新的 libxml2_2.9.13%2bdfsg-1ubuntu0.3_amd64.deb 包,然后安装了 yelp-tools 并且它工作了。但我认为包索引中一定有错误,我应该联系某人吗?我该如何验证?
我有一些正在使用 bash 脚本测试的硬件。
#!/bin/bash
tshwctl --setdio=65
for i in $(seq 0 1000)
do
./adc1
sleep 1
done
tshwctl --clrdio=65
如果我在完成循环之前按 Ctrl+C,则不会取消设置 65 号针。(我可以稍后取消设置)有没有办法在按下后执行一个过程Ctrl+C
?如:有没有办法让脚本tshwctl --clsdio=65
在按下 ctrl+C 时在脚本退出之前执行?
我在 coreutils 中环顾四周,sudo apt-cache search which
我是否也查看了它的联机帮助页,但我没有找到它。
我想添加一个用于列出可执行文件依赖项的参数,我认为这会很有用。
我设置了一个 cron 作业,每 50 分钟写一个网页,但后来我看了看网页,它是空白的。计划任务:
50 * * * * mkIndex.sh > /home/user/img/index.html
mkIndex.sh 是我写的脚本,在/home/$USER/bin 里,在$PATH 里。以 crontab 中显示的相同方式运行脚本似乎工作正常,它生成网页。..
那么为什么我的 index.html 文件是空白的呢?或者,您能看出我的 shell 脚本有什么缺陷吗?
#!/bin/bash
echo -e "<!DOCTYPE html>\n<head>\n"
echo -e "<style>\ndiv.gallery {\nmargin: 1px;\nborder: 1px solid #ccc;\nfloat: left;\n"
echo -e" width: 180px;\n}\n\ndiv.gallery:hover {\nborder: 1px solid #777;\n}\n\ndiv.gallery img {\n"
echo -e "width: 10%;\nheight: auto;\n}\n"
echo -e "</style>\n</head>\n"
echo -e "<body>\n"
cd /home/user/img
for i in `ls *.png`
do
echo -e "<div class="gallery">"
echo -e "<a target="$i" href="$i">"
echo -e " <img src="$i" width="300" height="200">"
echo -e "</a>"
echo -e "</div>"
done
echo -e "</body>\n</html>"
我不确定为什么我的 cron 作业没有生成所需的输出。
我有 506 张 jpg 图片我想制作成 gif。但转换失败并显示错误:convert-im6.q16: cache resources exhausted
2022-12-19-152850_210.jpg' @error/cache.c/OpenPixelCache/4083`
还有什么别的吗convert -delay 20 -loop 0 *.jpg my.gif
我应该使用将静止图像转换为 gif 吗?
我有一个 shell 脚本,我想在 SD 卡上执行。我已将文件夹权限更改为我的用户/组。那里没有问题。当我发出命令时,chmod a+x script.sh
然后检查ls -al
权限是否为只读。我已经尝试sudo chmod +x script.sh
过各种其他 chmod 命令,但该文件仍然是只读的。我尝试将脚本标记为可执行文件,并将其复制到 SD 卡。
cp -p script.sh /media/a/4C00-1447/cosmo
当我检查权限时,脚本恢复为只读状态。我不明白这里发生了什么。这些命令都不会返回任何错误。如何将可执行脚本放到我的 SD 卡上?
当您第一次启动时,您会看到黑屏的温暖光芒和闪烁的提示,那是什么程序?什么程序处理证书的评估?或者更确切地说,它是源代码的哪个组件?我可能会让自己感到困惑,但我认为各种用户 shell 是在用户身份验证后加载的。
...这可能意味着 bash 在单用户模式下启动,然后 bash 检查凭据并启动用户 shell?(我认为这就是它的工作原理)
(我有兴趣在凭证检查过程中添加一个功能,但我正在查看 bash 源代码,但我不确定从哪里开始。)
我有一个我编写的程序,它可以访问硬件(设备文件)并且需要 root 权限才能运行。我希望这个程序可以由非特权用户执行,而不需要 root 密码。我已经尝试通过sudo chmod u+s programName
重新启动来修改权限,但是程序然后程序将无法运行sudo ./programName
我记得在 12 年前这样做过,但我现在想不通。有小费吗?
我只想知道 wnck-applet 是什么,或者它做了什么。我将程序定位在 /usr/lib/mate-panel/wnck-applet
man wnck
什么都没有。用谷歌搜索,我看到人们对此有问题,但没有说明它是什么。
我正在尝试在我的 Ubuntu 20.04 Mate 安装上为 linux 安装交叉,但缺少依赖项 python-gtk2。
sudo apt-get install python-gtk2
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package python-gtk2 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'python-gtk2' has no installation candidate
我尝试为 Ubuntu 18.04 获取旧版本,但也无法安装。它说该项目已折旧。这一切都很好,但我需要它来运行交叉。
我有一个 Arturia,MiniLab,它是一个串行的、非块设备。我想从设备读取按键,但我不/dev/device
知道应该从哪里读取按键。我想知道如何使用输出等信息lsusb
,然后收听 USB 设备。 lsusb ... Bus 001 Device 005: ID 1c75:0204 Arturia Arturia MINILAB
有没有办法从 ID 字段中找到设备名称?或者在不知道 /dev 中的设备名称的情况下从 USB 连接读取数据?鉴于我所知道的,从 USB 设备读取数据的下一步是什么?
我有一个包含 pdf 文件子文件夹的大文件夹。我想获取所有 pdf 文件(其中 290 个)并将它们放入一个目录中。(我认为这很简单。)这样我就可以使用我的 pdf 程序 pdfshuffle 或类似的东西将它们连接到一个文档中。我将文件路径和名称放入一个文件:out.txt
,使用: find $(pwd) -iname '*.PDF' > out.txt
out.txt 包含如下路径和文件:
...
/home/user/Downloads/pedals/PEDALS/Electro-Harmonix/Small Stone Phaser.PDF
/home/user/Downloads/pedals/PEDALS/Electro-Harmonix/Dr. Quack (Doctor Q Melhorado).pdf
/home/user/Downloads/pedals/PEDALS/Marshall/Guv'Nor 1.PDF
/home/user/Downloads/pedals/PEDALS/Marshall/Guv'Nor 2.pdf
...
凉爽的。所以我想我可以这样做:
#!/bin/bash
input="out.txt"
while IFS= read -r line
do
#echo "$line"
cp $line .
done < "$input"
但它只复制了大约 36 个 pdf,并且 shell 说它不能统计文件:
...
cp: cannot stat 'Boogie/Vtwin.pdf': No such file or directory
cp: cannot stat '/home/user/Downloads/pedals/PEDALS/Mesa': No such file or directory
...
该文件显然在那里,我可以查看它等等。我的方法或脚本有什么问题?
我在本地 Makerspace 使用共享的 Ubuntu 计算机。看着history
我可以看到一些时候我 sshd 进入远程主机......我有点希望我没有从这里做到这一点。我能够运行history -c
并清除历史记录,但是其他所有人的历史记录也消失了。在不继续创建多个用户帐户或明显的安全问题的情况下,有没有办法在不临时记录活动的情况下运行终端,或者使用不创建新历史但保留旧历史的终端,或者从时间点?或者是否有启动终端的命令使得历史不会记录在该终端中?
操作系统是 Ubuntu Mate 20.04
我的电脑(Ubuntu Mate 20.04)需要一分钟多的时间才能启动,我不知道为什么。这似乎与此特定硬盘驱动器上的引导过程有关。
来自 dmesg:
...
[ 1.922970] async_tx: api initialized (async)
[ 2.328482] psmouse serio2: trackpoint: IBM TrackPoint firmware: 0x0e, buttons: 3/3
[ 2.530339] input: TPPS/2 IBM TrackPoint as /devices/platform/i8042/serio1/serio2/input/input7
[ 3.256967] Btrfs loaded, crc32c=crc32c-intel
[ 34.601941] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
...
那里似乎有 30 秒,我没有 Btrfs,我不确定它为什么要检查它,或者它在做什么。
然后我有这个:
[ 38.739280] USB Video Class driver (1.1.1)
[ 125.248857] Process accounting resumed
我不知道流程会计是什么。
我拍了这张启动过程的照片:这张照片中的 最后一行是我想要找到并修复的,每次启动我的电脑都需要一分半钟的时间来运行。它发生在安全模式和正常启动时。是否有用于列出引导过程的单一工具?我不想重新安装。我试过检查磁盘文件系统,问题仍然存在。我做了SMART磁盘分析,硬盘没问题。
命令systemd-analyze critical-chain
$ systemd-analyze critical-chain
The time when unit became active or started is printed after the "@" character.
The time the unit took to start is printed after the "+" character.
graphical.target @1min 38.388s
└─multi-user.target @1min 38.388s
└─lxc.service @1min 38.330s +57ms
└─lxc-net.service @1min 38.184s +143ms
└─network-online.target @1min 38.179s
└─NetworkManager-wait-online.service @1min 30.737s +7.440s
└─NetworkManager.service @1min 30.360s +374ms
└─dbus.service @1min 30.355s
└─basic.target @1min 30.316s
└─sockets.target @1min 30.315s
└─snapd.socket @1min 30.310s +4ms
└─sysinit.target @1min 30.280s
└─systemd-backlight@leds:tpacpi::kbd_backlight.service @2>
└─system-systemd\x2dbacklight.slice @1.538s
└─system.slice @251ms
└─-.slice @251ms
和命令systemd-analyze time
$ systemd-analyze time
Startup finished in 34.552s (kernel) + 2min 7.682s (userspace) = 2min 42.235s
graphical.target reached after 1min 38.388s in userspace
我最近在旧的CentOS服务器上使用gfortran -o ortep3 ortep.f -lpgplot -lX11
. 我认为gfortran
版本是 6.5 或类似的版本。我的版本gfortran
是:gcc version 9.2.1
我现在想在一些 18.04 或更高版本的 Ubuntu 机器上编译 ORTEP3。当我尝试编译时ortep
,出现错误,例如:
Error: Actual argument contains too few elements for dummy argument ‘itxt’ (1/72) at (1)
和警告,例如:
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 10 at (1)
我尝试使用 legacy code flag -ff2c
,但没有效果。libx11
,并且pgplot
都已安装和运行。
我试过用 编译fort77
,它可以编译,但编译后的代码不会运行。尝试用 编译gfortran
,ortep.f
将无法编译。
LD_TRACE 从 CentOS 服务器:
$ LD_TRACE_LOADED_OBJECTS=1 ./Working_ortep3
linux-vdso.so.1 (0x00007ffc82f42000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f185a9cf000)
libgfortran.so.3 => /usr/lib/x86_64-linux-gnu/libgfortran.so.3 (0x00007f185a89d000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f185a74e000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f185a734000)
libquadmath.so.0 => /usr/lib/x86_64-linux-gnu/libquadmath.so.0 (0x00007f185a6ea000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f185a4f9000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f185a4ce000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f185a4c8000)
/lib64/ld-linux-x86-64.so.2 (0x00007f185ab51000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f185a4c2000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f185a4ba000)
libbsd.so.0 => /usr/lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f185a4a0000)
为了匹配我能够构建和运行 ortep3 的位置,我已经检查并安装了与依赖于ortep3
. 我最终安装了:
sudo apt-get install libxdmcp-dev libbsd-dev
错误仍然存在。
我不再在能够编译 ortep3 的服务器上工作。我可以问一下,但是当我能够在那里编译它时,我完成了工作(安装了 ortep3 的功能版本)。
以下是错误列表:
$ gfortran -w -g -o ortep3 ortep.f -lpgplot -lX11
ortep.f:576:36:
576 | CALL SIMBOL(W(2,1),W(3,1),HGT,' ',0.,-1)
| 1
Error: Actual argument contains too few elements for dummy argument ‘itxt’ (1/72) at (1)
ortep.f:577:36:
577 | CALL SIMBOL(W(2,2),W(3,2),HGT,' ',0.,-2)
| 1
Error: Actual argument contains too few elements for dummy argument ‘itxt’ (1/72) at (1)
ortep.f:3678:27:
3678 | CALL SIMBOL(W,W2,HGT,ITEX,THT,NC)
| 1
Error: Actual argument contains too few elements for dummy argument ‘itxt’ (8/72) at (1)
ortep.f:3934:48:
3934 | 185 if (nout.ge.0) WRITE (NOUT,176)I,maksym(1,fsym)
| 1
Error: Actual argument contains too few elements for dummy argument ‘gp’ (12/2304) at (1)
ortep.f:1258:19:
1258 | CALL AXEQB(A,V,V,1)
| 1
Error: Actual argument contains too few elements for dummy argument ‘x’ (3/9) at (1)
ortep.f:2084:16:
2084 | 945 CALL PROJ(D(1,65),DP(1,65),X,XO,VIEW,1,65,L)
| 1
Error: Actual argument contains too few elements for dummy argument ‘d’ (198/387) at (1)
ortep.f:2117:16:
2117 | CALL PROJ(V1,DP,X,XO,VIEW,1,1,1)
| 1
Error: Actual argument contains too few elements for dummy argument ‘d’ (4/387) at (1)
ortep.f:2123:16:
2123 | 988 CALL PROJ(DA,DP,X,XO,VIEW,1,3,1)
| 1
Error: Actual argument contains too few elements for dummy argument ‘d’ (9/387) at (1)
ortep.f:2550:32:
2550 | CALL SIMBOL(Y(1),Y(2),HGT,' ',TH,7-NJ3)
| 1
Error: Actual argument contains too few elements for dummy argument ‘itxt’ (1/72) at (1)
我不知道这实际上是如何在 CentOS 机器上开始工作的。据ortep3
我所知,代码是 Fortran77,但 SIMBOL 一词看起来像是一个错字,我认为它可能是 SYMBOl,但我不需要修改代码以使其之前编译。
最终目标:添加一个svg文件输出功能,写一个deb包,维护一下。
我正在编写一个 bash 脚本来使用 espeak 将歌词转换为音频剪辑。问题是 espeak 只说第一个单词,而不是我正在阅读的逐行。我尝试将这些行放在带引号的文件中,但这并没有解决问题。
这是我的 bash 脚本:
#!/bin/bash
input="$1"
##input="/path/to/txt/file"
while IFS= read -r line
do
echo "$line"
espeak -k cantonese $line
done < "$input"
这是逐行的文本文件:
"Work it"
"Make it"
"Do it"
"Make us"
"Harder"
"Better"
"Faster"
"Stronger"
我怎样才能让espeak说出每一个字?
请注意,当我使用该-f
选项从文件中读取时,会说出每个单词。