Tom*_*ptp 7 paths chmod symbolic-link curl youtube-dl
这里是一个新用户,正在运行 ubuntu 版本 21.10 impish。
我正在按照 github 页面上的说明安装 youtube-dl ( https://github.com/ytdl-org/youtube-dl#installation ):
$ sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
$ sudo chmod a+rx /usr/local/bin/youtube-dl
Run Code Online (Sandbox Code Playgroud)
命令下载 python 脚本后,多个应用程序完全停止运行,就好像它们已被 youtube-dl 取代一样 [更新 3:应用程序本身没有被替换,只是它们的链接和快捷方式]。受影响的一些软件是 Ubuntu 的默认应用程序,例如默认文本编辑器 (gedit) 和 gnome-calculator,而其他软件则是手动安装的,例如 qbittorrent 和 steam。
有些东西,如 Firefox、Nano 和 lutris 仍然可以工作。
例如,尝试从终端运行文本编辑器会产生以下输出:
$ gedit
Usage: gedit [OPTIONS] URL [URL...]
gedit: error: You must provide at least one URL.
Type youtube-dl --help to see a list of all options.
Run Code Online (Sandbox Code Playgroud)
所有受影响的应用程序都会出现相同的错误:
$ gnome-calculator
Usage: gnome-calculator [OPTIONS] URL [URL...]
gnome-calculator: error: You must provide at least one URL.
Type youtube-dl --help to see a list of all options.
Run Code Online (Sandbox Code Playgroud)
到目前为止我唯一尝试过的是通过 apt 重新安装 gedit 但没有任何改变。
我想知道出了什么问题,是否可以修复,或者是否需要重新安装。
更新 1:请求命令的输出:
$ history
867 sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
868 sudo chmod a+rx /usr/local/bin/youtube-dl
869 youtube-dl sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
870 sudo chmod a+rx /usr/local/bin/youtube-dl
Run Code Online (Sandbox Code Playgroud)
不知道为什么它似乎被列出了两次。
$ which gedit
/usr/local/bin/gedit
$ which gnome-calculator
/usr/local/bin/gnome-calculator
$ ls -al $(which gedit)
lrwxrwxrwx 1 root root 17 loka 28 19:55 /usr/local/bin/gedit -> /usr/bin/firejail
$ ls -al $(which gnome-calculator)
lrwxrwxrwx 1 root root 17 loka 28 19:55 /usr/local/bin/gnome-calculator -> /usr/bin/firejail
$ file $(which gedit)
/usr/local/bin/gedit: symbolic link to /usr/bin/firejail
$ file $(which gnome-calculator)
/usr/local/bin/gnome-calculator: symbolic link to /usr/bin/firejail
Run Code Online (Sandbox Code Playgroud)
“loka”似乎是 October 的缩写,我的系统是英文的,但日期似乎仍然使用芬兰语。
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
Run Code Online (Sandbox Code Playgroud)
更新 2:进一步请求命令输出:
fsck 通过拇指驱动器运行
$ sudo fsck -p /dev/nvme0n1p1
fsck from util-linux 2.36.1
fsck.fat 4.2 (2021-01-31)
/dev/nvme0n1p1: 11 files, 1336/130812 clusters
$ sudo fsck -p /dev/nvme0n1p2
fsck from util-linux 2.36.1
/dev/nvme0n1p2: clean, 478908/31227904 files, 49277410/124895488 blocks
Run Code Online (Sandbox Code Playgroud)
返回系统:
$ whereis gedit
gedit: /usr/bin/gedit /usr/lib/x86_64-linux-gnu/gedit /usr/local/bin/gedit /usr/share/gedit /usr/share/man/man1/gedit.1.gz
$ sha256sum /usr/bin/gedit /usr/local/bin/youtube-dl
27545f7fb059c356feeb88a872719c074d0fd5169564ec3fbb3cbb312b093184 /usr/bin/gedit
7880e01abe282c7fd596f429c35189851180d6177302bb215be1cdec78d6d06d /usr/local/bin/youtube-dl
Run Code Online (Sandbox Code Playgroud)
sudo ldconfig按照答案的建议也尝试使用,但没有得到任何输出,也没有任何看似变化的东西。
更新3:刚刚发现所有受影响的软件仍然可以使用完整路径(例如/usr/bin/gedit),问题似乎与这些应用程序的链接和快捷方式有关。诸如右键单击选项“使用文本编辑器打开”之类的功能仍然无法正常工作。
jpa*_*jpa 22
这是一个理论:
在运行第一个命令之前,它/usr/local/bin/youtube-dl已经存在并且是/usr/bin/firejail. 可能来自以前的一些安装。
该curl ... -o /usr/local/bin/youtube-dl命令不会用新文件替换现有的符号链接。相反,它会覆盖文件的内容,从而覆盖/usr/bin/firejail. 通常,这是一个多重调用二进制文件,用于检查调用它的名称并在沙箱中执行实际应用程序。但 youtube-dl 代码当然没有做任何事情。
正如评论中所确认的,重新安装 firejail 会替换/usr/bin/firejail为工作版本。
作为参考, firecfg的典型 firejail 配置设置的工作方式如下:对于每个沙盒应用程序,/usr/local/bin其下都有一个指向/usr/bin/firejail. 真正的可执行文件位于沙箱中/usr/bin并在沙箱内执行。这也是为什么使用完整路径启动程序/usr/bin仍然有效,但默认路径选择符号链接。
| 归档时间: |
|
| 查看次数: |
1540 次 |
| 最近记录: |