apt-get install [pkg1 pkg2 pkg3… pkgn] não instalando todos os itens

0

Eu tenho um arquivo bash com uma lista de pacotes para instalar uma nova instalação do Ubuntu usando o apt install, mas nem todos os pacotes da lista estão sendo instalados. Repos são incluídos no script conforme necessário.

Eu tentei os dois métodos abaixo:

Method 1:

apt install [pkg1] [pkg2] [pkg3] ... [pkgn]

Method 2 - (pseudo code):

String pkgs_list[] = {"pkg1" "pkg2" "pkg3" "pkgn"}
for each pkg in pkg_list {
  if pkg exists then {
    "do nothing"
  else
    apt install pkg
  }
}

Aqui está o código bash completo:

#***********************#
#***      Keys       ***#
#***********************#
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
wget -O - https://dl.sinew.in/keys/enpass-linux.key | apt-key add -
wget -nc https://dl.winehq.org/wine-builds/Release.key | apt-key add -


#***********************#
#***   Repositories  ***#
#***********************#
echo 'deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main' | tee /etc/apt/sources.list.d/google-chrome.list
echo "deb http://repo.sinew.in/ stable main" > \
  /etc/apt/sources.list.d/enpass.list
add-apt-repository -y ppa:webupd8team/gnome3  #This is for gnome tweak tool extensions (source: https://www.wikihow.com/Change-Themes-on-Ubuntu-with-Gnome-Tweak-Tool)
add-apt-repository -y ppa:notepadqq-team/notepadqq
add-apt-repository https://dl.winehq.org/wine-builds/ubuntu/

apt -y update

#WinHQ enables 32bit architecture
dpkg --add-architecture i386 

#***********************#
#***   apt install   ***#
#***********************#

#apt -y install \
#  nemo \
#  google-chrome-stable \
#  notepadqq dconf-editor \
#  nfs-common \
#  enpass \
#  virtualbox \
#  virtualbox-guest-additions-iso \
#  gnome-tweak-tool \
  #gnome-shell-extensions-user-themes \
#  vlc \
#  gimp \
#  winehq-stable \
#  synaptic

declare -a alist=("nemo"
  "google-chrome-stable"
  "notepadqq"
  "dconf-editor"
  "nfs-common"
  "enpass"
  "virtualbox"
  "virtualbox-guest-additions-iso"
  "gnome-tweak-tool"
  "vlc"
  "gimp"
  "winehq-stable"
  "synaptic"
  "usb-creator-gtk"
  "libreoffice"
  "chromium-browser"
  "thunderbird"
  "shotwell"
  "gnome-calendar")

for application in "${alist[@]}"
do
  dpkg -l $application
  if [ $? = '0' ]; then
    echo "***************************************************************************"
    echo "*****Application "$application" package is installed, no action taken.*****"
    echo "***************************************************************************"
  elif [ $? = '1' ]; then
    echo "******************************************"
    echo "*****Installing package $application.*****"
    echo "******************************************"
    #Add an if to match dock favorites and add to the dock .desktop file
    apt install $application -y
  fi
done

Veja a lista de aplicativos e o status depois que o script foi executado:

  1. nemo - ok
  2. google-chrome-stable - ok
  3. notepadqq - não instalou
  4. dconf-editor - ok
  5. nfs-common - não instalou
  6. enpass - ok
  7. virtualbox - ok
  8. virtualbox-guest-additions-iso - não sabe
  9. gnome-tweak-tool - não instalou
  10. vlc - ok
  11. gimp - não instalou
  12. winehq-stable - não instalou
  13. synaptic - não instalou
  14. usb-creator-gtk - não instalou
  15. libreoffice - ok
  16. navegador chromium - não instalou
  17. thunderbird - não instalou
  18. shotwell - não instalou
  19. gnome-calendar - não instalou

Eu posso fornecer mais informações para cada pacote é necessário.

Obrigado pela sua ajuda.

EDIT

O arquivo de log gerado usando o comando $ sudo ./my_script.sh >> my_script.log é grande, então vou postar o que acho que é o problema e podemos ir a partir daí.

Abaixo está a saída para o gimp, uma que não foi instalada. Quando meu código verifica se o pacote está instalado usando o comando dpkg -l [package_name] , ele retorna o seguinte ao verificar o gimp e os outros.

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-=================================
un  gimp           <none>       <none>       (no description available)

TODOS os pacotes que não foram instalados retornam com Versão e Arquitetura como <none> , o que me diz que não há instalação de pacotes, certo? Mas quando o script bash é executado, o comando retorna '0' fazendo minhas declarações acreditarem que o pacote está instalado, o que não parece ser o caso de acordo com o dpkg. Em vez disso, o dpkg deve retornar algo assim: ...

$ dpkg -l package

dpkg-query: no packages found matching package

... quando um pacote 'não está instalado.

Eu não entendo o que está acontecendo aqui com dpkg retornando as informações postadas. O que isto significa? O que está acontecendo?

Obrigado,

EDIT

Além disso, se eu tentar remover o pacote com apt , obtenho:

$ sudo apt autoremove gimp
[sudo] password for alex2wr: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package 'gimp' is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
    
por Alex 23.03.2018 / 04:33

0 respostas