Инструкции по установке youtube-dl из исходного кода - Ubuntu 20.04

Недавно у меня возникли проблемы с установкой youtube-dl на Ubuntu 20.04. ЭТО НЕ ОДИН ВОПРОС . Эти проблемы были решены , но я не являюсь:

И кажется, подходящим репозиторий не поддерживает текущий,рабочая версия youtube-dl , поэтому мой предпочтительный подход не будет работать.

Похоже, что установка youtube-dl из исходного кода будет хорошей решение. Я не делал этого в Ubuntu, и у меня очень ограниченный опыт работы на любой платформе. Я нашел то, что кажется неплохим руководством , но ничего особенного для youtube-dl в Ubuntu. Есть ли что-нибудь еще, что я должен знать перед тем, как продолжить?


Другие примечания (Edit):

Просто чтобы подтвердить, что 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 г.) версию.

Использование процедуры установки со страницы 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 и удаляю dd / l curl 'dd / l в / usr / local / bin , я могу успешно установить и запустите youtube-dl , используя sudo pip3 . Но следует предостеречь, что НЕ следует делать sudo pip3 - вместо этого следует использовать virtualenv (или что-то в этом роде). Вот почему я разместил этот вопрос: Я не хочу использовать то, что я не использую и не понимаю, потому что я не могу это поддерживать. Я не думаю, что это неразумно и не делает меня непокорным. Я просто хочу знать, как установить youtube-dl из исходного кода - если это разумно, учитывая все вышеперечисленное.

-1
задан 29 November 2020 в 21:53

2 ответа

Я подозреваю, что причина, по которой вы получаете ошибку, связана строго с тем фактом, что ваша оболочка сохраняет расположение исполняемых файлов (и других вещей) в своем кэше . Другими словами:

После того, как вы установили youtube-dl с помощью apt , вы затем ввели команду для проверки версии ( youtube-dl --version ). В этот момент / usr / bin / youtube-dl хранился в кэше .Это эффективный , потому что он позволяет избежать поиска вашего PATH каждый раз, когда вы вводите эту команду. Но если вы затем переустановите youtube-dl , используя ручную процедуру установки, новое местоположение будет / usr / local / bin / youtube-dl . Но кэш не обновляется при новой «установке» и не обновляется при запуске apt remove в установленном вами пакете youtube-dl . Следовательно, оболочка пытается запустить неправильный исполняемый файл - или даже тот, которого больше нет.

Предлагаемый ответ:

Решение ошибки Нет такого файла или каталога следующее:

$ 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 , встроенный ; для получения дополнительных сведений найдите хэш в man bash . Для пользователей zsh аналогом hash является rehash .

Кроме того, установка youtube-dl manual ] сделано в / usr / local / bin iaw давняя процедура , описанная в этой статье о структуре каталогов Linux . Так и должно быть - ни Ubuntu, ни сопровождающие yt-dl не виноваты.

Установка из источника :

Этот ответ не отвечает на ваш вопрос о повторной «установке из исходников». Другой ответ предлагает подход для этого, но я сомневаюсь, что установка из источника позволила бы избежать ошибки Нет такого файла или каталога в любом случае - кроме, возможно, случайности - например, вы начали новый сеанс.

0
ответ дан 3 January 2021 в 22:48

Перед тем как начать, выполните следующие команды, чтобы исправить ваш #! / 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  
1
ответ дан 3 January 2021 в 22:48

Другие вопросы по тегам:

Похожие вопросы: