Visa obesvarade inlägg | Visa aktiva trådar Aktuellt datum och tid: 07 okt 2022, 11:14



Svara på tråd  [ 18 inlägg ] 
 Frågor om APT 
Författare Meddelande

Blev medlem: 22 aug 2019, 15:35
Inlägg: 313
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Svara med citat
Inlägg Frågor om APT
Jag håller på att uppgradera en Debian 10-server till Debian 11.
(Debian använder också apt så frågorna gäller lika mycket för Ubuntu)
Jag googlade hur man gjorde och hittade ett dussin sidor som sa nästan samma sak.
Problemet är "nästan".
Jag har fetmarkerat frågorna så de ska bli lättare att hitta.

Här är min renskrivna guide:

Punkt 1: De självklara sakerna
Jag förutsätter att man inte är inloggad som root, utan att man använder sudo. Så $ istället för #.
Ta backup om något går fel.
Stäng alla program, utom terminalen man arbetar i.
Inaktivera eller ta bort alla externa PPA:er och repos som inte är Debian.
Stoppa och inaktivera tjänster som inte behöver vara igång (i mitt fall bara apache2)
Räkna med att maskinen kommer att vara nere i någon timme.

Punkt 2: Kontrollera vad som körs innan uppgradering
(inte nödvändigt, bara kul så man kan jämföra efteråt)
$ uname -a
$ lsb_release -a
$ cat /etc/debian_version
(den sista raden bör ge 10.12, eftersom Debian 10.12 är senaste Debian 10-versionen.

Punkt 3: Uppdatera systemet

$ apt-mark showhold
sudo apt-mark unhold package_name
Jag förstår vad kommandona gör, men är det något man måste göra innan en distrouppgradering?

$ sudo apt update
$ sudo apt upgrade
$ sudo apt-get dist-upgrade
jag har sett folk använda
$ sudo apt dist-upgrade
Kan man det? Jag hittar ingen dokumentation för dist-upgrade i man-page för apt.


$ sudo apt full-upgrade
$ sudo apt-get --purge autoremove
jag har sett folk använda
$ sudo apt --purge autoremove
Kan man det? Jag hittar ingen dokumentation för --purge i man-page för apt.


$ sudo apt-get clean
$ sudo systemctl reboot

Punkt 4: Uppdatera repos i etc/apt/sources.list
Detta har inget med Ubuntu att göra, men de nya förråden för Debian 11 är:
deb http://deb.debian.org/debian bullseye main contrib non-free
deb http://deb.debian.org/debian bullseye-updates main contrib non-free
deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free

Punkt 5 Uppgradera till Debian 11
Nästan samma sak som punkt 3.

$ sudo apt update
$ sudo apt upgrade --without-new-pkgs
$ sudo apt full-upgrade
$ sudo systemctl reboot
$ sudo apt --purge autoremove
Jag hittar ingen dokumentation för --without-new-pkgs i man-pages, varken för apt eller apt-get. Varifrån kommer det?

Punkt 6: Kontrollera vad som körs efter uppgradering
(samma som punkt 2)
Det ska vara Debian 11.3


01 maj 2022, 18:59
Profil
Användarvisningsbild

Blev medlem: 08 aug 2010, 13:49
Inlägg: 2962
Ort: Göteborg
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Svara med citat
Inlägg Re: Frågor om APT
anth skrev:
Jag håller på att uppgradera en Debian 10-server till Debian 11.
(Debian använder också apt så frågorna gäller lika mycket för Ubuntu)
Ja och nej. För upgradering av en Ubuntu-server är det tillrådligt att använda kommandot do-release-upgrade.


01 maj 2022, 20:35
Profil

Blev medlem: 22 aug 2019, 15:35
Inlägg: 313
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Svara med citat
Inlägg Re: Frågor om APT
Ett förtydligande:
Kan man använda dessa kommandon?

apt dist-upgrade
apt upgrade --withoput-new-pkgs
apt --purge autoremove

Och om man kan, var är det dokumenterat?
https://manpages.ubuntu.com/manpages/xe ... apt.8.html


02 maj 2022, 15:06
Profil
Användarvisningsbild

Blev medlem: 06 apr 2008, 00:09
Inlägg: 6107
Ort: Göteborg/Mölndal/Falkenberg
OS: Ubuntu
Svara med citat
Inlägg Re: Frågor om APT
apt är ju egentligen ett relativt nytt samlingsscript för apt-get, apt-cache, apt-config med mera. Så dokumentationen borde finnas under respektive av dem. Problemet är bara att veta vilket av dem som apt egentligen använder (går att se med "vi /usr/local/bin/apt", om man kan Python)...

Själv kör jag fortfarande mest "apt-get" och ibland "apt-cache" direkt och när jag skriver inlägg om det här, så använder jag mest de "gamla" namnen. Detta just för att det funkar i alla versioner av operativsystemet. Däremot så finns samlingsscriptet "apt" bara i de nyare...

Det är väldigt trevligt att samla alla tidigare "lite spretiga" kommandon under "ett tak", men det är lite synd att "apt" inte skriver ut vad som egentligen används.

Typ:
Citat:
# apt install foobar
apt: using apt-get
...
...åtminstone om man skulle köra det som "apt -v" (som inte finns vad jag vet)...

De gamla namnen och gamla scripten kommer säkert att finnas kvar under överskådlig tid, för att behålla bakåtkompatibibiliteten....

[EDIT]
Fortfarande funkar dock både:
Kod:
apt-get moo
...och...
Kod:
apt moo
... ;D

_________________
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...


05 maj 2022, 12:56
Profil WWW

Blev medlem: 22 aug 2019, 15:35
Inlägg: 313
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Svara med citat
Inlägg Re: Frågor om APT
Osprey skrev:
apt är ju egentligen ett relativt nytt samlingsscript för apt-get, apt-cache, apt-config med mera. Så dokumentationen borde finnas under respektive av dem. Problemet är bara att veta vilket av dem som apt egentligen använder (går att se med "vi /usr/local/bin/apt", om man kan Python)...

Det är väl bara i Mint som apt är ett skript?
I Debian och Ubuntu är det väl en riktig kompilerad binary?


05 maj 2022, 19:00
Profil
Användarvisningsbild

Blev medlem: 06 apr 2008, 00:09
Inlägg: 6107
Ort: Göteborg/Mölndal/Falkenberg
OS: Ubuntu
Svara med citat
Inlägg Re: Frågor om APT
anth skrev:
Det är väl bara i Mint som apt är ett skript?
I Debian och Ubuntu är det väl en riktig kompilerad binary?
Prova med:
Kod:
file $(which apt)
I Mint får jag ut:
Citat:
/usr/local/bin/apt: Python script, ASCII text executable

_________________
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...


06 maj 2022, 15:48
Profil WWW

Blev medlem: 17 jan 2007, 08:20
Inlägg: 329
OS: Debian
Utgåva: Vet inte/ingen utgåva passar
Svara med citat
Inlägg Re: Frågor om APT
Osprey skrev:
/usr/local/bin/apt: Python script, ASCII text executable

Men det där /local/ insinuerar ju att det är något som du har installerat själv, och inget som har levererats med ett debian-paket...

Just saying...

_________________
Hade tidigare nicket "Cowboy".


06 maj 2022, 16:32
Profil
Användarvisningsbild

Blev medlem: 06 apr 2008, 00:09
Inlägg: 6107
Ort: Göteborg/Mölndal/Falkenberg
OS: Ubuntu
Svara med citat
Inlägg Re: Frågor om APT
gusnan skrev:
Men det där /local/ insinuerar ju att det är något som du har installerat själv, och inget som har levererats med ett debian-paket...

Just saying...
Nope, jag vet helt vad "/local/" innebär, men det är inget jag själv har hämtat (saker kan hamna i "/local/" ändå.)

Själv kör jag fortfarande "apt-get", "apt-cache" och "dpkg". Apt har jag ännu inte brytt mig så mycket om.... :)

