从源代码安装“youtube-dl”的说明 - Ubuntu 20.04

从源代码安装“youtube-dl”的说明 - Ubuntu 20.04

我最近有一些安装问题youtube-dl在 Ubuntu 20.04 上。这不是同一个问题. 这些问题已解决, 但我不是:

而且似乎apt存储库没有维护当前的可操作版本youtube-dl,所以我的首选方法不起作用。

看来youtube-dl从源代码安装是个好办法。我还没有在 Ubuntu 上这样做过,而且在任何平台上的经验都非常有限。我发现看起来不错的指南,但没有针对youtube-dlUbuntu 的具体信息。在继续操作之前我还应该知道什么吗?


其他说明(编辑):

只是为了确认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/binvs /usr/local/bin。并且它显然安装了旧版本(2020 年 3 月)。

使用安装程序youtube-dlgithub 页面结果是:

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

hashbash 内置;搜索hashman bash了解更多详情。对于zsh用户来说, 的类比hashrehash

此外,youtube-dl 手动的安装是按照/usr/local/bin长期程序进行的本文解释了 Linux 目录结构. 这本该如此 — — 这不是 Ubuntu 或 yt-dl 维护者的错。

安装自来源

此答案并未解决您关于“从源代码安装”的问题。另一个答案提出了一种方法,但我怀疑从源代码安装No such file or directory无论如何都无法避免错误 - 除非是意外 - 例如您启动了新会话。

相关内容