我最近有一些安装问题youtube-dl
在 Ubuntu 20.04 上。这不是同一个问题. 这些问题已解决, 但我不是:
- Python 用户
snap
还舒服
而且似乎apt
存储库没有维护当前的可操作版本youtube-dl
,所以我的首选方法不起作用。
看来youtube-dl
从源代码安装是个好办法。我还没有在 Ubuntu 上这样做过,而且在任何平台上的经验都非常有限。我发现看起来不错的指南,但没有针对youtube-dl
Ubuntu 的具体信息。在继续操作之前我还应该知道什么吗?
其他说明(编辑):
只是为了确认sudo apt-get install youtube-dl
有问题:
准备解压 .../12-youtube-dl_2020.03.24-1_all.deb ...
正在解压 youtube-dl (2020.03.24-1) ...
正在设置 youtube-dl (2020.03.24-1) ...
apt
安装youtube-dl
完成后成功地:
$ which youtube-dl
/usr/bin/youtube-dl
$ youtube-dl --version
bash: /usr/local/bin/youtube-dl: No such file or directory
$ /usr/bin/youtube-dl --version
2020.03.24
哪个建议对于像我这样的新手来说,有些不对劲。请注意,对于 的安装位置存在混淆youtube-dl
:/usr/bin
vs /usr/local/bin
。并且它显然安装了旧版本(2020 年 3 月)。
使用安装程序youtube-dl
github 页面结果是:
$ 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
$ youtube-dl --version
/usr/bin/env: ‘python’: No such file or directory
由于我不清楚的原因,youtube-dl
维护人员希望在 中进行安装/usr/local/bin
。不知道为什么python
需要在 中进行安装/usr/bin/env
。
以上所有内容都是为了解决自提交此问题以来所提出的各种评论。
是的,如果我卸载/删除/撤销安装apt
,并删除curl
“dd/l to ” /usr/local/bin
,我可以成功安装并运行youtube-dl
。sudo pip3
但有些警告sudo pip3
不应该这样做 - 相反应该这样做虚拟环境(或类似的东西)。这就是我发布这个问题的原因:我不想使用我不使用也不了解的东西,因为我无法维护它。我不认为这不合理,也不会让我变得固执。我只是想知道如何youtube-dl
从源代码安装 - 如果考虑到以上所有情况,这样做是合理的。
答案1
开始之前,请运行以下命令来修复#!/usr/bin/env python
“没有此文件或目录”错误:
sudo apt update
sudo apt install python-is-python3
现在,您的问题很可能已经解决。但是,如果您想从源代码安装,可以查看以下说明。
确保所有旧版本都已卸载:
sudo apt purge youtube-dl
sudo pip3 uninstall youtube-dl
pip3 uninstall youtube-dl
sudo rm /usr/local/bin/youtube-dl
rm $HOME/.local/bin/youtube-dl
现在,从源代码安装:
cd
sudo apt update
sudo apt install git
sudo apt build-dep youtube-dl
git clone https://github.com/ytdl-org/youtube-dl.git
cd youtube-dl
make
sudo make install
. ~/.bashrc
答案2
我怀疑你收到错误的原因完全是由于你的 shell 将可执行文件(和其他东西)的位置保存到其缓存。 换句话说:
youtube-dl
使用安装后apt
,您输入命令来检查版本(youtube-dl --version
)。此时,/usr/bin/youtube-dl
存储在缓存。 这是高效的youtube-dl
因为它避免了每次输入该命令时搜索您的 PATH。但是,如果您随后使用手动安装程序重新安装,则新位置是/usr/local/bin/youtube-dl
。但是缓存apt remove
不会通过新的“安装”进行更新,也不会在您运行安装的软件包时进行更新youtube-dl
。因此,shell 会尝试运行错误的可执行文件 - 甚至是不再存在的可执行文件。
建议答案:
错误的解决方法No such file or directory
是这样的:
$ type youtube-dl
# this will likely show the following:
youtube-dl is hashed (/usr/bin/youtube-dl)
# if this is the case, your "fix" is one of the following:
$ hash -r
# which will delete the entire cache
# --OR--
$ hash -d youtube-dl
# which will delete only the entry for youtube-dl
hash
是bash
内置;搜索hash
以man bash
了解更多详情。对于zsh
用户来说, 的类比hash
是rehash
。
此外,youtube-dl
手动的安装是按照/usr/local/bin
长期程序进行的本文解释了 Linux 目录结构. 这本该如此 — — 这不是 Ubuntu 或 yt-dl 维护者的错。
安装自来源:
此答案并未解决您关于“从源代码安装”的问题。另一个答案提出了一种方法,但我怀疑从源代码安装No such file or directory
无论如何都无法避免错误 - 除非是意外 - 例如您启动了新会话。