Och för den delen kan ju "apt" vara "Python script, ASCII text executable" även om det är installerat via ett debian-paket...

Vad får du ut själv om du kör:
Kod:
file $(which apt)
...??

Nu blev jag nyfiken, kan det skilja något...?? :)
Mint är ju nästan Ubuntu och Ubuntu är ju nästan Debian... skulle inte tro att de har egna varianter av "apt". Men nu får vi reda ut det hela... ;D

_________________
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...


Senast redigerad av Osprey 06 maj 2022, 16:53, redigerad totalt 1 gång.



06 maj 2022, 16:38
Profil WWW

Blev medlem: 17 jan 2007, 08:20
Inlägg: 329
OS: Debian
Utgåva: Vet inte/ingen utgåva passar
Svara med citat
Inlägg Re: Frågor om APT
Osprey skrev:
Vad får du ut själv om du kör:
Kod:
file $(which apt)
...??


Well, jag kör ju inte Mint, men:

Kod:
gusnan@debian-i7:~ > which apt
/usr/bin/apt
gusnan@debian-i7:~ > file $(which apt)
/usr/bin/apt: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=6f62d73c4584d353d2bcbc6fb42b5e7cd1c476ba, for GNU/Linux 3.2.0, stripped


(edit)Även en Ubuntu 22.04 har apt i /usr/bin/, så det där verkar ju vara någon Mint-grej - ja, jag kan konfirmera att det är samma här i en Mint-VM

