TL; DR : existem muitas áreas cinzentas e isso depende do que você está fazendo. Principalmente, o Software Center e os métodos de linha de comando fazem coisas semelhantes quando se trata de .debpacotes, mas outros pacotes de software podem exigir etapas diferentes.
Qual é a diferença entre instalar um software no centro de software Ubuntu e na linha de comando?
Aqui está a realidade: a instalação nada mais é do que jogar os arquivos que acompanham o pacote de software nos diretórios apropriados. Não importa se isso é feito via linha de comando ou via Software Center - eles fazem a mesma coisa - lança os arquivos em seus respectivos diretórios. O que importa, no entanto, é o pacote e como você lida com ele. Aqui, examinarei alguns dos pacotes básicos com os quais você pode lidar no Ubuntu. Quanto à diferença entre linha de comando e Software Center, a diferença mais básica é que no Software Center você clica nos botões; na linha de comando, você digita comandos. Eu sei que o Software Center usa muito código python, mas na linha de comando depende do utilitário que você usa. Há também uma quantidade de quanto o Software Center pode remover (leia abaixo sobre isso)
Os pacotes de software para o Ubuntu podem ser de três maneiras: .debarquivo, .runarquivo e apenas o código-fonte bruto, compactado zipou tararquivado. Dependendo de com quem você está lidando, a instalação da linha de comando pode ser mais ou menos dolorosa. Isso não é algo com o qual você realmente deve se preocupar, pelo menos não no primeiro ano de uso do Linux.
Você verá principalmente .debarquivos - eles são pacotes de software pré-compilados, prontos para uso. Estes são menos dolorosos. Eles também costumam especificar dependências - outro software sem o qual seu programa não será executado. Utilitários de linha de comando como apte apt-getinstalam dependências automaticamente para você. De fato, o Software Center usa apt-getcomo back-end, por isso também instala dependências automaticamente.
.runarquivos são tipicamente arquivos binários proprietários e codificados. Você realmente não pode ver o que eles estão fazendo.
Com o código-fonte bruto, você precisa fazer tudo sozinho - criar software e instalar dependências.
Também existem maneiras de instalar pacotes de outras distros, como .rpmpacotes, mas isso é feito muito raramente.
Também existe uma classe de software conhecida como contêineres. Há estivador e lxdcontêineres. Recentemente, o Ubuntu introduziu algo conhecido como snappacotes. O que há de bom nisso tudo? Eles podem ser executados em qualquer lugar, isolados com segurança do sistema principal e podem ser instalados / reinstalados rapidamente. Esses tipos de software não são instaláveis pelo Software Center e geralmente para administradores de sistemas profissionais ou usuários avançados / técnicos. Como novo usuário, você não precisa se preocupar com isso, apenas lembre-se de que eles existem e são incríveis :)
Finalmente, algo como um script (e normalmente um único arquivo) também pode ser considerado um aplicativo e novamente - a instalação nada mais é do que jogar esse arquivo onde ele pertence ou deveria pertencer.
Por que alguns softwares que instalei com a linha de comando não podem ser pesquisados no centro de software (pressione a tecla da janela)?
Novamente, isso realmente depende do pacote. Se os desenvolvedores do software decidirem incluir o .desktoparquivo no pacote, você poderá pesquisá-lo no Dash. .desktopos arquivos são como atalhos do Windows, embora façam muito mais. Um bom exemplo do utilitário de linha de comando que acompanha o .desktoparquivo é o Byobu - um programa muito útil para dividir o terminal em abas / janelas extras.
No entanto, você pode criar seu próprio .desktoparquivo para cada programa e colocá-lo na ~/.local/share/applications/pasta.
Novamente, isso não tem nada a ver com o aplicativo ser linha de comando ou GUI. Depende das escolhas que os desenvolvedores de aplicativos fazem
Quais são os comandos corretos para instalar um software a partir da linha de comando para que eu possa pesquisá-los?
Mais uma vez, depende do que você está fazendo. Se você estiver instalando software de repositórios oficiais do Ubuntu, poderá simplesmente fazersudo apt-get install my-software
Se você estiver instalando um .debpacote, poderá usar o dpkgcomando ou apt-get. Aqui está um exemplo de como instalar o pacote deb do google-chrome com o apt-get. NOTA : no momento da instalação, estou no mesmo diretório que o .debarquivo, portanto, tenho que especificar ./parte
$ 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) .
O que é legal apt-get? Tem --purgeopção, que permite remover tudo relacionado a um programa. Por exemplo, se eu apenas removê-lo sudo apt-get remove google-chrome-stableou fazê-lo via Software Center, ele pode deixar para trás os arquivos de configuração, para que, quando você reinstale o software, ele esteja pronto para uso como antes. --purgeA opção excluirá os arquivos de configuração também. Isso é conveniente se o seu software falhar e você desejar uma instalação completamente nova. O Software Center não faz isso, então isso é outra diferença.
Se você estiver lidando com um .runarquivo, precisará executá-lo e executá-lo. Como isso:
$ sudo chmod +x ./software.run
$ sudo ./software.run
Fiz backup e restaurei meu sistema uma vez, mas alguns comandos funcionados antes (como "subl") não funcionam após a restauração do sistema.
Depende do tipo de backup que você fez. Se o seu backup incluísse todos os arquivos necessários para que sublfuncionassem, ele deveria ter funcionado. Também pode ser que o seu backup tenha ocorrido antes da sublinstalação. Verifique se você configurou seu backup corretamente
Eu acho que essas perguntas são sobre $ PATH de alguma forma, mas não consigo encontrar algum material sobre isso. Qualquer material extra seria apreciado.
A $PATHvariável é relevante para o shell (o interpretador de comandos onde você coloca os comandos). Não é realmente relevante para o Unity Dash. $PATHA variável é realmente uma lista de diretórios, onde o shell procurará programas que tenham permissão de execução configurável. O Dash está realmente preocupado .desktopapenas com arquivos. Por exemplo, eu posso ter um programa na /usr/binpasta e poder abri-lo via linha de comando, mas o Dash não, porque não há um .desktoparquivo correspondente para ele.
Se você quiser encontrar material extra $PATH, escolha literalmente qualquer livro sobre scripts de shell do Linux. É um dos itens de conhecimento básico para qualquer usuário do Linux que queira usar a linha de comando.
Algumas reflexões finais : a complexidade da instalação de software para Linux às vezes pode ser chocante para novos usuários que vêm do mundo Windows ou Mac. Na realidade, são os mesmos princípios - jogue tudo onde ele pertence e funcionará. Você não encontra um atalho para o seu programa? Faça um - é apenas um arquivo de texto! Computadores são máquinas e devem ser operados. O Windows também tem %PATH%variável para sua linha de comando, você nunca soube disso, porque a linha de comando do Windows é menos versátil e menos usada do que no Linux. Em resumo, não se deixe intimidar por tudo o que pode ver, porque no dia-a-dia são cerca de 20% dos comandos ou ações mais frequentemente usados, e eles oferecem 80% do trabalho realizado.