Можно ли отключить (заморозить) пакет?

Я очень хочу знать, можно ли отключить некоторые пакеты в Ubuntu, подобно тому, как мы можем заморозить или отключить приложение в Android.

i.e. Пакет установлен, но не используется, пока он не будет повторно активирован.

N.B. Я не прошу только «отключить обновление», я спрашиваю о «отключении пакета».

Если это возможно, тогда как мы можем это сделать?

2
задан 3 November 2017 в 23:25

12 ответов

Linux не запускает приложения, которые вам не нужны, и держите их в ОЗУ, как Android, чтобы они могли получать push-сообщения и тому подобное. Так что замораживание пакетов не требуется.

Для многих приложений, если вы не запустили приложение, оно не будет запущено.

Если вы действительно склонны избавляться от пакета, его удаление (и его установка по мере необходимости) возможно для несущественных приложений, но как и в других дистрибутивах Linux, пакеты на Ubuntu зависят от других пакетов, а также от других пакетов, которые зависят от них, поэтому при установке или удалении пакета другие пакеты могут быть автоматически установлены как зависимости (или замены) или удалены, поскольку они зависят от пакет, который вы удаляете. Удаление пакета со многими зависимостями или что важно для правильной работы системы, может сильно нарушить работу системы. Все это обрабатывается системой управления пакетами. Чтобы увидеть, что произойдет, когда вы запустите определенную команду установки или удаления, используйте параметр -s или --simulate в APT, например

apt remove <package> -s

, это покажет, что будет сделано без на самом деле что-то делает.

