Разница между установкой программного центра Ubuntu и командной строки [закрыто]

8

Привет, я новичок в мире убунту. У меня есть несколько вопросов об установке программного обеспечения в Ubuntu:

  1. Какая разница между установкой программного обеспечения в программном центре Ubuntu и командной строке?

  2. Почему некоторые программы, которые я установил с помощью командной строки, не могут быть найдены в центре программного обеспечения (нажмите клавишу окна)?

  3. Каковы правильные команды для установки программного обеспечения из командной строки, чтобы я мог их искать?

  4. Я сделал резервную копию и восстановил свою систему один раз, но некоторые команды работали раньше (например, «subl»), не работают после восстановления системы.

Я думаю, что эти вопросы как-то касаются $ PATH, но я не могу найти материал по этому поводу. Любой дополнительный материал будет оценен. :)

Энди
источник
1
Какие программы, установленные вами из командной строки, не отображаются в Центре программного обеспечения? Какую версию Ubuntu вы используете?
Анвар
2
@ Энди № 2 и 4 нужно больше подробностей, пожалуйста. Спасибо!
Edgy1
1
Добро пожаловать в Спросите Ubuntu! Приносим извинения, но Ask Ubuntu - это не форум, а сайт вопросов и ответов: он лучше всего работает, если вы задаете один вопрос, поэтому вы можете получить один ответ. Когда вы задаете несколько вопросов, вам нужно найти одного эксперта, разбирающегося в нескольких областях, что становится маловероятным, чем больше вопросов вы задаете, тем более один вопрос! ;-) Поэтому, пожалуйста, разделите ваш вопрос на несколько вопросов и напишите мне комментарий, чтобы я мог ответить на один из ваших вопросов.
Дэвид Фёрстер

Ответы:

9

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% выполненной работы.

Сергей Колодяжный
источник
1
На самом деле, многие пакеты - это больше, чем файлы, помещенные в некоторые каталоги. К аспектам установки, которые выходят за рамки этого, относятся зависимости, перестройка кешей и другие триггеры, настройка служб, запуск служб.
ВЫЙТИ - Anony-Mousse
The complexity of software installation for Linux may sometimes be shocking to new users who come from Windows or Mac worldзависит от того, как они их использовали. Я «установил» множество приложений, разархивировав их в Windows, и увидел, что многие инсталляторы буквально просто распаковывали где-то в Program Files. В Linux по большей части установка так же проста, как, скажем, в Windows. Только вместо загрузки и запуска .exeфайла вы будете делать это с помощью .deb. Или что угодно. И выполнение командной строки просто делает этот процесс для вас. Центр программного обеспечения представляет собой графический интерфейс на вершине.
ВЛАЗ
5
  1. Какая разница между установкой программного обеспечения в программном центре Ubuntu и командной строке?

Нет разницы в том, как установлено программное обеспечение. Но раньше было какое-то различие в том, какое программное обеспечение можно было установить до 15.10. Ubuntu Software Center в Trusty позволяет пользователям покупать приложения через него, и эти приложения обычно не могут быть установлены apt-get.

  1. Почему некоторые программы, которые я установил с помощью командной строки, не могут быть найдены в центре программного обеспечения (нажмите клавишу окна)?

Я думаю, что вы имеете в виду поиск с использованием Dash здесь (с помощью супер ключа). Dash, как правило, показывает только те программы, которые поставляются с графическим интерфейсом пользователя и имеют какую-то иконку (более конкретно, с файлом .desktop ). Они хороши для повседневного использования и будут отображаться в поиске тире. Но это не все ваши установленные приложения; В Ubuntu есть много приложений командной строки, которые не отображаются в Dash, потому что они не подходят для использования в качестве графических автономных приложений (и потому что они обычно не поставляются с файлом .desktop). Например, вы не увидите tarпрограмму в Dash.

Таким образом, если вы устанавливаете приложение из командной строки, оно вообще не будет отображаться в поиске Dash (ключ Windows). Поскольку вы не указали, какое приложение не отображается, это может быть общим ответом.

Примечание. Как отметил Сергей в комментарии, внешний вид значков в Dash зависит от файлов .desktop. Если приложение командной строки поставляется с файлом .desktop, оно также появится в тире. Я согласен с ним. Но это правда, что приложения командной строки обычно не поставляются с файлом .desktop .

  1. Каковы правильные команды для установки программного обеспечения из командной строки, чтобы я мог их искать?

Как уже говорилось, нет команды для установки программного обеспечения из командной строки, которое заставит его появляться в поиске Dash. Некоторые программы появятся автоматически, некоторые - нет. Если вы установите Atom-Text-Editor через командную строку, он появится. Если вы установите p7zipпакет, он не появится в Dash search. Это зависит от доступности графических значков программного обеспечения (и конфигурации значков запуска в вашей среде рабочего стола, такой как Unity, Xfce и т. Д.). Это не зависит от того, как вы их устанавливаете.

  1. Я сделал резервную копию и восстановил свою систему один раз, но некоторые команды работали раньше (например, «subl»), не работают после восстановления системы.

Это зависит от того, как вы сделали резервную копию и восстановили. sublэто имя программы для Sublime Text Editor. Если вы еще не установили его, установите его. Команда sublдолжна начать работать.

Анвар
источник
1
Ответ на пункт № 2 не совсем правильный. Поиск в Dash для файлов .desktop. Хороший пример утилиты командной строки, которая поставляется с файлом .desktop, - byobu, доступ к которому можно получить через тире. Иконы неактуальны
Сергей Колодяжный
@ Серж Спасибо. Я хотел дать нетехнический ответ как можно больше. Во всяком случае, я буду редактировать
Анвар
@Serg Кажется, что byobu тоже идет со значком :)
Anwar
Даже если бы он был без иконки, он все равно был бы доступен для поиска в Dash, потому что из-за .desktopфайла у него просто был бы значок с вопросительным знаком, но он все равно работал бы. Иконка действительно необязательна. Разработчики должны включать иконки или нет.
Сергей Колодяжный
3

Я предполагаю , что вы используете либо aptили apt-getиз командной строки. apt - менеджер пакетов, на который опирается центр программного обеспечения GUI. Допустим, вы хотите установить пакет "gimp". Для этого через командную строку вы используете

sudo apt install gimp

Все, что делает Центр программного обеспечения, это когда вы выбираете GIMP для установки, запускает эту команду в фоновом режиме, поэтому вам не нужно вводить ее.

Для поиска устанавливаемой программы через командную строку используйте эту команду:

apt search {search term}
Edgy1
источник