Frågor om APT
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
(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
- Gunnar Hjalmarsson
- Inlägg: 3030
- Blev medlem: 08 aug 2010, 13:49
- OS: Ubuntu
- Utgåva: 22.04 Jammy Jellyfish LTS
- Ort: Göteborg
Re: Frågor om APT
Ja och nej. För upgradering av en Ubuntu-server är det tillrådligt att använda kommandot do-release-upgrade.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)
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
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
- Osprey
- Inlägg: 6310
- Blev medlem: 06 apr 2008, 00:09
- OS: Ubuntu
- Ort: Göteborg/Mölndal/Falkenberg
- Kontakt:
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:
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:...och...... 
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:
...åtminstone om man skulle köra det som "apt -v" (som inte finns vad jag vet)...# apt install foobar
apt: using apt-get
...
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: Markera allt
apt-get moo
Kod: Markera allt
apt moo

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...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Re: Frågor om APT
Det är väl bara i Mint som apt är ett skript?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)...
I Debian och Ubuntu är det väl en riktig kompilerad binary?
- Osprey
- Inlägg: 6310
- Blev medlem: 06 apr 2008, 00:09
- OS: Ubuntu
- Ort: Göteborg/Mölndal/Falkenberg
- Kontakt:
Re: Frågor om APT
Prova med: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?
Kod: Markera allt
file $(which apt)
/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...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Re: Frågor om APT
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...Osprey skrev:/usr/local/bin/apt: Python script, ASCII text executable
Just saying...
Hade tidigare nicket "Cowboy".
- Osprey
- Inlägg: 6310
- Blev medlem: 06 apr 2008, 00:09
- OS: Ubuntu
- Ort: Göteborg/Mölndal/Falkenberg
- Kontakt:
Re: Frågor om APT
Nope, jag vet helt vad "/local/" innebär, men det är inget jag själv har hämtat (saker kan hamna i "/local/" ändå.)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...
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: Markera allt
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...

Senast redigerad av 1 Osprey, redigerad totalt 6 gånger.
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...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Re: Frågor om APT
Well, jag kör ju inte Mint, men:Osprey skrev: Vad får du ut själv om du kör:...??Kod: Markera allt
file $(which apt)
Kod: Markera allt
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
Intressant!
(/edit)
Hade tidigare nicket "Cowboy".
- Osprey
- Inlägg: 6310
- Blev medlem: 06 apr 2008, 00:09
- OS: Ubuntu
- Ort: Göteborg/Mölndal/Falkenberg
- Kontakt:
Re: Frågor om APT
Ah, konstigt....gusnan skrev:Kod: Markera allt
gusnan@debian-i7:~ > file $(which apt) /usr/bin/apt: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV) ... stripped
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...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Re: Frågor om APT
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...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å....
Hade tidigare nicket "Cowboy".
- Osprey
- Inlägg: 6310
- Blev medlem: 06 apr 2008, 00:09
- OS: Ubuntu
- Ort: Göteborg/Mölndal/Falkenberg
- Kontakt:
Re: Frågor om APT
Här är ett litet script jag fixat till, för att förenkla det lite:
Kod: Markera allt
###################################################################################################################################################
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...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
- Osprey
- Inlägg: 6310
- Blev medlem: 06 apr 2008, 00:09
- OS: Ubuntu
- Ort: Göteborg/Mölndal/Falkenberg
- Kontakt:
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...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
- Osprey
- Inlägg: 6310
- Blev medlem: 06 apr 2008, 00:09
- OS: Ubuntu
- Ort: Göteborg/Mölndal/Falkenberg
- Kontakt:
Re: Frågor om APT
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).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...
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...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
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
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
- Osprey
- Inlägg: 6310
- Blev medlem: 06 apr 2008, 00:09
- OS: Ubuntu
- Ort: Göteborg/Mölndal/Falkenberg
- Kontakt:
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....
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...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
- Osprey
- Inlägg: 6310
- Blev medlem: 06 apr 2008, 00:09
- OS: Ubuntu
- Ort: Göteborg/Mölndal/Falkenberg
- Kontakt:
Re: Frågor om APT
Ja, jag upptäckte nu att jag har både Mints version i "/usr/local/bin" och Debian/Ubuntus version i "/usr/bin"...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
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:
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...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
- Osprey
- Inlägg: 6310
- Blev medlem: 06 apr 2008, 00:09
- OS: Ubuntu
- Ort: Göteborg/Mölndal/Falkenberg
- Kontakt:
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"....
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...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...