Package management - GradedJestRisk/linux-training GitHub Wiki

Table of Contents

apt (A Package Tool)

Overview

List:

  • list installed
    • get all installed packages apt list --installed
    • check if package is installed apt list --installed <APPLICATION_NAME>
    • get installed version apt-get policy <APPLICATION_NAME>
  • search candidate
    • search a package apt-cache search "<PACKAGE_PARTIAL_NAME>*"
  • install
    • fetch all updates apt-get update
    • install: sudo apt-get install <APPLICATION_NAME>
  • upgrade
    • fetch all updates apt-get update
    • install them apt-get upgrade
  • remove
      • application : apt-get remove <APPLICATION_NAME>
      • application and configuration files: apt-get remove <APPLICATION_NAME>

PPA (personal package archive)

List:

  • get PPA description
  • list local ppa: ls -l /etc/apt/sources.list.d/
  • add (update afterwards): sudo add-apt-repository ppa:<USER_NAME>:<PACKAGE_NAME>
  • add public key (message The following signatures couldn't be verified because the public key is not available <KEY> : sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <KEY>
  • remove ppa:
    • command-line: sudo add-apt-repository --remove ppa:PPA_Name/ppa

enhanced CLI

Aptitude sudo apt-get install aptitude

GUI

Use synaptic sudo apt-get synaptic

apk (alpine)

API

List:

  • refresh cache: apk update
  • install: apk add PACKAGE_NAME
The message unsatisfiable constraints means there's no such package
bash-5.0# apk add llvm-toolset-7
ERROR: unsatisfiable constraints:
  llvm-toolset-7 (missing):
    required by: world[llvm-toolset-7]

snap

Make package less dependent on linux distributions. All installed bin in /snap/bin

Install

sudo apt install snapd

Overview

Commands
Goal Command
look for eclipse snap find eclipse
install eclipse snap install eclipse
run eclipse snap run eclipse
display all snaps snap list
switch to eclipse beta channel snap refresh eclipse --beta

Run

Run a GUI: nohup snap run &

Remove

Without backing up data

sudo snap remove --purge $PACKAGE

Stop task

List task.

sudo snap changes

It will give you back a list.

ID   Status   Spawn                Ready                Summary
377  Done     today at 09:28 CEST  today at 09:28 CEST  Auto-refresh snaps "code", "glab"
378  Undoing  today at 10:47 CEST  -                    Remove "docker" snap
379  Done     today at 10:55 CEST  today at 10:55 CEST  Refresh all snaps: no updates

To stop "Remove docker app", use `abort`.

sudo snap abort 378

proxy

sudo snap set system proxy.http=$PROXY sudo snap set system proxy.https=$PROXY

SDKMAN!

SDK installer for - Java - Maven - Gradle

Install

SDKman is using `curl` under the hood.

Steps :

Doc

If you've got `INTERNET NOT REACHABLE!`, - check proxy (see above); - configure timeouts using curl guidelines

sdkman_curl_connect_timeout=5
sdkman_curl_continue=true
sdkman_curl_max_time=10

Source

General

Configuration file is ~/.sdkman/etc/config

# Activate hook to load .sdkmanrc when you enter a directory
sdkman_auto_env=true

Help sdk help

Commands

Overview:

  • check available versions sdk list <SDK_NAME>
  • install:
    • latest version sdk install <SDK_NAME>
    • previous version sdk install <SDK_NAME> <VERSION_NUMBER>
    • specific version, eg openJDK 16 for java sdk install java 16.0.1.j9-adpt
  • switch (between installed) version:
    • for this shell instance only sdk use <SDK_NAME> <VERSION_NUMBER>
    • for next shell instances sdk default <SDK_NAME> <VERSION_NUMBER>
  • show version used sdk current <SDK_NAME>
  • check for upgrade sdk upgrade <SDK_NAME>
  • remove sdk remove <SDK_NAME>

Distribution-level

Upgrade modes:

  • Long-Term Support (LTS)
  • normal

Ubuntu

List & change upgrade mode:

  • CLI : vi /etc/update-manager/release-upgrades
  • GUI: run software-properties-gtk (Software & update, update tab
Processed to upgrade:
  • CLI: do-release-upgrade
  • GUI
⚠️ **GitHub.com Fallback** ⚠️