-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhow-many-apps-installed
148 lines (96 loc) · 5.23 KB
/
how-many-apps-installed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#!/bin/bash
## Developed for Linux
## License: GNU GPL v.3 http://www.gnu.org/licenses/gpl-3.0.en.html
VERSION='6'
## Destiny: To show how many packages do you have installed
## Script usage: bash script_name
##============================
## Info: Sometimes it happens that applications are installed from
## a second shell that has its own settings, e.g. ROOT_PREFIX.
## ( I seen this in some application for miniconda settings)
## This means that additional applications can only be
## visible from this second shell.
##
echo "Installed packages:"
echo "=================="
#------------------------{
## System managers:
# For Fedora
[[ ! -z $(type -P dnf) ]] && DNF=$(dnf list installed | wc -l) && echo "dnf = $DNF"
# For based on Debian
[[ ! -z $(type -P apt) ]] && APT=$(apt list --installed 2>/dev/null | sed '1d' | wc -l) && echo "apt = $APT"
# For based on Arch Linux
[[ ! -z $(type -P pacman) ]] && PAC=$(pacman -Qn | wc -l) && echo "pacman = $PAC"
[[ ! -z $(type -P pacman) ]] && AUR=$(pacman -Qm | wc -l) && echo "AUR = $AUR"
# For example: Fedora, OpenSuse
[[ ! -z $(type -P rpm) ]] && RPM=$(rpm -qa | wc -l) && echo "rpm = $RPM"
# yum list --installed = list rpm only for Fedora
# zypper search -i = list rpm only for OpenSuse
# For based on Slackware
[[ ! -z $(type -P slapt-get) ]] && Slackware=$(slapt-get --installed | wc -l) && echo "Slackware b. = $Slackware"
# Slackware OS
[[ -d "/var/log/packages" ]] && Slackware=$(ls -1 /var/log/packages | wc -l) && echo "Slackware = $Slackware"
# For FreeBSD
[[ ! -z $(type -P pkg) ]] && PKG_info=$(pkg info | wc -l) && echo "pkg = $PKG_info"
# For Gentoo
[[ ! -z $(type -P equery) ]] && Equery=$(equery list | wc -l) && echo "Equery = $Equery"
# For Cygwin
[[ ! -z $(type -P cygcheck) ]] && Cygcheck=$(cygcheck --check-setup --dump-only * | wc -l) && echo "cygcheck = $Cygcheck"
#------------------------}
#---------------------------------{
## Portable package managers:
[[ ! -z $(type -P flatpak) ]] && FLAT=$(flatpak list --runtime | wc -l) && echo "flatpak = $FLAT"
[[ ! -z $(type -P snap) ]] && SNAP=$(snap list | sed '1d' | wc -l) && echo "snap = $SNAP"
# alpha command to test
Count_AppImages=$(locate "AppImage.config" | grep "config"$ | wc -l)
[[ "$Count_AppImages" -ge "1" ]] && echo "AppImages = $Count_AppImages"
#---------------------------------}
#--------------------------------------{
## Other package managers:
[[ ! -z $(type -P pip) ]] && PIP=$(pip list | wc -l) && echo "pip = $PIP"
[[ ! -z $(type -P npm) ]] && NPM=$(npm ls --parseable | grep -v '/home' | wc -l) && echo "npm = $NPM"
# JavaScript package manager , alternative to the npm
[[ ! -z $(type -P yarn) ]] && Yarn=$(yarn global list | wc -l) && echo "yarn = $Yarn"
# For Rust
[[ ! -z $(type -P cargo) ]] && Cargo=$(cargo --list | wc -l) && echo "cargo = $Cargo"
# Anaconda, conda, miniconda,
[[ ! -z $(type -P conda) ]] && Conda=$(conda list | grep -v ^'#' | wc -l) && echo "conda = $Conda"
# asdf is a CLI tool that can manage multiple language runtime versions
[[ ! -z $(type -P asdf) ]] && Asdf=$(asdf latest --all | wc -l) && echo "asdf = $Asdf"
[[ ! -z $(type -P postinstallerf) ]] && echo "postinstallerf = app with GUI"
# Alternative for Ubuntu Software Center
[[ ! -z $(type -P appgrid) ]] && echo "appgrid = app with GUI"
# UPT - Universal Package-management Tool
[[ ! -z $(type -P upt) ]] && Upt=$(upt list | wc -l) && echo "upt = $Upt"
# "Alpine Package Keeper"
[[ ! -z $(type -P apk) ]] && Apk=$(apk list -I | wc -l) && echo "apk = $Apk"
# Mac using Homebrew brew list
[[ ! -z $(type -P brew) ]] && Brew=$(brew list | wc -l) && echo "brew = $Brew"
# cards list
[[ ! -z $(type -P cards) ]] && echo "cards app found, but I don't know what it is. Node.js projects?"
[[ ! -z $(type -P cards) ]] && Cards=$(cards list | wc -l) && echo "cards = $Brew"
# choco list = only for W. system
# Part of the Portage package management system in Gentoo
[[ ! -z $(type -P qlist) ]] && Qlist=$(qlist -Iv | wc -l) && echo "brew = $Qlist"
# The package manager of the Solus project, a rolling-release Linux distribution
[[ ! -z $(type -P eopkg) ]] && Eopkg=$(eopkg list-installed | wc -l) && echo "eopkg = $Eopkg"
# GNU Guix is the default package manager of the GNU Guix System distribution
[[ ! -z $(type -P guix) ]] && Guix=$(guix package -I | wc -l) && echo "guix = $Guix"
# Nix is a package manager from NixOS Linux distribution
[[ ! -z $(type -P nix-env) ]] && Nixenv=$(nix-env -q | wc -l) && echo "nix-env = $Nixenv"
# OpenWrt
[[ ! -z $(type -P opkg) ]] && Opkg=$(opkg list-installed | wc -l) && echo "opkg = $Opkg"
# Used by Haiku OS
[[ ! -z $(type -P pkgman) ]] && Pkgman=$(pkgman search -i -a | wc -l) && echo "pkgman = $Pkgman"
# Used by Crux OS
[[ ! -z $(type -P prt-get) ]] && Prtget=$(prt-get listinst | wc -l) && echo "prt-get = $Prtget"
# scoop list = Scoop is a command-line installer for W.
# pkgutil --pkgs = list all the packages installed with Apple's installer
# winget list = W. Package Manager
# Void Linux OS
[[ ! -z $(type -P xbps-query) ]] && Xbps=$(xbps-query -l | wc -l) && echo "xbps-query = $Xbps"
#--------------------------------------}
#-------------------------------{
echo " "
echo " Number of all commands: $(compgen -c | wc -l) "
#-------------------------------}