Intressant!
(/edit)

_________________
Hade tidigare nicket "Cowboy".


06 maj 2022, 16:53
Profil
Användarvisningsbild

Blev medlem: 06 apr 2008, 00:09
Inlägg: 6107
Ort: Göteborg/Mölndal/Falkenberg
OS: Ubuntu
Svara med citat
Inlägg Re: Frågor om APT
gusnan skrev:
Kod:
gusnan@debian-i7:~ > file $(which apt)
/usr/bin/apt: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV) ... stripped
Ah, konstigt....

Det tyder ju på att de inte ens lyckats standardisera "apt", trots att det är den vägen det borde gå....

Tidigare var det "apt-get", "apt-cache", "dpkg", "rpm", "yum", "urpmi", "zypper", med flera. Men med olika varianter av "apt", så blir det ju ännu värre....

Hade varit så himla smidigt om alla varianter av Linux kunde enas om det här kommandot. Allt annat (i stort sett) stämmer ju, eller ja förutom nätverk då.... :)

[EDIT] Kan inte begripa varför Mint har "kokat ihop" ett eget kommando, det är ju till största delen samma kodbas det bygger på....

_________________
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...


06 maj 2022, 17:07
Profil WWW

Blev medlem: 17 jan 2007, 08:20
Inlägg: 329
OS: Debian
Utgåva: Vet inte/ingen utgåva passar
Svara med citat
Inlägg Re: Frågor om APT
Osprey skrev:
Det tyder ju på att de inte ens lyckats standardisera "apt", trots att det är den vägen det borde gå....

Tidigare var det "apt-get", "apt-cache", "dpkg", "rpm", "yum", "urpmi", "zypper", med flera. Men med olika varianter av "apt", så blir det ju ännu värre....

Hade varit så himla smidigt om alla varianter av Linux kunde enas om det här kommandot. Allt annat (i stort sett) stämmer ju, eller ja förutom nätverk då.... :)

[EDIT] Kan inte begripa varför Mint har "kokat ihop" ett eget kommando, det är ju till största delen samma kodbas det bygger på....

Ja, jag håller helt med, och när jag tittar på koden så verkar det mest vara för att göra så det _bara_ är apt man ska behöva använda - även för att hålla paket där man vanligen hade använt apt-mark hold, eller för att hantera ppa'er (apt-add-repository). Känns något onödigt enligt mig, men det finns säkert folk som uppskattar att bara behöva hålla reda på ett kommando...

_________________
Hade tidigare nicket "Cowboy".


06 maj 2022, 17:27
Profil
Användarvisningsbild

Blev medlem: 06 apr 2008, 00:09
Inlägg: 6107
Ort: Göteborg/Mölndal/Falkenberg
OS: Ubuntu
Svara med citat
Inlägg Re: Frågor om APT
Här är ett litet script jag fixat till, för att förenkla det lite:
Kod:
###################################################################################################################################################
if [[ -z $FORCEDIST ]]; then
   source /etc/os-release
   DIST=$(echo $ID | awk -F \- '{ print $1 }')
else
   DIST=$(echo $FORCEDIST | tr '[:upper:]' '[:lower:]')
