Установленные пакеты – все ли они исполняемые?

Вопрос или проблема

Используя apt list --installed, я получил список установленных пакетов. У меня много времени, и я хотел просмотреть список и увидеть, что к чему. Все ли они исполняемые? Я вижу, что accountsservice первый в списке, но, насколько я вижу, он не исполняемый. Он просто возвращает команда не найдена. Третий в списке — adduser, и он исполняемый. Я знаю, что это тоже отдельная команда.

Являются ли некоторые из них системными приложениями, которые могут вызываться только ОС и не могут исполняться самостоятельно?

Пакеты не являются непосредственно исполняемыми.

Пакеты содержат группы файлов. Некоторые из этих файлов являются исполняемыми. Некоторые — нет.

Пример: давайте посмотрим на пакет hello.

$ dpkg -L hello
/usr/bin/hello
/usr/share/doc/hello/NEWS.gz
/usr/share/doc/hello/changelog.Debian.gz
/usr/share/doc/hello/copyright
/usr/share/info/hello.info.gz
/usr/share/man/man1/hello.1.gz

В этом примере один файл /usr/bin/hello в пакете является исполняемым. Остальные пять файлов в пакете не являются исполняемыми.

Исполняемый hello имеет то же имя, что и пакет hello. Эта схожесть не является обязательной. Исполняемые файлы и пакеты иногда имеют разные имена.

Исполнение зависит от типа пакета и его системы:

В Linux или macOS: .so (разделяемые объекты) или .dylib (динамические библиотеки), которые не являются непосредственно исполняемыми, но предоставляют код для других программ.

В Windows: .dll (библиотеки динамической компоновки) и .exe (исполняемые файлы), но не все .exe файлы предназначены для прямого выполнения.

Ответ или решение

Установленные пакеты: являются ли они исполняемыми?

Когда вы используете команду apt list --installed, вы получаете список всех установленных пакетов в вашей системе. Важно понять, что сами пакеты не являются исполняемыми. Под установленным пакетом подразумевается группа файлов, которая может включать исполняемые файлы, библиотеки, конфигурационные файлы и документацию.

Разделение файлов в пакетах

Рассмотрим вышеупомянутый пакет hello для более подробного объяснения:

$ dpkg -L hello
/usr/bin/hello
/usr/share/doc/hello/NEWS.gz
/usr/share/doc/hello/changelog.Debian.gz
/usr/share/doc/hello/copyright
/usr/share/info/hello.info.gz
/usr/share/man/man1/hello.1.gz

Из данного вывода видно, что только один файл, находящийся в каталоге /usr/bin, является исполняемым (/usr/bin/hello). Остальные файлы содержат документацию и информацию, которая не может быть исполнена непосредственно.

Исполняемость и вызов

Контекст выполнения пакетов также зависит от их назначения и типа. В системах Linux и macOS существуют различные форматы файлов:

  • .so (общие библиотеки) и .dylib (динамические библиотеки) не являются напрямую исполняемыми, но предоставляют код для использования другими исполняемыми программами.

В Windows аналогично, существуют:

  • .dll (динамические библиотеки) и .exe (исполняемые файлы). Не все .exe файлы предназначены для непосредственного выполнения; некоторые из них могут быть созданы для запуска определённых приложений или сервисов.

Пакеты как система

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

Заключение

В заключение, можно сказать, что не все установленные пакеты в вашей системе являются исполняемыми. Они могут содержать как исполняемые файлы, так и другие типы файлов. Если вы хотите узнать о конкретном пакете, всегда можно использовать dpkg -L <package_name> для просмотра всех файлов, которые он включает. Это поможет вам прояснить, какие из них могут быть исполняемыми и как они могут быть использованы в контексте вашей системы.

Оцените материал
Добавить комментарий

Капча загружается...