Ошибка удаления пакета, который не установлен

Задача, столь сложная, как это (насколько мне известно), не может быть выполнена с помощью ffmpeg в одиночку и в одном вызове, но я добавлю версию oneline ниже. Вот версия скрипта:

#!/bin/bash
in=$1
dur=$2
totaldur=$(ffprobe -v -8 -show_entries format=duration -of flat large.mp4 | sed -r 's/.*"([0-9]+).*/\1/')
i=0

while (( i * dur < totaldur) )
do
  ffmpeg -i $in -i ${in%%.*}.srt \
    -ss $((i*dur)) -t $dur -c copy -sn ${in%%.*}-$((i+1)).${in#*.} \
    -ss $((i*dur)) -t $dur -an -vn ${in%%.*}-$((i+1)).srt
  ((i++))
done

Этот сценарий принимает два аргумента, первый из которых является именем файла видео, а второй - продолжительностью в секундах, см. Пример ниже. Сначала он выводит выход ffprobe на sed, чтобы получить общую продолжительность видео в секундах, это значение используется для создания петли while для частей. Внутри цикла ffmpeg вызывается для создания частей, как .mp4, так и .srt в одном вызове.

Пример run

$ tree # the directory contains large.mp4 and large.srt
.
├── large.mp4
└── large.srt
$ ffmpeg -i large.mp4 |& awk '/Duration/' # large.mp4 has a duration of 00:02:30.07
  Duration: 00:02:30.07, start: 0.000000, bitrate: 1283 kb/s
$ /path/to/above/script large.mp4 60 # let's split it after every 60 seconds
$ tree
.
├── large-1.mp4
├── large-1.srt
├── large-2.mp4
├── large-2.srt
├── large-3.mp4
├── large-3.srt
├── large.mp4
└── large.srt

Версия Oneline [!d3 ]

Первые две переменные хранят имя файла и продолжительность в секундах, приспосабливают эти два к вашим потребностям.

in=large.mp4;dur=60;i=0;while ((i*dur<$(ffprobe -v -8 -show_entries format=duration -of flat large.mp4|sed -r 's/.*"([0-9]+).*/\1/')));do ffmpeg -y -i $in -i ${in%%.*}.srt -ss $((i*dur)) -t $dur -c copy -sn ${in%%.*}-$((i+1)).${in#*.} -ss $((i*dur)) -t $dur -an -vn ${in%%.*}-$((i+1)).srt;((i++));done

Ссылки

Вот некоторые ссылки, которые я нашел на way:

FFmpeg: Как эффективно разделить видео? Использование ffmpeg для добавления текстовых субтитров Как отключить декодирование субтитров в ffmpeg Как извлечь субтитры из видео с помощью ffmpeg?
0
задан 26 April 2018 в 22:56

3 ответа

Шаг 1: Остановите службу apache2 от запуска

Перед удалением введите эту команду в терминал / другой CLI:

sudo systemctl stop apache2.service

Шаг 2: Удалите бинарные файлы пакетов, общесистемные файлы конфигурации и сиротские зависимости

Чтобы полностью удалить сам пакет, а также его файлы конфигурации всей системы и любые зависимости, которые были необходимы для пакета, но больше не нужны, выполните:

sudo apt-get purge --auto-remove <packagename>

Объяснение: purge выполняет то же, что и apt-get remove --purge; он избавляется от самого пакета и связанных файлов конфигурации. Это похоже на один шаг выше apt-get remove, который удаляет только двоичные файлы. --auto-remove делает то же, что и apt-get autoremove; он избавляется от сиротских зависимостей.

Извините, я не дал вам эту конкретную команду для использования в комментариях, но совершенно нормально делать все, используя отдельные команды, а не одну команду, поскольку выполняются те же действия. В вашем конкретном случае, поскольку вы уже выполнили remove --purge, вы можете просто выполнить часть автозапуска с помощью sudo apt autoremove, и это должно позаботиться о том, что удалить --purge не удалил.

В качестве альтернативы, если вы хотите быть выборочным относительно того, какие зависимости удаляются, вы можете избавиться от флага --auto-remove (выполняя sudo apt-get purge <packagename>) и следовать шаги, которые я нашел из этого удивительного ответа, чтобы легко создать своего рода пользовательскую функцию-зависимость. В следующей команде перечислены все зависимости пакета, а затем каналы, которые перечисляются в отдельные команды apt-get remove, которые все отправляются в сценарий оболочки, который можно открыть в текстовом редакторе, и при необходимости изменить. Затем вы просто выполняете сценарий оболочки, как только вы этого доволите. Команда:

apt-cache depends <packagename>|awk '{print "sudo apt-get remove "$NF}' >pg_remove.sh

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

Шаг 3: Удалите файлы конфигурации пользователя

Затем вам нужно вручную удалить файлы конфигурации для конкретного пользователя, хранящиеся в вашем домашнем каталоге. Они могут находиться в их собственном каталоге и / или в ~ / .config, ~ / .cache, ~ / .local.

Сначала найдите файлы, содержащие имя пакета в ~/.config, и удалите их. Вы можете использовать ls -a ~/.config или ls -A ~/.config, чтобы просмотреть все содержимое вашего дома, включая скрытые файлы / папки. Если вы используете Nautilus для этого, убедитесь, что вы включили возможность просмотра скрытых файлов (View>Show Hidden Files). Затем удалите их с помощью rm или Nautilus.

Также посмотрите в своей домашней папке каталог с именем пакета (или что-то похожее на имя пакета - это может быть не совсем то же самое). Вероятно, он будет скрыт по умолчанию, и он, вероятно, начнется с «.» - если он существует. Я не так много знаю об apache, поэтому я не уверен, будет ли этот каталог там, или как он будет выглядеть. В любом случае, если он существует, удалите его и!

Кроме того, зайдите в ~/.cache и ~/.local/share для каталога с именем после пакета.

Ссылки для шагов 2 и 3: Как полностью удалить пакет ?, Каков правильный способ полностью удалить приложение ?, Как полностью удалить файлы конфигурации

Возможная будущая переустановка

В этом пакете могут быть библиотеки вам действительно нужно в будущем, и вам может потребоваться переустановить его. Ubuntu поставляется с установленным libapache2-mod-wsgi-py3, который походит на версию по умолчанию, поэтому я предполагаю, что он не мог хорошо играть с любой версией Python, которую вы использовали. Если вы хотите узнать больше, проверьте вывод which python и ps -fA | grep python ... Если конфликт с версией Python действительно был проблемой, тогда удивительный ответ и этот адрес, как вы можете правильно установите mod-wgsi через pip (установка пакетов пакета называется mod_wgsi).

0
ответ дан 22 May 2018 в 11:13

Шаг 1: Остановите службу apache2 от запуска

Перед удалением введите эту команду в терминал / другой CLI:

sudo systemctl stop apache2.service

Шаг 2: Удалите бинарные файлы пакетов, общесистемные файлы конфигурации и сиротские зависимости

Чтобы полностью удалить сам пакет, а также его файлы конфигурации всей системы и любые зависимости, которые были необходимы для пакета, но больше не нужны, выполните:

sudo apt-get purge --auto-remove <packagename>

Объяснение: purge выполняет то же, что и apt-get remove --purge; он избавляется от самого пакета и связанных файлов конфигурации. Это похоже на один шаг выше apt-get remove, который удаляет только двоичные файлы. --auto-remove делает то же, что и apt-get autoremove; он избавляется от сиротских зависимостей.

Извините, я не дал вам эту конкретную команду для использования в комментариях, но совершенно нормально делать все, используя отдельные команды, а не одну команду, поскольку выполняются те же действия. В вашем конкретном случае, поскольку вы уже выполнили remove --purge, вы можете просто выполнить часть автозапуска с помощью sudo apt autoremove, и это должно позаботиться о том, что удалить --purge не удалил.

В качестве альтернативы, если вы хотите быть выборочным относительно того, какие зависимости удаляются, вы можете избавиться от флага --auto-remove (выполняя sudo apt-get purge <packagename>) и следовать шаги, которые я нашел из этого удивительного ответа, чтобы легко создать своего рода пользовательскую функцию-зависимость. Следующая команда сначала перечисляет все зависимости пакета, а затем каналы, которые перечисляются в отдельные команды apt-get remove, которые все отправляются в сценарий оболочки, который можно открыть в текстовом редакторе, и при необходимости изменять. Затем вы просто выполняете сценарий оболочки, как только вы этого доволите. Команда:

apt-cache depends <packagename>|awk '{print "sudo apt-get remove "$NF}' >pg_remove.sh

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

Шаг 3: Удалите файлы конфигурации пользователя

Затем вам нужно вручную удалить файлы конфигурации для конкретного пользователя, хранящиеся в вашем домашнем каталоге. Они могут находиться в их собственном каталоге и / или в ~ / .config, ~ / .cache, ~ / .local.

Сначала найдите файлы, содержащие имя пакета в ~/.config, и удалите их. Вы можете использовать ls -a ~/.config или ls -A ~/.config, чтобы просмотреть все содержимое вашего дома, включая скрытые файлы / папки. Если вы используете Nautilus для этого, убедитесь, что вы включили возможность просмотра скрытых файлов (View>Show Hidden Files). Затем удалите их с помощью rm или Nautilus.

Также посмотрите в своей домашней папке каталог с именем пакета (или что-то похожее на имя пакета - это может быть не совсем то же самое). Вероятно, он будет скрыт по умолчанию, и он, вероятно, начнется с «.» - если он существует. Я не так много знаю об apache, поэтому я не уверен, будет ли этот каталог там, или как он будет выглядеть. В любом случае, если он существует, удалите его и!

Кроме того, зайдите в ~/.cache и ~/.local/share для каталога с именем после пакета.

Ссылки для шагов 2 и 3: Как полностью удалить пакет ?, Каков правильный способ полностью удалить приложение ?, Как полностью удалить файлы конфигурации

Возможная будущая переустановка

В этом пакете могут быть библиотеки вам действительно нужно в будущем, и вам может потребоваться переустановить его. Ubuntu поставляется с установленным libapache2-mod-wsgi-py3, который походит на версию по умолчанию, поэтому я предполагаю, что он не мог хорошо играть с любой версией Python, которую вы использовали. Если вы хотите узнать больше, проверьте вывод which python и ps -fA | grep python ... Если конфликт с версией Python действительно был проблемой, тогда удивительный ответ и этот адрес, как вы можете правильно установите mod-wgsi через pip (установка пакетов пакета называется mod_wgsi).

0
ответ дан 17 July 2018 в 16:06

Шаг 1: Остановите службу apache2 от запуска

Перед удалением введите эту команду в терминал / другой CLI:

sudo systemctl stop apache2.service

Шаг 2: Удалите бинарные файлы пакетов, общесистемные файлы конфигурации и сиротские зависимости

Чтобы полностью удалить сам пакет, а также его файлы конфигурации всей системы и любые зависимости, которые были необходимы для пакета, но больше не нужны, выполните:

sudo apt-get purge --auto-remove <packagename>

Объяснение: purge выполняет то же, что и apt-get remove --purge; он избавляется от самого пакета и связанных файлов конфигурации. Это похоже на один шаг выше apt-get remove, который удаляет только двоичные файлы. --auto-remove делает то же, что и apt-get autoremove; он избавляется от сиротских зависимостей.

Извините, я не дал вам эту конкретную команду для использования в комментариях, но совершенно нормально делать все, используя отдельные команды, а не одну команду, поскольку выполняются те же действия. В вашем конкретном случае, поскольку вы уже выполнили remove --purge, вы можете просто выполнить часть автозапуска с помощью sudo apt autoremove, и это должно позаботиться о том, что удалить --purge не удалил.

В качестве альтернативы, если вы хотите быть выборочным относительно того, какие зависимости удаляются, вы можете избавиться от флага --auto-remove (выполняя sudo apt-get purge <packagename>) и следовать шаги, которые я нашел из этого удивительного ответа, чтобы легко создать своего рода пользовательскую функцию-зависимость. Следующая команда сначала перечисляет все зависимости пакета, а затем каналы, которые перечисляются в отдельные команды apt-get remove, которые все отправляются в сценарий оболочки, который можно открыть в текстовом редакторе, и при необходимости изменять. Затем вы просто выполняете сценарий оболочки, как только вы этого доволите. Команда:

apt-cache depends <packagename>|awk '{print "sudo apt-get remove "$NF}' >pg_remove.sh

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

Шаг 3: Удалите файлы конфигурации пользователя

Затем вам нужно вручную удалить файлы конфигурации для конкретного пользователя, хранящиеся в вашем домашнем каталоге. Они могут находиться в их собственном каталоге и / или в ~ / .config, ~ / .cache, ~ / .local.

Сначала найдите файлы, содержащие имя пакета в ~/.config, и удалите их. Вы можете использовать ls -a ~/.config или ls -A ~/.config, чтобы просмотреть все содержимое вашего дома, включая скрытые файлы / папки. Если вы используете Nautilus для этого, убедитесь, что вы включили возможность просмотра скрытых файлов (View>Show Hidden Files). Затем удалите их с помощью rm или Nautilus.

Также посмотрите в своей домашней папке каталог с именем пакета (или что-то похожее на имя пакета - это может быть не совсем то же самое). Вероятно, он будет скрыт по умолчанию, и он, вероятно, начнется с «.» - если он существует. Я не так много знаю об apache, поэтому я не уверен, будет ли этот каталог там, или как он будет выглядеть. В любом случае, если он существует, удалите его и!

Кроме того, зайдите в ~/.cache и ~/.local/share для каталога с именем после пакета.

Ссылки для шагов 2 и 3: Как полностью удалить пакет ?, Каков правильный способ полностью удалить приложение ?, Как полностью удалить файлы конфигурации

Возможная будущая переустановка

В этом пакете могут быть библиотеки вам действительно нужно в будущем, и вам может потребоваться переустановить его. Ubuntu поставляется с установленным libapache2-mod-wsgi-py3, который походит на версию по умолчанию, поэтому я предполагаю, что он не мог хорошо играть с любой версией Python, которую вы использовали. Если вы хотите узнать больше, проверьте вывод which python и ps -fA | grep python ... Если конфликт с версией Python действительно был проблемой, тогда удивительный ответ и этот адрес, как вы можете правильно установите mod-wgsi через pip (установка пакетов пакета называется mod_wgsi).

0
ответ дан 23 July 2018 в 17:01

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

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