fi
FUNC=$1
shift
ARGS=$@
#
BC=$(which bc)
#
if [[ $DIST == "linuxmint" || $DIST == "ubuntu" || $DIST == "debian" ]]; then
   if [[ -z $BC ]]; then
      echo "-Installing bc..."
      apt-get install bc
   fi
   APT=$(which apt)
   if [[ $(abrv "gr-aph" $FUNC) == "ok" ]]; then
      # Graphical user interface.
      echo ">>> synaptic"
      synaptic 2> /dev/null &
   elif [[ $(abrv "au-toremove" $FUNC) == "ok" ]]; then
      # Remove no longer needed packages
      echo ">>> apt-get autoremove"
      apt-get autoremove
   elif [[ $(abrv "cl-ean" $FUNC) == "ok" ]]; then
      echo ">>> apt-get clean"
      apt-get clean
   elif [[ $(abrv "di-st" $FUNC) == "ok" ]]; then
      echo $DIST
   elif [[ $(abrv "fi-x" $FUNC) == "ok" ]]; then
      echo ">>> dpkg --configure -a"
      dpkg --configure -a
      echo ">>> apt-get clean"
      apt-get clean
      echo ">>> apt-get check"
      apt-get check
      echo ">>> apt-get -f install"
      apt-get -f install
      echo ">>> apt-get autoremove"
      apt-get autoremove
      echo ">>> apt-get update"
      apt-get update
      TO_PURGE=$(dpkg -l|grep ^rc|awk '{ print $2 }')
      if [[ ! -z $TO_PURGE ]]; then
         echo ">>> aptitude purge $TO_PURGE"
         aptitude purge $TO_PURGE
      fi
      TO_DEINSTALL=$(dpkg --get-selections | grep deinstall | cut -f1)
      if [[ ! -z $TO_DEINSTALL ]]; then
         echo ">>> dpkg --purge $TO_DEINSTALL"
         dpkg --purge $TO_DEINSTALL
      fi
   elif [[ $(abrv "in-stall" $FUNC) == "ok" ]]; then
      # Install a new, previously not installed package.
      if [[ -z $ARGS ]]; then
         while [[ -z $ARGS ]]; do
            read -p "_Name of package? " ARGS
         done
      fi
      PKG=$(echo $ARGS | awk -F . '{ print $1 }')
      EXT=$(echo $ARGS | awk -F . '{ print $2 }')
      if [[ -z $EXT ]]; then
         echo ">>> apt-get install $ARGS"
         apt-get install $ARGS
      elif [[ $EXT == "deb" ]]; then
         echo ">>> dpkg -i $ARGS"
         dpkg -i $ARGS
      elif [[ $EXT == "rpm" ]]; then
         if [[ ! -z $(which rpm) ]]; then
            echo ">>> rpm -ivh $ARGS"
            rpm -ivh $ARGS
         elif [[ ! -z $(which alien) ]]; then
            echo ">>> alien --fo-deb $ARGS"
            alien --to-deb $ARGS
            echo ">>> dpkg -i $PKG.deb"
            dpkg -i $PKG".deb"
         else
            echo "-Cannot install $ARGS, rpm or alien does not exist - consider installing one of them"
         fi
      else
         echo "-Unknown format .$EXT"
      fi
   elif [[ $(abrv "addk-ey" $FUNC) == "ok" ]]; then
      if [[ -z $ARGS ]]; then
         while [[ -z $ARGS ]]; do
            read -p "_Filename? " ARGS
         done
      fi
      if [[ -r $ARGS ]]; then
         echo ">>> apt-key --recv-keys --keyserver keyserver.ubuntu.com $ARGS"
         apt-key adv --recv-keys --keyserver keyserver.ubuntu.com $ARGS
      else
          echo "-No readable file called $ARGS found"
      fi
   elif [[ $(abrv "li-st" $FUNC) == "ok" ]]; then
      if [[ ! -z $APT ]]; then
         if [[ -z $ARGS ]]; then
            #apt list --installed
            echo ">>> dpkg-query --list"
            dpkg-query --list
         else
            #apt list --installed | grep $ARGS
            #ARG=$(echo $ARGS | sed 's/*//g')
            #dpkg-query --list "$ARGS" | grep --color=always $ARG
            echo ">>> dpkg-query --list *$ARGS* | grep --color=always $ARGS"
            dpkg-query --list "*$ARGS*" | grep --color=always $ARGS
         fi
      else
         if [[ -z $ARGS ]]; then
            echo ">>> dpkg --get-selections"
            dpkg --get-selections
         else
            echo ">>> dpkg --get-selections | grep --color=always $ARGS"
            dpkg --get-selections | grep --color=always $ARGS
         fi
      fi
   elif [[ $(abrv "pu-rge" $FUNC) == "ok" ]]; then
      # Remove/uninstall a package and all its configuration files.
      if [[ -z $ARGS ]]; then
         while [[ -z $ARGS ]]; do
            read -p "_Name of package? " ARGS
         done
      fi
      echo ">>> apt-get purge $ARGS"
      apt-get purge $ARGS
   elif [[ $(abrv "rei-nstall" $FUNC) == "ok" ]]; then
      # Reinstall an already installed package. Most of its configuration
      # files will possibly be overwritten.
      if [[ -z $ARGS ]]; then
         while [[ -z $ARGS ]]; do
            read -p "_Name of package? " ARGS
         done
      fi
      echo ">>> apt-get install --reinstall $ARGS"
      apt-get install --reinstall $ARGS
   elif [[ $(abrv "rem-ove" $FUNC) == "ok" || $FUNC == "rm" ]]; then
      # Remove/uninstall a package.
      if [[ -z $ARGS ]]; then
         while [[ -z $ARGS ]]; do
            read -p "_Name of package? " ARGS
         done
      fi
      echo ">>> apt-get remove $ARGS"
      apt-get remove $ARGS
   elif [[ $(abrv "rml-ock" $FUNC) == "ok" ]]; then
      PID=$(lsof /var/lib/dpkg/lock 2> /dev/null | tail -1 | awk '{ print $2 }')
      if [[ ! -z $PID ]]; then
         echo
         echo "-The following process is locking dpkg"
         echo
         ps -o pid,user,command $PID | tail -1
         echo
         read -p "_Do you want to kill it? [y/N]: " IN
         if [[ $IN == "y" || $IN == "Y" ]]; then
            echo "Killing $PID"
            kill $PID
         else
            exit
         fi
      elif [[ -e /var/lib/dpkg/lock ]]; then
         echo ">>> rm /var/lib/dpkg/lock"
         rm /var/lib/dpkg/lock
      fi
      PID=$(lsof /var/lib/apt/lists/lock 2> /dev/null | tail -1 | awk '{ print $2 }')
      if [[ ! -z $PID ]]; then
         echo
         echo "-The following process is locking apt"
         echo
         ps -o pid,user,command $PID | tail -1
         echo
         read -p "_Do you want to kill it? [y/N]: " IN
         if [[ $IN == "y" || $IN == "Y" ]]; then
            echo "Killing $PID"
            kill $PID
         else
            exit
         fi
      elif [[ -e /var/lib/apt/lists/lock ]]; then
         echo ">>> /var/lib/apt/lists/lock"
         rm /var/lib/apt/lists/lock
      fi
      echo
   elif [[ $(abrv "se-arch" $FUNC) == "ok" ]]; then
      if [[ -z $ARGS ]]; then
         while [[ -z $ARGS ]]; do
            read -p "_Search for what? " ARGS
         done
      fi
      echo ">>> apt-cache search $ARGS | grep --color=always $ARGS"
      apt-cache search "$ARGS" | grep --color=always "$ARGS"
   elif [[ $(abrv "upd-ate" $FUNC) == "ok" ]]; then
      # Update information about new packages.
      echo ">>> apt-get update"
      apt-get update
   elif [[ $(abrv "upg-rade" $FUNC) == "ok" ]]; then
      # Upgrade all packages.
      echo ">>> apt-get upgrade && apt-get dist-upgrade"
      apt-get upgrade && apt-get dist-upgrade
   else
      echo '-Can not understand what function "'$FUNC'" means...'
   fi
