Which packages does EndeavourOS install by default?

Hello there.
So, I’m having a little bit of trouble pinning down the packages EndeavourOS installs by default. Lets say I deselect all the packages in Calamares selection screen. Does it then just install base, linux and linux-firmware. Or is there more. I combed through the EndeavourOS Github pages and the only documentation I could find is the pacstrap conf file. Are the basepackages all that would be installed in this scenario. Or am I missing something?

https://github.com/endeavouros-team/EndeavourOS-calamares/blob/7cd0881d9fc818f555fe7fd483c7a1092548a9b7/calamares/modules/pacstrap.conf

# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
### pacstrap Module
#
# This module installs the base system and then copies files
# into the installation that will be used in the installed system
#

---
# basePackages is an array of package names to pass to pacstrap
#
basePackages:
  - base
  - base-devel
  - btrfs-progs
  - cryptsetup
  - device-mapper
  - diffutils
  - dosfstools
  - dracut
  - e2fsprogs
  - efibootmgr
  - endeavouros-keyring
  - endeavouros-mirrorlist
  - exfatprogs
  - f2fs-tools
  - iptables-nft
  - inetutils
  - jfsutils
  - less
  - linux
  - linux-firmware
  - linux-headers
  - logrotate
  - lsb-release
  - lvm2
  - man-db
  - man-pages
  - mdadm
  - nano
  - netctl
  - ntfs-3g
  - perl
  - python
  - reiserfsprogs
  - s-nail
  - sudo
  - sysfsutils
  - systemd-sysvcompat
  - texinfo
  - usbutils
  - which
  - xfsprogs
  - xterm

#
# postInstallFiles is an array of file names which will be copied into the system
#
# The paths should be relative to the host and the files will be copied to the
# location in the installed system
#
postInstallFiles:
  - "/etc/pacman.conf"
  - "/etc/default/grub"
  - "/etc/calamares/scripts/chrooted_cleaner_script.sh"
  - "/etc/calamares/scripts/remove-ucode"
  - "/etc/dracut.conf.d/eos-defaults.conf"

If you do an online install and uncheck everything, 99% of the packages come from the pacstrap.conf file. Keep in mind, you need to look at that file from the tag used for that ISO. Right now you are looking at main which is showing you the packages that get installed in the next release, not the current ISO.

For example, this is the file you probably want:

The other place a small number of packages could be installed is in a script that runs at the end. That would mostly be drivers.

If you do an offline install, the packages are mostly determined at the time the ISO is built.

5 Likes

Welcome to the forum! :smile:

You can see what EndeavourOS packages you have currently installed by command

pacman -Sl endeavouros

If you want to see what packages are included on the ISO and will be installed in an offline installation, the file is on the ISO at arch/pkglist.x86_64.txt (or very similarly named). That file will also list packages used by the live system and the installer, and those files should be removed during installation, but the list is complete.

It isn’t complete. There are packages that we may install during the offline installation process that are not installed on the ISO.

and we do remove a lot of packages on targets for offline install too… the packages only needed for the ISO and install process/installer (calamares).

The EndeavourOS installer setup differs in one Major way too most other Distros using Calamares and this is the online installer setup.
As it is not using the ISO image at all and installs the system fresh from scratch.

Install happens in stages:

  1. online install
    a. pacstrap installs base system
    b. user select DE and can opt out packages, and basic Desktop packages getting added too that creates a list of packages getting installed in second stage.
    c. after install is finished, we detect hardware used and I decides to remove unneeded driver and virtual machine packages.

  2. offline install:
    a. the same system image used to load the ISO live-environment Desktop will get copied over to target.
    b. packages only needed on the live session and install process getting removed from target.
    c. after install is finished, we detect hardware used and I decides to remove unneeded driver and virtual machine packages.

So there is no 100%& way create a list of packages at it will differ on most systems and install methods… like in a VM it will have the needed VM-packages on a real hardware not but may some other drivers …

Was sitting with my coffee and was lazy so I wrote this down to entertain my time :wink:

Make it into a FAQ or wiki :sunglasses:

How does an offline install mode pull packages that are not on the ISO without going online? Am I missing something here? If the EndeavourOS offline installation pulls packages that are not included on the ISO, then it may be more accurately called an “offline capable” installation method that can complete with or without an internet connection, but operates differently if there happens to be an internet connection. I guess it is possible to include packages stored on the ISO but not installed in the live system, install them, and then remove those packages.

I think joekamprad summed it up:

And if this is accurate, then my initial assessment was pretty darn close. :slight_smile:

Am I reading the cleaner scripts correctly? Do they call packages to install that are stored in /opt/extra-drivers/ and install those packages if certain hardware conditions are present? If so, that is something I did not know or anticipate. I see package removal under certain conditions. Let me know. Thanks. If so, that is pretty cool.

Yes, the ISO includes package r8168 in /opt/extra-drivers and that can be installed during offline install. In principal there could be more driver packages to be installed what way when needed, but the size of the ISO is already very near to the limits of our workflow.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.