Недавно у меня возникли проблемы с установкой youtube-dl
на Ubuntu 20.04. ЭТО НЕ ОДИН ВОПРОС . Эти проблемы были решены , но я не являюсь:
snap
еще И кажется, подходящим
репозиторий не поддерживает текущий,рабочая версия 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 г.) версию.
Использование процедуры установки со страницы 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
из исходного кода - если это разумно, учитывая все вышеперечисленное.
Я подозреваю, что причина, по которой вы получаете ошибку, связана строго с тем фактом, что ваша оболочка сохраняет расположение исполняемых файлов (и других вещей) в своем кэше . Другими словами:
После того, как вы установили 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 не виноваты.
Этот ответ не отвечает на ваш вопрос о повторной «установке из исходников». Другой ответ предлагает подход для этого, но я сомневаюсь, что установка из источника позволила бы избежать ошибки Нет такого файла или каталога
в любом случае - кроме, возможно, случайности - например, вы начали новый сеанс.
Перед тем как начать, выполните следующие команды, чтобы исправить ваш #! / 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