elif [[ $DIST == "opensuse" || $DIST == "sles" || $DIST == "sled" || $DIST == "sle" ]]; then
   if [[ -z $BC ]]; then
      echo "-Installing bc..."
      zypper install bc
   fi
   if [[ $(abrv "gr-aph" $FUNC) == "ok" ]]; then
      # Graphical user interface.
      echo ">>> yast"
      yast >2 /dev/null &
   elif [[ $(abrv "au-toremove" $FUNC) == "ok" ]]; then
      # Remove no longer needed packages
      # zypper packages --orphaned   <-- Removes manually installed
      echo ">>> zypper packages --unneeded"
      zypper packages --unneeded
   elif [[ $(abrv "cl-ean" $FUNC) == "ok" ]]; then
      echo ":"
      :
   elif [[ $(abrv "di-st" $FUNC) == "ok" ]]; then
      echo $DIST
   elif [[ $(abrv "fi-x" $FUNC) == "ok" ]]; then
      echo ">>> zypper verify"
      zypper verify
      echo ">>> zypper install-new-recommends"
      zypper install-new-recommends
   elif [[ $(abrv "in-stall" $FUNC) == "ok"  ]]; then
      # Install a new, previously not installed package.
      if [[ -z $ARGS ]]; then
         while [[ -z $ARGS ]]; do
            read -p "_Name of package? " ARGS
         done
      fi
      PKG=$(echo $ARGS | awk -F . '{ print $1 }')
      EXT=$(echo $ARGS | awk -F . '{ print $2 }')
      if [[ -z $EXT ]]; then
         echo ">>> zypper install $ARGS"
         zypper install $ARGS
      fi
   elif [[ $(abrv "addk-ey" $FUNC) == "ok" ]]; then
      echo
      echo "-This function not available for $DIST"
      echo
   elif [[ $(abrv "li-st" $FUNC) == "ok" ]]; then
      if [[ -z $ARGS ]]; then
         # zypper --xmlout search --installed-only -v
         echo ">>> zypper packages --installed-only"
         zypper packages --installed-only
      else
         echo ">>> zypper packages --installed-only | grep --color=always $ARGS"
         zypper packages --installed-only | grep --color=always $ARGS
      fi
   elif [[ $(abrv "pu-rge" $FUNC) == "ok" ]]; then
      # Remove/uninstall a package and all its configuration files.
      if [[ -z $ARGS ]]; then
         while [[ -z $ARGS ]]; do
            read -p "_Name of package? " ARGS
         done
      fi
      echo ">>> zypper rm --clean-deps $ARGS"
      zypper rm --clean-deps $ARGS
   elif [[ $(abrv "rei-nstall" $FUNC) == "ok" ]]; then
      # Reinstall an already installed package. Most of its configuration
      # files will possibly be overwritten.
      # !! zypper does not really have a "reinstall", so instead the package
      # !! is force installed with "-f" (which in this case means "overwrite").
      if [[ -z $ARGS ]]; then
         while [[ -z $ARGS ]]; do
            read -p "_Name of package? " ARGS
         done
      fi
      echo ">>> zypper install -f $ARGS"
      zypper install -f $ARGS
   elif [[ $(abrv "rem-ove" $FUNC) == "ok" || $FUNC == "rm" ]]; then
      # Remove/uninstall a package.
      if [[ -z $ARGS ]]; then
         while [[ -z $ARGS ]]; do
            read -p "_Name of package? " ARGS
         done
      fi
      echo ">>> zypper rm $ARGS"
      zypper rm $ARGS
   elif [[ $(abrv "rml-ock" $FUNC) == "ok" ]]; then
      echo ">>> zypper removelock"
      zypper removelock
   elif [[ $(abrv "se-arch" $FUNC) == "ok" ]]; then
      if [[ -z $ARGS ]]; then
         while [[ -z $ARGS ]]; do
            read -p "_Search for what? " ARGS
         done
      fi
      echo "-Nothing to do..."
   elif [[ $(abrv "upd-ate" $FUNC) == "ok" ]]; then
      # Update information about new packages.
      echo ">>> zypper refresh"
      zypper refresh
   elif [[ $(abrv "upg-rade" $FUNC) == "ok" ]]; then
      # Upgrade all packages.
      echo ">>> zypper update"
      zypper update
   else
      echo '-Can not understand what function "'$FUNC'" means...'
   fi