Некоторые программы работают в фоновом режиме как службы. В этих случаях вы можете использовать команду systemctl (часть интерфейса systemd, чтобы остановить и отключить их (отключение запрещает запуск службы при загрузке). Еще раз вам нужно быть осторожным здесь, поскольку службы могут также зависят друг от друга, и остановка или отключение важного сервиса может негативно повлиять на функциональность и стабильность вашей системы. Однако systemd запустит службы, которые вы отключили, если на них влияют другие сервисы, поэтому это менее разрушительно, чем управление пакетами .

Вот примеры того, как остановить, включить, отключить и запустить службы.

включение службы: включение службы не запускает ее автоматически, вам нужно использовать start для этого или добавьте флаг --now или перезагрузите компьютер, чтобы он вступил в силу.
sudo systemctl enable <service-name>
отключить службу: отключение службы не останавливает ее немедленно, для этого вам нужно использовать stop, или добавьте флаг --now или перезагрузите компьютер.
sudo systemctl disable <service-name>
запуск службы: запуск службы не активирует ее по умолчанию (это для команды enable), но сразу же запускает службу, если ее можно запустить.
sudo systemctl start <service-name>
остановка службы: остановка службы не отключает службу, которая была включена, но останавливает ее пока до следующей перезагрузки.
sudo systemctl stop <service-name>
перезапуск службы: перезапускает службу, но, как и команды start и stop, не влияет на загрузку и загрузку службы при загрузке (поведение контролируется командами enable disable.
sudo systemctl restart <service-name>
]
5
ответ дан 22 May 2018 в 17:07
  • 1
    Я не согласен. Некоторые пакеты устанавливают службы, которые запускаются во время загрузки. Таким образом, замораживание имеет смысл для некоторых из них. Например, приложение базы данных – Anwar 3 November 2017 в 10:21
  • 2
    Тогда отключение службы будет правильным подходом или деинсталляцией, но я предполагаю, что при использовании приложения базы данных, которое на самом деле нуждается в базе данных, вы можете не захотеть заморозить процесс / обслуживание базы данных. – Videonauth 3 November 2017 в 10:27
  • 3
    Да, но это всего лишь пример. Некоторые приложения устанавливают службы, меню рабочего стола, элементы меню, модификации ui и т. Д. – Anwar 3 November 2017 в 14:00

Linux не запускает приложения, которые вам не нужны, и держите их в ОЗУ, как Android, чтобы они могли получать push-сообщения и тому подобное. Так что замораживание пакетов не требуется.

Для многих приложений, если вы не запустили приложение, оно не будет запущено.

Если вы действительно склонны избавляться от пакета, его удаление (и его установка по мере необходимости) возможно для несущественных приложений, но как и в других дистрибутивах Linux, пакеты на Ubuntu зависят от других пакетов, а также от других пакетов, которые зависят от них, поэтому при установке или удалении пакета другие пакеты могут быть автоматически установлены как зависимости (или замены) или удалены, поскольку они зависят от пакет, который вы удаляете. Удаление пакета со многими зависимостями или что важно для правильной работы системы, может сильно нарушить работу системы. Все это обрабатывается системой управления пакетами. Чтобы увидеть, что произойдет, когда вы запустите определенную команду установки или удаления, используйте параметр -s или --simulate в APT, например

apt remove <package> -s

, это покажет, что будет сделано без на самом деле что-то делает.

Некоторые программы работают в фоновом режиме как службы. В этих случаях вы можете использовать команду systemctl (часть интерфейса systemd, чтобы остановить и отключить их (отключение запрещает запуск службы при загрузке). Еще раз вам нужно быть осторожным здесь, поскольку службы могут также зависят друг от друга, и остановка или отключение важного сервиса может негативно повлиять на функциональность и стабильность вашей системы. Однако systemd запустит службы, которые вы отключили, если на них влияют другие сервисы, поэтому это менее разрушительно, чем управление пакетами .

Вот примеры того, как остановить, включить, отключить и запустить службы.

включение службы: включение службы не запускает ее автоматически, вам нужно использовать start для этого или добавьте флаг --now или перезагрузите компьютер, чтобы он вступил в силу. sudo systemctl enable <service-name> отключить службу: отключение службы не останавливает ее немедленно, для этого вам нужно использовать stop, или добавьте флаг --now или перезагрузите компьютер. sudo systemctl disable <service-name> запуск службы: запуск службы не активирует ее по умолчанию (это для команды enable), но сразу же запускает службу, если ее можно запустить. sudo systemctl start <service-name> остановка службы: остановка службы не отключает службу, которая была включена, но останавливает ее пока до следующей перезагрузки. sudo systemctl stop <service-name> перезапуск службы: перезапускает службу, но, как и команды start и stop, не влияет на загрузку и загрузку службы при загрузке (поведение контролируется командами enable disable. sudo systemctl restart <service-name> ]
5
ответ дан 18 July 2018 в 04:31

Linux не запускает приложения, которые вам не нужны, и держите их в ОЗУ, как Android, чтобы они могли получать push-сообщения и тому подобное. Так что замораживание пакетов не требуется.

Для многих приложений, если вы не запустили приложение, оно не будет запущено.

Если вы действительно склонны избавляться от пакета, его удаление (и его установка по мере необходимости) возможно для несущественных приложений, но как и в других дистрибутивах Linux, пакеты на Ubuntu зависят от других пакетов, а также от других пакетов, которые зависят от них, поэтому при установке или удалении пакета другие пакеты могут быть автоматически установлены как зависимости (или замены) или удалены, поскольку они зависят от пакет, который вы удаляете. Удаление пакета со многими зависимостями или что важно для правильной работы системы, может сильно нарушить работу системы. Все это обрабатывается системой управления пакетами. Чтобы увидеть, что произойдет, когда вы запустите определенную команду установки или удаления, используйте параметр -s или --simulate в APT, например

apt remove <package> -s

, это покажет, что будет сделано без на самом деле что-то делает.

Некоторые программы работают в фоновом режиме как службы. В этих случаях вы можете использовать команду systemctl (часть интерфейса systemd, чтобы остановить и отключить их (отключение запрещает запуск службы при загрузке). Еще раз вам нужно быть осторожным здесь, поскольку службы могут также зависят друг от друга, и остановка или отключение важного сервиса может негативно повлиять на функциональность и стабильность вашей системы. Однако systemd запустит службы, которые вы отключили, если на них влияют другие сервисы, поэтому это менее разрушительно, чем управление пакетами .

Вот примеры того, как остановить, включить, отключить и запустить службы.

включение службы: включение службы не запускает ее автоматически, вам нужно использовать start для этого или добавьте флаг --now или перезагрузите компьютер, чтобы он вступил в силу. sudo systemctl enable <service-name> отключить службу: отключение службы не останавливает ее немедленно, для этого вам нужно использовать stop, или добавьте флаг --now или перезагрузите компьютер. sudo systemctl disable <service-name> запуск службы: запуск службы не активирует ее по умолчанию (это для команды enable), но сразу же запускает службу, если ее можно запустить. sudo systemctl start <service-name> остановка службы: остановка службы не отключает службу, которая была включена, но останавливает ее пока до следующей перезагрузки. sudo systemctl stop <service-name> перезапуск службы: перезапускает службу, но, как и команды start и stop, не влияет на загрузку и загрузку службы при загрузке (поведение контролируется командами enable disable. sudo systemctl restart <service-name> ]
5
ответ дан 24 July 2018 в 18:06

Linux, в отличие от Android, который имеет нечто похожее на тюрьму между различными пакетами, использует совместно используемые библиотеки между пакетами. Если вы смогли отключить пакет, было бы непонятно, с каких компонентов вы удаляете функциональность.

Как уже упоминалось, у вас есть возможность удалить пакеты, которые вы не хотите, для вы не хотите, чтобы он был включен. Таким образом, пакет и все библиотеки, используемые исключительно им, будут удалены. Библиотеки, которые используются другими пакетами, не будут удалены.

Многие пакеты используют службы

. Существует возможность включить или отключить службы или установить, чтобы службы выполнялись только в том случае, если вы активно запустите его. Пакеты, которые используют службы при нормальных обстоятельствах, будут запускаться после установки пакета и будут включены при запуске по умолчанию.

Примером этого является Многие пакеты используют службы .

Использовать systemctl для запуска, остановки, включения, отключения служб

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

(Это команда и вывод для проверки установки и состояния Apache 2. Он фильтрует список всех установленных пакетов для apache2.)

$ systemctl | egrep apache2
apache2.service                    loaded active running   LSB: Apache2 web server

Использовать systemctl для запуска, остановки, включения, отключения служб

Заменить вариант одним из следующих: status start, stop, restart, disable, enable.

(Команда и вывод статуса службы)

$ sudo systemctrl status apache2
● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Tue 2017-10-31 12:14:42 EDT; 2 days ago
     Docs: man:systemd-sysv-generator(8)
  Process: 17861 ExecReload=/etc/init.d/apache2 reload (code=exited, status=0/SUCCESS)
  Process: 1864 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/apache2.service
           ├─ 2119 /usr/sbin/apache2 -k start
           ├─17909 /usr/sbin/apache2 -k start
           ├─21395 /usr/sbin/apache2 -k start
           ├─21397 /usr/sbin/apache2 -k start
           ├─21398 /usr/sbin/apache2 -k start
           ├─21399 /usr/sbin/apache2 -k start
           ├─21400 /usr/sbin/apache2 -k start
           ├─21401 /usr/sbin/apache2 -k start
           ├─21402 /usr/sbin/apache2 -k start
           ├─21403 /usr/sbin/apache2 -k start
           └─31543 /usr/sbin/apache2 -k start

Oct 31 12:14:42 ubunzeus apache2[1864]:  *
Oct 31 12:14:42 ubunzeus systemd[1]: Started LSB: Apache2 web server.
Nov 01 07:35:02 ubunzeus systemd[1]: Reloading LSB: Apache2 web server.
Nov 01 07:35:02 ubunzeus apache2[759]:  * Reloading Apache httpd web server apache2
Nov 01 07:35:02 ubunzeus apache2[759]:  *
Nov 01 07:35:02 ubunzeus systemd[1]: Reloaded LSB: Apache2 web server.
Nov 02 07:35:03 ubunzeus systemd[1]: Reloading LSB: Apache2 web server.
Nov 02 07:35:03 ubunzeus apache2[17861]:  * Reloading Apache httpd web server apache2
Nov 02 07:35:04 ubunzeus apache2[17861]:  *
Nov 02 07:35:04 ubunzeus systemd[1]: Reloaded LSB: Apache2 web server.

Вы можете сделать то же самое с любым из более ста сервисов, которые установлены и включены при установке Ubuntu по умолчанию. Или, устанавливается и активируется при установке пакета, например, Apache2, Openssh-server, Mysql, Plexmedia Server и т. Д.

Вы можете отключить ssh без удаления openssh-server:

$ sudo systemctl disable sshd

Вход ssh будет заблокирован (заморожен), пока вы не сможете его повторно использовать, используя опцию enable в systemctl.

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

Быстрый ответ

Вы можете отключить (заморозить) пакеты, отключив услуги пакета.

2
ответ дан 22 May 2018 в 17:07

Если это обычное приложение, вы можете удалить исполняемые права на него, что делает его «непригодным для использования». Вы можете сделать это так (я использую /usr/bin/gedit в качестве примера здесь):

$ sudo chmod -x /usr/bin/gedit

Если вам нужно использовать его снова:

$ sudo chmod +x /usr/bin/gedit

Для systemd единиц, см. другие ответы.

2
ответ дан 22 May 2018 в 17:07

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

1
ответ дан 22 May 2018 в 17:07

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

1
ответ дан 18 July 2018 в 04:31

Linux, в отличие от Android, который имеет нечто похожее на тюрьму между различными пакетами, использует совместно используемые библиотеки между пакетами. Если вы смогли отключить пакет, было бы непонятно, с каких компонентов вы удаляете функциональность.

Как уже упоминалось, у вас есть возможность удалить пакеты, которые вы не хотите, для вы не хотите, чтобы он был включен. Таким образом, пакет и все библиотеки, используемые исключительно им, будут удалены. Библиотеки, которые используются другими пакетами, не будут удалены.

Многие пакеты используют службы

. Существует возможность включить или отключить службы или установить, чтобы службы выполнялись только в том случае, если вы активно запустите его. Пакеты, которые используют службы при нормальных обстоятельствах, будут запускаться после установки пакета и будут включены при запуске по умолчанию.

Примером этого является Многие пакеты используют службы .

Использовать systemctl для запуска, остановки, включения, отключения служб

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

(Это команда и вывод для проверки установки и состояния Apache 2. Он фильтрует список всех установленных пакетов для apache2.)

$ systemctl | egrep apache2 apache2.service loaded active running LSB: Apache2 web server

Использовать systemctl для запуска, остановки, включения, отключения служб

Заменить вариант одним из следующих: status start, stop, restart, disable, enable.

(Команда и вывод статуса службы)

$ sudo systemctrl status apache2 ● apache2.service - LSB: Apache2 web server Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: active (running) since Tue 2017-10-31 12:14:42 EDT; 2 days ago Docs: man:systemd-sysv-generator(8) Process: 17861 ExecReload=/etc/init.d/apache2 reload (code=exited, status=0/SUCCESS) Process: 1864 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS) CGroup: /system.slice/apache2.service ├─ 2119 /usr/sbin/apache2 -k start ├─17909 /usr/sbin/apache2 -k start ├─21395 /usr/sbin/apache2 -k start ├─21397 /usr/sbin/apache2 -k start ├─21398 /usr/sbin/apache2 -k start ├─21399 /usr/sbin/apache2 -k start ├─21400 /usr/sbin/apache2 -k start ├─21401 /usr/sbin/apache2 -k start ├─21402 /usr/sbin/apache2 -k start ├─21403 /usr/sbin/apache2 -k start └─31543 /usr/sbin/apache2 -k start Oct 31 12:14:42 ubunzeus apache2[1864]: * Oct 31 12:14:42 ubunzeus systemd[1]: Started LSB: Apache2 web server. Nov 01 07:35:02 ubunzeus systemd[1]: Reloading LSB: Apache2 web server. Nov 01 07:35:02 ubunzeus apache2[759]: * Reloading Apache httpd web server apache2 Nov 01 07:35:02 ubunzeus apache2[759]: * Nov 01 07:35:02 ubunzeus systemd[1]: Reloaded LSB: Apache2 web server. Nov 02 07:35:03 ubunzeus systemd[1]: Reloading LSB: Apache2 web server. Nov 02 07:35:03 ubunzeus apache2[17861]: * Reloading Apache httpd web server apache2 Nov 02 07:35:04 ubunzeus apache2[17861]: * Nov 02 07:35:04 ubunzeus systemd[1]: Reloaded LSB: Apache2 web server.

Вы можете сделать то же самое с любым из более ста сервисов, которые установлены и включены при установке Ubuntu по умолчанию. Или, устанавливается и активируется при установке пакета, например, Apache2, Openssh-server, Mysql, Plexmedia Server и т. Д.

Вы можете отключить ssh без удаления openssh-server:

$ sudo systemctl disable sshd

Вход ssh будет заблокирован (заморожен), пока вы не сможете его повторно использовать, используя опцию enable в systemctl.

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

Быстрый ответ

Вы можете отключить (заморозить) пакеты, отключив услуги пакета.

2
ответ дан 18 July 2018 в 04:31

Если это обычное приложение, вы можете удалить исполняемые права на него, что делает его «непригодным для использования». Вы можете сделать это так (я использую /usr/bin/gedit в качестве примера здесь):

$ sudo chmod -x /usr/bin/gedit

Если вам нужно использовать его снова:

$ sudo chmod +x /usr/bin/gedit

Для systemd единиц, см. другие ответы.

2
ответ дан 18 July 2018 в 04:31

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

1
ответ дан 24 July 2018 в 18:06

Linux, в отличие от Android, который имеет нечто похожее на тюрьму между различными пакетами, использует совместно используемые библиотеки между пакетами. Если вы смогли отключить пакет, было бы непонятно, с каких компонентов вы удаляете функциональность.

Как уже упоминалось, у вас есть возможность удалить пакеты, которые вы не хотите, для вы не хотите, чтобы он был включен. Таким образом, пакет и все библиотеки, используемые исключительно им, будут удалены. Библиотеки, которые используются другими пакетами, не будут удалены.

Многие пакеты используют службы

. Существует возможность включить или отключить службы или установить, чтобы службы выполнялись только в том случае, если вы активно запустите его. Пакеты, которые используют службы при нормальных обстоятельствах, будут запускаться после установки пакета и будут включены при запуске по умолчанию.

Примером этого является Многие пакеты используют службы .

Использовать systemctl для запуска, остановки, включения, отключения служб

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

(Это команда и вывод для проверки установки и состояния Apache 2. Он фильтрует список всех установленных пакетов для apache2.)

$ systemctl | egrep apache2 apache2.service loaded active running LSB: Apache2 web server

Использовать systemctl для запуска, остановки, включения, отключения служб

Заменить вариант одним из следующих: status start, stop, restart, disable, enable.

(Команда и вывод статуса службы)

$ sudo systemctrl status apache2 ● apache2.service - LSB: Apache2 web server Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: active (running) since Tue 2017-10-31 12:14:42 EDT; 2 days ago Docs: man:systemd-sysv-generator(8) Process: 17861 ExecReload=/etc/init.d/apache2 reload (code=exited, status=0/SUCCESS) Process: 1864 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS) CGroup: /system.slice/apache2.service ├─ 2119 /usr/sbin/apache2 -k start ├─17909 /usr/sbin/apache2 -k start ├─21395 /usr/sbin/apache2 -k start ├─21397 /usr/sbin/apache2 -k start ├─21398 /usr/sbin/apache2 -k start ├─21399 /usr/sbin/apache2 -k start ├─21400 /usr/sbin/apache2 -k start ├─21401 /usr/sbin/apache2 -k start ├─21402 /usr/sbin/apache2 -k start ├─21403 /usr/sbin/apache2 -k start └─31543 /usr/sbin/apache2 -k start Oct 31 12:14:42 ubunzeus apache2[1864]: * Oct 31 12:14:42 ubunzeus systemd[1]: Started LSB: Apache2 web server. Nov 01 07:35:02 ubunzeus systemd[1]: Reloading LSB: Apache2 web server. Nov 01 07:35:02 ubunzeus apache2[759]: * Reloading Apache httpd web server apache2 Nov 01 07:35:02 ubunzeus apache2[759]: * Nov 01 07:35:02 ubunzeus systemd[1]: Reloaded LSB: Apache2 web server. Nov 02 07:35:03 ubunzeus systemd[1]: Reloading LSB: Apache2 web server. Nov 02 07:35:03 ubunzeus apache2[17861]: * Reloading Apache httpd web server apache2 Nov 02 07:35:04 ubunzeus apache2[17861]: * Nov 02 07:35:04 ubunzeus systemd[1]: Reloaded LSB: Apache2 web server.

Вы можете сделать то же самое с любым из более ста сервисов, которые установлены и включены при установке Ubuntu по умолчанию. Или, устанавливается и активируется при установке пакета, например, Apache2, Openssh-server, Mysql, Plexmedia Server и т. Д.

Вы можете отключить ssh без удаления openssh-server:

$ sudo systemctl disable sshd

Вход ssh будет заблокирован (заморожен), пока вы не сможете его повторно использовать, используя опцию enable в systemctl.

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

Быстрый ответ

Вы можете отключить (заморозить) пакеты, отключив услуги пакета.

2
ответ дан 24 July 2018 в 18:06

Если это обычное приложение, вы можете удалить исполняемые права на него, что делает его «непригодным для использования». Вы можете сделать это так (я использую /usr/bin/gedit в качестве примера здесь):

$ sudo chmod -x /usr/bin/gedit

Если вам нужно использовать его снова:

$ sudo chmod +x /usr/bin/gedit

Для systemd единиц, см. другие ответы.

2
ответ дан 24 July 2018 в 18:06

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

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