TL; DR : много серых областей, и это зависит от того, что вы делаете. В основном, Software Center и методы командной строки делают схожие вещи, когда речь идет о .deb
пакетах, но для других пакетов программного обеспечения могут потребоваться другие шаги.
Какая разница между установкой программного обеспечения в программном центре Ubuntu и командной строке?
Вот реальность: установка - это не что иное, как сброс файлов, поставляемых с программным пакетом, в соответствующие каталоги. Неважно, если это делается через командную строку или через Центр программного обеспечения - они делают то же самое - выбрасывает файлы в соответствующие каталоги. Однако важен пакет и то, как вы с ним справляетесь. Здесь я расскажу о некоторых основных пакетах, с которыми вы можете работать в Ubuntu. Что касается разницы между командной строкой и Центром программного обеспечения, то самое основное отличие состоит в том, что в Центре программного обеспечения вы нажимаете кнопки; в командной строке вы вводите команды. Я знаю, что Software Center использует много кода на Python, но в командной строке это зависит от используемой вами утилиты. Также есть количество того, сколько Software Center может удалить (об этом читайте ниже)
Пакеты программного обеспечения для Ubuntu могут быть тремя способами: .deb
файл, .run
файл и просто необработанный исходный код в сжатом виде zip
или в tar
архиве. В зависимости от того, с кем вы имеете дело, установка из командной строки может быть более или менее болезненной. Это не то, о чем вы, как новый пользователь, должны беспокоиться, по крайней мере, в первый год использования Linux.
Вы увидите в основном .deb
файлы - это предварительно скомпилированные пакеты программного обеспечения, готовые к использованию. Это менее болезненно. Они также очень часто указывают зависимости - другое программное обеспечение, без которого ваша программа не будет работать. Утилиты командной строки, такие как apt
и apt-get
установят зависимости автоматически для вас. На самом деле, Software Center использует в apt-get
качестве серверной части, поэтому он также устанавливает зависимости автоматически.
.run
файлы, как правило, проприетарные и закодированные двоичные файлы. Вы действительно не можете видеть, что они делают.
С необработанным исходным кодом вы должны делать все самостоятельно - создавать программное обеспечение и устанавливать зависимости.
Существуют также способы установки пакетов из других дистрибутивов, например .rpm
пакетов, но это делается очень и очень редко.
Также существует класс программного обеспечения, известного как контейнеры. Есть докер и lxd
контейнеры. В последнее время в Ubuntu появилось нечто, известное как snap
пакеты. Что хорошего во всех этих? Они могут работать где угодно, надежно изолированы от вашей основной системы и могут быть установлены / переустановлены довольно быстро. Эти типы программного обеспечения не могут быть установлены через Центр программного обеспечения и, как правило, для профессиональных системных администраторов или технических / опытных пользователей. Как новый пользователь, вам не нужно беспокоиться об этом, просто знайте, что они существуют, и они потрясающие :)
Наконец, что-то вроде скрипта (и, как правило, одного файла) также может рассматриваться как приложение, и опять же - установка - это не более чем выброс файла, где он принадлежит или должен принадлежать.
Почему некоторые программы, которые я установил с помощью командной строки, не могут быть найдены в центре программного обеспечения (нажмите клавишу окна)?
Опять же, это действительно зависит от пакета. Если разработчики программного обеспечения решили включить .desktop
файл в свой пакет, вы сможете искать его в Dash. .desktop
файлы похожи на ярлыки Windows, хотя они делают гораздо больше. Хорошим примером утилиты командной строки, которая поставляется с .desktop
файлом, является Byobu - очень удобная программа для разделения терминала на дополнительные вкладки / окна.
Однако вы можете создать свой собственный .desktop
файл для каждой программы и поместить его в ~/.local/share/applications/
папку.
Опять же, это не имеет ничего общего с приложением, являющимся командной строкой или графическим интерфейсом. Это зависит от выбора разработчиков приложений
Каковы правильные команды для установки программного обеспечения из командной строки, чтобы я мог их искать?
Опять же, зависит от того, что вы делаете. Если вы устанавливаете программное обеспечение из официальных репозиториев Ubuntu, то вы можете просто сделатьsudo apt-get install my-software
Если вы устанавливаете .deb
пакет, вы можете использовать либо dpkg
команду, либо apt-get
. Вот пример моей установки пакета deb для google-chrome с помощью apt-get. ПРИМЕЧАНИЕ : в момент установки я нахожусь в том же каталоге, что и .deb
файл, поэтому необходимо указать ./
часть
$ sudo apt-get install ./google-chrome-stable_current_amd64.deb
[sudo] password for xieerqi:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'google-chrome-stable' instead of './google-chrome-stable_current_amd64.deb'
The following NEW packages will be installed:
google-chrome-stable
0 upgraded, 1 newly installed, 0 to remove and 54 not upgraded.
Need to get 0 B/50.0 MB of archives.
After this operation, 190 MB of additional disk space will be used.
Get:1 /home/xieerqi/下载/google-chrome-stable_current_amd64.deb google-chrome-stable amd64 53.0.2785.101-1 [50.0 MB]
Selecting previously unselected package google-chrome-stable.
(Reading database ... 476104 files and directories currently installed.)
Preparing to unpack .../google-chrome-stable_current_amd64.deb ...
Unpacking google-chrome-stable (53.0.2785.101-1) ...
Processing triggers for menu (2.1.47ubuntu1) ...
Processing triggers for bamfdaemon (0.5.3~bzr0+16.04.20160701-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for gnome-menus (3.13.3-6ubuntu3.1) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu5) ...
Processing triggers for mime-support (3.59ubuntu1) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up google-chrome-stable (53.0.2785.101-1) ...
update-alternatives: using /usr/bin/google-chrome-stable to provide /usr/bin/x-www-browser (x-www-browser) in auto mode
update-alternatives: using /usr/bin/google-chrome-stable to provide /usr/bin/gnome-www-browser (gnome-www-browser) in auto mode
update-alternatives: using /usr/bin/google-chrome-stable to provide /usr/bin/google-chrome (google-chrome) in auto mode
Processing triggers for menu (2.1.47ubuntu1) .
Что хорошего apt-get
? Он имеет --purge
опцию, которая позволяет вам удалить все, что связано с программой. Например, если я просто удаляю его с помощью sudo apt-get remove google-chrome-stable
или делаю это через Центр программного обеспечения, он может оставить конфигурационные файлы, чтобы при переустановке программного обеспечения оно было готово к использованию, как и раньше. --purge
опция удалит также файлы конфигурации. Это удобно, если ваше программное обеспечение сломалось, и вы хотите установить его заново. Центр программного обеспечения не делает этого, так что это еще одно отличие.
Если вы имеете дело с .run
файлом, вам нужно сделать этот файл исполняемым и запустить его. Нравится:
$ sudo chmod +x ./software.run
$ sudo ./software.run
Я сделал резервную копию и восстановил свою систему один раз, но некоторые команды работали раньше (например, «subl»), не работают после восстановления системы.
Это зависит от типа резервного копирования, который вы сделали. Если ваша резервная копия содержит все файлы, необходимые subl
для работы, то она должна работать. Также может быть, что ваша резервная копия subl
произошла до того, как была установлена. Убедитесь, что вы правильно настроили резервную копию
Я думаю, что эти вопросы как-то касаются $ PATH, но я не могу найти материал по этому поводу. Любой дополнительный материал будет оценен.
$PATH
Переменное имеет отношение к оболочке (интерпретатор команд , где вы положили команду). Это не очень важно для Unity Dash. $PATH
Переменная - это действительно список каталогов, где оболочка будет искать программы, для которых установлен исполняемый набор разрешений. Dash действительно касается .desktop
только файлов. Например, я могу заставить программу сидеть в /usr/bin
папке и открывать ее через командную строку, но Dash не будет, потому что .desktop
для нее нет соответствующего файла.
Если вы хотите найти дополнительный материал о $PATH
, буквально возьмите любую книгу о сценариях оболочки Linux. Это один из базовых элементов знаний для любого пользователя Linux, который хочет использовать командную строку.
Несколько заключительных мыслей : сложность установки программного обеспечения для Linux может иногда шокировать новых пользователей, которые выходят из мира Windows или Mac. На самом деле, это те же принципы - брось все туда, где оно есть, и это сработает. Вы не нашли ярлык для своей программы? Сделать один - это просто текстовый файл! Компьютеры - это машины, и они предназначены для эксплуатации. Windows также имеет %PATH%
переменную для своей командной строки, вы просто никогда не знали об этом, потому что командная строка Windows менее гибкая и менее используемая, чем в Linux. Короче говоря, не пугайтесь всего, что вы видите, потому что на ежедневной основе это все около 20% наиболее часто используемых команд или действий, и они дают вам 80% выполненной работы.