elif [[ $DIST == "fedora" || $DIST == "centos" || $DIST == "redhat" || $DIST == "rhel" ]]; then
   if [[ -z $BC ]]; then
      echo "-Installing bc..."
      yum install bc
   fi
   if [[ $(abrv "gr-aph" $FUNC) == "ok" ]]; then
      # Graphical user interface.
      echo ">>> yum"
      yum >2 /dev/null &
   elif [[ $(abrv "au-toremove" $FUNC) == "ok" ]]; then
      # Remove no longer needed packages
      echo ">>> yum autoremove"
      yum autoremove
   elif [[ $(abrv "cl-ean" $FUNC) == "ok" ]]; then
      echo ">>> yum clean all"
      yum clean all
   elif [[ $(abrv "di-st" $FUNC) == "ok" ]]; then
      echo $DIST
   elif [[ $(abrv "fi-x" $FUNC) == "ok" ]]; then
      echo ">>> yum clean all"
      yum clean all
      echo ">>> yum check"
      yum check
      if [[ $ARGS == "all" ]]; then
         echo ">>> rm /var/lib/__db*"
         rm /var/lib/__db*
         echo ">>> rpm --rebuilddb"
         rpm --rebuilddb
         echo ">>> rpmdb_verify Packages"
         rpmdb_verify Packages
      fi
   elif [[ $(abrv "in-stall" $FUNC) == "ok" ]]; then
      # Install a new, previously not installed package.
      if [[ -z $ARGS ]]; then
         while [[ -z $ARGS ]]; do
            read -p "_Name of package? " ARGS
         done
      fi
      PKG=$(echo $ARGS | awk -F . '{ print $1 }')
      EXT=$(echo $ARGS | awk -F . '{ print $2 }')
      if [[ -z $EXT ]]; then
         #echo ">>> yum install $ARGS"
         #yum install $ARGS
         echo ">>> dnf install $ARGS"
         dnf install $ARGS
      else
         echo ">>> rpm -i $ARGS"
         rpm -i $ARGS
      fi
   elif [[ $(abrv "addk-ey" $FUNC) == "ok" ]]; then
      echo
      echo "-This function not available for $DIST"
      echo
   elif [[ $(abrv "li-st" $FUNC) == "ok" ]]; then
      if [[ -z $ARGS ]]; then
         echo ">>> yum show-installed"
         yum show-installed
      else
         echo ">>> yum show-installed | grep --color=always $ARGS"
         yum show-installed | grep --color=always $ARGS
      fi
   elif [[ $(abrv "pu-rge" $FUNC) == "ok" ]]; then
      # Remove/uninstall a package and all its configuration files, plus unneeded packages.
      if [[ -z $ARGS ]]; then
         while [[ -z $ARGS ]]; do
            read -p "_Name of package? " ARGS
         done
      fi
      echo ">>> yum autoremove $ARGS"
      yum autoremove $ARGS
   elif [[ $(abrv "rei-nstall" $FUNC) == "ok" ]]; then
      # Reinstall an already installed package. Most of its configuration
      # files will possibly be overwritten.
      if [[ -z $ARGS ]]; then
         while [[ -z $ARGS ]]; do
            read -p "_Name of package? " ARGS
         done
      fi
      echo ">>> yum reinstall $ARGS"
      yum reinstall $ARGS
   elif [[ $(abrv "rem-ove" $FUNC) == "ok" || $FUNC == "rm" ]]; then
      # Remove/uninstall a package.
      if [[ -z $ARGS ]]; then
         while [[ -z $ARGS ]]; do
            read -p "_Name of package? " ARGS
         done
      fi
      echo ">>> yum remove $ARGS"
      yum remove $ARGS
   elif [[ $(abrv "rml-ock" $FUNC) == "ok" ]]; then
      PID=$(cat /var/run/yum.pid)
      LINES=$(ps -o pid,user,command $PID | wc -l)
      if [[ $LINES -gt 1 ]]; then
         echo
         echo "-The following process is locking yum"
         echo
         ps -o pid,user,command $PID | tail -1
         echo
         read -p "-Do you want to kill it? [y/N]: " IN
         if [[ $IN == "y" || $IN == "Y" ]]; then
            echo "Killing"
            kill $PID
         else
            exit
         fi
         echo
      fi
      echo ">>> rm /var/run/yum.pid"
      rm /var/run/yum.pid
   elif [[ $(abrv "se-arch" $FUNC) == "ok" ]]; then
      if [[ -z $ARGS ]]; then
         while [[ -z $ARGS ]]; do
            read -p "_Search for what? " ARGS
         done
      fi
      echo ">>> yum search $ARGS"
      yum search "$ARGS"
   elif [[ $(abrv "upd-ate" $FUNC) == "ok" ]]; then
      # Update information about new packages.
      echo ">>> yum check-update $ARGS"
      yum check-update $ARGS
   elif [[ $(abrv "upg-rade" $FUNC) == "ok" ]]; then
      # Upgrade all packages.
      echo ">>> yum update $ARGS"
      yum update $ARGS
      echo ">>> yum upgrade $ARGS"
      yum upgrade $ARGS
   else
      echo '-Can not understand what function "'$FUNC'" means...'
   fi
else
   echo "-Unsupported dist - $DIST"
   echo "-Consider setting FORCEDIST if you want to bypass"
fi
#echo "DIST: $DIST"
echo

_________________
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...


06 maj 2022, 17:38
Profil WWW
Användarvisningsbild

Blev medlem: 06 apr 2008, 00:09
Inlägg: 6107
Ort: Göteborg/Mölndal/Falkenberg
OS: Ubuntu
Svara med citat
Inlägg Re: Frågor om APT
Inte provkört på ett tag, så det kan finnas brister.... ;)

_________________
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...


06 maj 2022, 17:39
Profil WWW
Användarvisningsbild

Blev medlem: 06 apr 2008, 00:09
Inlägg: 6107
Ort: Göteborg/Mölndal/Falkenberg
OS: Ubuntu
Svara med citat
Inlägg Re: Frågor om APT
gusnan skrev:
Ja, jag håller helt med, och när jag tittar på koden så verkar det mest vara för att göra så det _bara_ är apt man ska behöva använda - även för att hålla paket där man vanligen hade använt apt-mark hold, eller för att hantera ppa'er (apt-add-repository). Känns något onödigt enligt mig, men det finns säkert folk som uppskattar att bara behöva hålla reda på ett kommando...
Jag tycker att mycket viktigare än att samla alla apt-kommandon (vilket man uppenbarligen inte har lyckats med) vore att få ett gemensamt paket för detta inom Linux. Framförallt Debian (inklusive Ubuntu och Mint), RedHat (inklisive CentOS och Fedora) och SuSE (inklusive SLES, SLED och OpenSuSE).

Visst de andra funkar bra också, men apt är bäst... (dock med synpunkten med att jag begriper inte varför Mint har kokat ihop något eget...)

_________________
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...


06 maj 2022, 17:49
Profil WWW

Blev medlem: 22 aug 2019, 15:35
Inlägg: 313
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Svara med citat
Inlägg Re: Frågor om APT
Enligt en tråd från 2018 hittade jag följande:

Mint var först med att använda APT som var deras egen Python-wrapper.

Debian/Ubuntu gjorde sedan sin egen APT-version.

Mint har bägge versionerna installerade:

Mintversionen som är default enligt PATH:
/usr/local/bin/apt

Debianversionen:
/usr/bin/apt

Jämför
apt -h
med
/usr/bin/apt -h
så ser man att de är olika.

Någon som kör Mint får bekräfta om detta fortfarande stämmer då tråden jag hämtade infon från är 4 år gammal.
Källa:
https://forums.linuxmint.com/viewtopic.php?t=269626


06 maj 2022, 18:07
Profil
Användarvisningsbild

Blev medlem: 06 apr 2008, 00:09
Inlägg: 6107
Ort: Göteborg/Mölndal/Falkenberg
OS: Ubuntu
Svara med citat
Inlägg Re: Frågor om APT
Ska titta lite på Ubuntu/Debians "apt" också. Möjligt är ju att det är ren C-kod som i princip kör "system(apt-get)", "system(apt-cache)" och så, med vissa tillägg...

Nu blev jag nyfiken.... ;)

_________________
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...


06 maj 2022, 21:07
Profil WWW
Användarvisningsbild

Blev medlem: 06 apr 2008, 00:09
Inlägg: 6107
Ort: Göteborg/Mölndal/Falkenberg
OS: Ubuntu
Svara med citat
Inlägg Re: Frågor om APT
anth skrev:
Enligt en tråd från 2018 hittade jag följande:

Mint var först med att använda APT som var deras egen Python-wrapper.

Debian/Ubuntu gjorde sedan sin egen APT-version.

Mint har bägge versionerna installerade:

Mintversionen som är default enligt PATH:
/usr/local/bin/apt

Debianversionen:
/usr/bin/apt

Jämför
apt -h
med
/usr/bin/apt -h
så ser man att de är olika.

Någon som kör Mint får bekräfta om detta fortfarande stämmer då tråden jag hämtade infon från är 4 år gammal.
Källa:
https://forums.linuxmint.com/viewtopic.php?t=269626
Ja, jag upptäckte nu att jag har både Mints version i "/usr/local/bin" och Debian/Ubuntus version i "/usr/bin"...

Däremot ligger ju "/usr/local/bin" före "/usr/bin" i $PATH, så det är ju Mints Pythonscript den kör "by default", här i Mint....

Utskrifterna är som följer:
Citat:
root# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/usr/games:/home/base/bin

root# file /usr/local/bin/apt
/usr/local/bin/apt: Python script, ASCII text executable

root# file /usr/bin/apt
/usr/bin/apt: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=85b5570d26c2a11df4697551eb77d75848347ee3, for GNU/Linux 3.2.0, stripped

_________________
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...


07 maj 2022, 17:45
Profil WWW
Användarvisningsbild

Blev medlem: 06 apr 2008, 00:09
Inlägg: 6107
Ort: Göteborg/Mölndal/Falkenberg
OS: Ubuntu
Svara med citat
Inlägg Re: Frågor om APT
Har laddat hem källkoden för "apt". Mints version är som sagt var, skrivet i Python. Medan Debian/Ubuntu -versionen verkar vara skriven i C++ (.cc).

Tusan också att det aldrig går att standardisera något inom Linux inom bitar för drift/sysadm och infrastruktur..... :)

[EDIT] däremot får jag rätt svar med "whereis apt-get" och "whereis apt-cache"....

_________________
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...


09 maj 2022, 14:10
Profil WWW
Visa inlägg nyare än:  Sortera efter  
Svara på tråd   [ 18 inlägg ] 

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 2 gäster


Du kan inte skapa nya trådar i denna kategori
Du kan inte svara på trådar i denna kategori
Du kan inte redigera dina inlägg i denna kategori
Du kan inte ta bort dina inlägg i denna kategori
Du kan inte bifoga filer i denna kategori

Sök efter:
Hoppa till:  
cron
Main Engineer for phpBB3: Bertie at phpBB.com © 2000 - 2002, 2005 - 2007, the Group behind the Open Source code of phpBB.
Designed by STSoftware, modified by Katt, Konservburk & Peetra. Swedish translation by Peetra & phpBB Sweden © 2006-2011