Как проверить, безопасно ли удалить библиотеку?

Мои извинения. Кажется, это известная проблема в двоичном файле, который я пытаюсь запустить без головы (casparcg). См .: https://github.com/CasparCG/Server/issues/529

Предлагаемый обходной путь - установить screen (или tmux) для запуска терминала в автономном режиме. У меня он работает с экраном.

  1. Экран установки:

    sudo apt install screen

  2. Это строка кода для использования в службе systemd после установки:

    screen -d -m /path/to/your/script.sh

-d отключает терминал, -m игнорирует $ STY.

  1. Настройте службу systemd соответствующим образом:

    [Unit]
    Description = Запускает Caspar CG

    { {1}}

    [Служба]
    Тип = разветвление
    Среда = DISPLAY =: 0
    StandardOutput = null
    ExecStart = / bin / sh -c "screen -d - m /usr/bin/start_caspar.sh "--watch
    Restart = on-failure
    User = broadcastingza

    [ Установить]
    WantedBy = multi-user.target graphical.target

Теперь я могу запустить сервер отдельно.

Спасибо за помощь!

4
13.12.2016, 22:56
4 ответа

Вам, вероятно, следует позволить диспетчеру пакетов вашего дистрибутива решить, безопасно ли его удалить или нет.

Может быть, попробовать удалить его с помощью apt-get remove libgme0 и посмотреть, не хочет ли он удалить другие пакеты?

8
27.01.2020, 20:46

Короткий ответ

Нет.

Длинный ответ

Нет. Потому что это не полный список двоичных файлов, которые могут использовать эту библиотеку. Двоичные файлы могут существовать в любом месте вашей файловой системы. Стандартные места расположения двоичных файлов включают /bin, /bin/sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin. Однако вполне вероятно, что некоторые пакеты устанавливают исполняемые файлы в другие места, например, /opt. Кроме того, пользователи могут размещать их практически везде в своем домашнем каталоге, и вы не можете контролировать это, если у вас недостаточно привилегий. Если вы действительно хотите перечислить все исполняемые файлы в вашей файловой системе, вот более безопасная команда:

find / -type f -perm -100

Но опять же, для этого нужны привилегии. Как вы можете ожидать, проверка библиотеки на отсутствие ее использования какими-либо двоичными файлами таким способом может быть долгим и утомительным процессом.

Однако, если вы используете менеджер пакетов, то он вам поможет. Любой нетривиальный менеджер пакетов может помочь вам составить список зависимостей библиотек. Например, следующие команды показывают библиотечные зависимости пакета wget:

Debian/Ubuntu:

apt-cache show wget

Arch:

pacman -Qi wget

Обычно менеджеры пакетов также предотвращают деинсталляцию пакета библиотек, который может использоваться в данный момент.

Использование менеджера пакетов - это правильный способ поддержания библиотечных зависимостей. Если вам действительно нужны программы, которые не предлагаются в вашем дистрибутиве, и вам нужно компилировать из исходных текстов, оставьте выходные двоичные файлы и библиотеки в каталогах с префиксом /usr/local (например, /usr/local/bin, /usr/local/sbin и /usr/local/lib. Это значительно облегчит вашу работу в случае, если вы захотите удалить библиотеку в будущем, потому что пакеты, поддерживаемые менеджером пакетов, не будут зависеть от библиотек в /usr/local.

1
27.01.2020, 20:46

Файлы в папке / bin , / lib , / sbin или / usr , за исключением / usr / local , находятся под управлением диспетчера пакетов. Никогда не изменяйте и не удаляйте эти файлы вручную.

Чтобы проверить, используется ли библиотека из каталога / lib или / usr / lib , сначала определите, в каком пакете она содержится. В Linux Mint запустите dpkg -S /usr/lib/libgme.so.*. Затем определите, какие установленные пакеты зависят от пакета библиотеки; вы можете использовать поиск aptitude '~ i ~ Dlibgme0' . Если это возвращает какие-либо совпадения, значит, библиотека используется, и вы не можете удалить ее, не нарушив работу вашей системы (если вы не используете какой-либо из пакетов, зависящих от нее, и в этом случае вы можете удалить библиотеку, если удалите эти другие пакеты тоже).В качестве альтернативы, запросите удаление пакета ( sudo apt-get remove libgme0 ) и посмотрите, что еще будет удалено вместе с ним.

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

APT, инструмент управления пакетами, используемый в Mint (и Debian, Ubuntu, elementary OS и др.), Имеет механизм пометки пакетов как «автоматически установленных» (в зависимости от другого пакета) или «установленных вручную». Вы можете запустить apt-get autoremove , чтобы удалить все пакеты, которые помечены как автоматически установленные и которые в настоящее время не требуются никаким установленным вручную пакетам. Обязательно просмотрите список пакетов, которые предлагается удалить: иногда пакет устанавливается автоматически, но вы действительно этого хотите. Используйте apt-mark или Aptitude, чтобы установить для пакета флаг manual / auto.

4
27.01.2020, 20:46

Нет, это не достаточное доказательство того, что он не используется и его можно безопасно удалить.

Двоичные файлы, использующие библиотеку, могут находиться в других местах, кроме / bin, / sbin, / usr / bin, / usr / sbin.

2
27.01.2020, 20:46

Теги

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