AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1383688
Accepted
Tomptp
Tomptp
Asked: 2021-12-25 17:59:13 +0800 CST2021-12-25 17:59:13 +0800 CST 2021-12-25 17:59:13 +0800 CST

在 Ubuntu 21.10 上按照 github 上的说明安装 youtube-dl 后,包括默认文本编辑器在内的许多应用程序都崩溃了

  • 772

这里有一个新用户,在 21.10 impish 版本上运行 ubuntu。

我正在使用 github 页面(https://github.com/ytdl-org/youtube-dl#installation)上的说明安装 youtube-dl:

$ 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

命令下载了 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.

所有受影响的应用程序的错误都是相同的:

$ 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.

到目前为止,我唯一尝试过的是通过 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

不知道为什么它似乎被列出两次。

$ 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

“loka”似乎是十月的缩写,我的系统是英文的,但日期似乎仍然使用芬兰语。

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin

更新 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

回到系统:

$ 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

正如答案所建议的那样,也尝试使用sudo ldconfig,但没有得到任何输出,也没有任何看似改变。

更新3:刚刚发现所有受影响的软件仍然可以使用完整路径(例如/usr/bin/gedit),问题似乎与这些应用程序的链接和快捷方式有关。诸如右键单击选项“使用文本编辑器打开”之类的东西也仍然被破坏。

symbolic-link
  • 1 1 个回答
  • 1324 Views

1 个回答

  • Voted
  1. Best Answer
    jpa
    2021-12-26T09:30:20+08:002021-12-26T09:30:20+08:00

    这是一个理论:

    在您运行第一个命令之前,该命令/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路径启动程序仍然有效,但默认路径选择符号链接的原因。

    • 23

相关问题

  • unlik后与硬链接有什么不同的符号链接?

  • 如何创建一个别名,以便当我输入“kt”时它执行“killall gnome-terminal”?

  • 如何找到菊花链符号链接的最终目标?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve