You are not logged in.
Hi,
I'm building an install CD to install an ArchLinux system with openrc.
As a first attempt I just wrote a script removing all the systemd-stuff and installing openrc. However I'm not happy with it, because why install all the stuff just to remove it again?
So I looked at just changing the
pacstrap
script.
One way to do it would be to just pass the list of required packages to the
pacman -Sy
command. However I'd like to work as closely as possible with the original
pacstrap
script. Just leave out the package containing systemd and then installing the packages required for openrc.
But which of these packages from the Base Group is the one to omit?
These are the packages to be selected:
]http://puu.sh/hU8Ym/915d62f09d.jpeg
This what will be installed when selecting all (default).
http://puu.sh/hU91S/adc0b8af27.jpeg
Mod note: Converted imgs to urls. -- WorMzy
Last edited by Arhat (2015-07-06 15:23:57)
Offline
1. Top right, Packages, search field, systemd, dependency list. Compare with base packages.
2. On system with systemd, pactree systemd.
3 -Qi systemd
Offline
Arhat, please don't embed large images into your posts.
Sakura:-
Mobo: MSI MAG X570S TORPEDO MAX // Processor: AMD Ryzen 9 5950X @4.9GHz // GFX: AMD Radeon RX 5700 XT // RAM: 32GB (4x 8GB) Corsair DDR4 (@ 3000MHz) // Storage: 1x 3TB HDD, 6x 1TB SSD, 2x 120GB SSD, 1x 275GB M2 SSD
Making lemonade from lemons since 2015.
Offline
Are you aware of the existing openrc/Arch work: https://bbs.archlinux.org/viewtopic.php?id=152606
Offline
Check the documentation for pacman and the -Qs switch.
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline
Removing systemd is in no way needed to use a different init. udev also keeps working. So why remove systemd? (besides make life needlessly difficult)
Mods are just community members who have the occasionally necessary option to move threads around and edit posts. -- Trilby
Offline
Arhat, please don't embed large images into your posts.
Apologies.
Are you aware of the existing openrc/Arch work: https://bbs.archlinux.org/viewtopic.php?id=152606
Yes I am, and I'm grateful for the great work done there. I have converted converted some of my systems to using openrc. However now I want to remaster the install ISO to install an ArchLinux system with openrc. I have searched but have not found something like that.
1. Top right, Packages, search field, systemd, dependency list. Compare with base packages.
2. On system with systemd, pactree systemd.
3 -Qi systemd
Check the documentation for pacman and the -Qs switch.
Either I'm just to stupid to see it:
pactree systemd
systemd
├─acl
│ └─attr
│ └─glibc
│ ├─linux-api-headers
│ ├─tzdata
│ └─filesystem
│ └─iana-etc
├─bash
│ ├─readline
│ │ ├─glibc
│ │ └─ncurses
│ │ ├─glibc
│ │ ├─gcc-libs
│ │ │ └─glibc
│ │ └─bash provides sh
│ └─glibc
├─dbus
│ ├─libdbus
│ │ └─glibc
│ └─expat
│ └─glibc
├─glib2
│ ├─pcre
│ │ ├─gcc-libs
│ │ ├─readline
│ │ ├─zlib
│ │ │ └─glibc
│ │ ├─bzip2
│ │ │ └─glibc
│ │ └─bash
│ └─libffi
│ └─glibc
├─iptables
│ ├─glibc
│ └─bash
├─kbd
│ ├─glibc
│ └─pam
│ ├─glibc
│ ├─cracklib
│ │ ├─glibc
│ │ └─zlib
│ ├─libtirpc
│ │ └─krb5
│ │ ├─e2fsprogs
│ │ │ ├─bash provides sh
│ │ │ └─libutil-linux
│ │ ├─libldap
│ │ │ ├─libsasl
│ │ │ │ └─openssl
│ │ │ │ ├─zlib
│ │ │ │ └─perl
│ │ │ │ ├─gdbm
│ │ │ │ │ ├─glibc
│ │ │ │ │ └─bash provides sh
│ │ │ │ ├─db
│ │ │ │ │ ├─gcc-libs
│ │ │ │ │ └─bash provides sh
│ │ │ │ └─glibc
│ │ │ └─e2fsprogs
│ │ └─keyutils
│ │ ├─glibc
│ │ └─bash provides sh
│ └─pambase
├─kmod
│ ├─glibc
│ ├─zlib
│ └─xz
│ └─bash provides sh
├─hwids
├─libcap
│ ├─glibc
│ └─attr
├─libgcrypt
│ └─libgpg-error
│ ├─glibc
│ └─bash provides sh
├─libsystemd
│ ├─glib2
│ ├─glibc
│ ├─libgcrypt
│ ├─lz4
│ │ └─glibc
│ └─xz
├─libidn
│ ├─glibc
│ └─texinfo
│ ├─ncurses
│ ├─findutils
│ │ ├─glibc
│ │ └─bash provides sh
│ ├─gzip
│ │ ├─glibc
│ │ ├─bash
│ │ └─less
│ │ ├─glibc
│ │ ├─ncurses
│ │ └─pcre
│ ├─perl
│ └─bash provides sh
├─lz4
├─pam
├─libseccomp
│ └─glibc
├─util-linux
│ ├─pam
│ ├─shadow
│ │ ├─bash
│ │ ├─pam
│ │ └─acl
│ ├─coreutils
│ │ ├─glibc
│ │ ├─pam
│ │ ├─acl
│ │ ├─gmp
│ │ │ ├─gcc-libs
│ │ │ └─bash provides sh
│ │ ├─libcap
│ │ └─openssl
│ ├─libsystemd
│ └─libutil-linux
└─xz
sudo pacman -Qi systemd
[sudo] password for dlingel:
Name : systemd
Version : 219-6
Description : system and service manager
Architecture : x86_64
URL : http://www.freedesktop.org/wiki/Software/systemd
Licences : GPL2 LGPL2.1 MIT
Groups : None
Provides : nss-myhostname systemd-tools=219 udev=219
Depends On : acl bash dbus glib2 iptables kbd kmod hwids libcap libgcrypt libsystemd libidn lz4
pam libseccomp util-linux xz
Optional Deps : python: systemd library bindings [installed]
cryptsetup: required for encrypted block devices [installed]
libmicrohttpd: remote journald capabilities
quota-tools: kernel-level quota management
systemd-sysvcompat: symlink package to provide sysvinit binaries [installed]
polkit: allow administration as unprivileged user [installed]
Required By : chromium colord cups device-mapper lib32-systemd libgusb libpulse libusb lvm2
media-player-info mesa mkinitcpio mysql pcmciautils pcsclite polkit qt5-base qtwebkit
subversion syslog-ng systemd-sysvcompat udisks udisks2 upower xf86-input-evdev
xf86-video-ati
Optional For : None
Conflicts With : nss-myhostname systemd-tools udev
Replaces : nss-myhostname systemd-tools udev
Installed Size : 25.37 MiB
Packager : Dave Reisner <dreisner@archlinux.org>
Build Date : Wed 22 Apr 2015 03:02:01 CEST
Install Date : Wed 29 Apr 2015 11:11:21 CEST
Install Reason : Explicitly installed
Install Script : Yes
Validated By : Signature
sudo pacman -Qs systemd
local/lib32-systemd 219-1
system and service manager (32-bit)
local/libsystemd 219-6
systemd client libraries
local/systemd 219-6
system and service manager
local/systemd-sysvcompat 219-6 (base)
sysvinit compat for systemd
or have not been able to express properly what I want to do?
Which of the 50 members of the base group contains the systemd-stuff?
Offline
Follow my 1. On the page is a list of packages depending on systemd, as well as in -Qi. Compare this with the base install. Alternatively, try removing systemd. Pacman will tell you what depends on it. Follow the trail.
Offline
I'm surprised that you haven't even come as far as identify systemd-sysvcompat in the list of base packages...
You want packages depending on systemd (so reverse pactree) compared with base packages:
$ comm -12 <(pactree -lr systemd | sort) <(pacman -Sgq base | sort)
cryptsetup
device-mapper
linux
lvm2
netctl
pcmciautils
systemd-sysvcompat
usbutils
Offline
No, I'm not trying to find the packages depending on systemd.
I wanted to know which of the 50 members of the Group - base is "pulling" in the systemd.
Or am I to understand from Raynman's answer above that systemd is being pulled in by all and any of these 8?
cryptsetup
device-mapper
linux
lvm2
netctl
pcmciautils
systemd-sysvcompat
usbutils
If that is the case, then it will be easier for me to not work with the base-group but to just pass the list of required packages to the pacman -Sy command in pacstrap.
Offline
No, I'm not trying to find the packages depending on systemd.
I wanted to know which of the 50 members of the Group - base is "pulling" in the systemd.
They're the same thing.
Offline
That pactree command seems to give the wrong output, as linux doesn't need systemd.
pacman -Qi systemd | grep Required
That will show you the packages on your system that NEED systemd and will pull it in when they are installed.
compare the output with that of
pacman -Qg base
packages on both lists are those in base that pull in systemd.
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
(A works at time B) && (time C > time B ) ≠ (A works at time C)
Offline
Why would a package pull in another unless it depends in it?
Offline
pacman -Qi systemd | grep Required
That will show you the packages on your system that NEED systemd and will pull it in when they are installed.
compare the output with that of
pacman -Qg base
packages on both lists are those in base that pull in systemd.
Thank you Lone_Wolf, that is usefull stuff to know. I can work with that.
Why would a package pull in another unless it depends in it?
pacman -Qi systemd | grep Required
Required By : chromium
Because it has systemd listed as a dependancy?
And some of them are totally unexpected, like Chromium.
Offline
Awebb wrote:Why would a package pull in another unless it depends in it?
pacman -Qi systemd | grep Required Required By : chromium
Because it has systemd listed as a dependancy?
And some of them are totally unexpected, like Chromium.
So it depends on systemd, right? The dependency system means that a package lists all needed packages and then when the package is installed, pacman installs all of the listed dependencies (or pulls them in in your words). The two statements are equivalent, although Awebb should have used on instead of in.
Offline
Awebb wrote:Why would a package pull in another unless it depends in it?
pacman -Qi systemd | grep Required Required By : chromium
Because it has systemd listed as a dependancy?
...
Let me ask another question (for you and Lone_Wolf): "Required By" in `pacman -Qi` output is just a list -- where does the "tree" in "pactree" come from?
Also note that, for this, you can only use -Q (instead of -S) when you're certain you have all the base packages installed.
Offline
Let me ask another question (for you and Lone_Wolf): "Required By" in `pacman -Qi` output is just a list -- where does the "tree" in "pactree" come from?
Both should use metadata in .PKGINFO all packages have.
The main reason i gave 2 separate commands is that
comm -12 <(pactree -lr systemd | sort) <(pacman -Sgq base | sort)
is beyond my level of bash understanding and it clearly doesn't give the desired output as it lists the kernel as needing systemd.
I feel it's better to use commands you understand although they may not be the most efficient way to solve something.
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
(A works at time B) && (time C > time B ) ≠ (A works at time C)
Offline
The reason you get linux is because mkinitcpio depends on systemd. mkinitcpio is required by linux. The problem with the command (that I can spot) is that you didn't specify the depth of the tree. This defaults to 3, so you get all kinds of second and third level dependencies. The corrected command should be:
comm -12 <(pactree -lr -d 1 systemd | sort) <(pacman -Sgq base | sort)
Note the -d 1. This sets the depth to 1 and thus only lists direct requirements.
Offline
Yes, Lone_Wolf was ignoring anything beyond depth 1. Why would you want to do that? If you don't want systemd to get pulled in as a dependency, you need to account for all these packages. Hence I didn't want to limit the depth and as far as I can see there is also no default limit of 3?
Offline
that does make sense, although the piping / sort combo still confuses me.
Arhat, you will want to replace stock mkinitcpio with https://aur.archlinux.org/packages/mkin … nosystemd/ .
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
(A works at time B) && (time C > time B ) ≠ (A works at time C)
Offline
Yes, Lone_Wolf was ignoring anything beyond depth 1. Why would you want to do that? If you don't want systemd to get pulled in as a dependency, you need to account for all these packages. Hence I didn't want to limit the depth and as far as I can see there is also no default limit of 3?
Because if you don't use depth 1, you will end up with a gigantic list which is not helpful. Most of the packages do not directly depend on systemd and, as such, give no information which packages to look into to remove the explicit systemd dependency.
You'll have to note one thing though. In Arch there are implicit dependencies on the base group and dependencies that are already pulled in by another dependency don't need to be listed (although I have no clue how many packages actually do this).
Offline
...
Arhat, you will want to replace stock mkinitcpio with https://aur.archlinux.org/packages/mkin … nosystemd/ .
Okay, I'll definitely look into that. I had not found that mentioned in the guides I was following to install openrc. (I was relying mostly on this here: Archlinux and openrc)
Offline
Raynman wrote:Yes, Lone_Wolf was ignoring anything beyond depth 1. Why would you want to do that? If you don't want systemd to get pulled in as a dependency, you need to account for all these packages. Hence I didn't want to limit the depth and as far as I can see there is also no default limit of 3?
Because if you don't use depth 1, you will end up with a gigantic list which is not helpful. Most of the packages do not directly depend on systemd and, as such, give no information which packages to look into to remove the explicit systemd dependency.
Depth 1 gives you five base packages instead of the eight I listed above. You can choose not to install those five (might be doable if you don't need lvm/encryption), but pacman will still pull in systemd as a(n indirect) dependency of the other three and you can't just leave out linux, so you have to take additional steps to see if you can break the dependency on systemd (with mkinitcpio-nosystemd).
It is true that you could narrow it down a little further. I had both cryptsetup and device-mapper in my list and in `pactree cryptsetup` systemd only shows up in the subtree under device-mapper. That doesn't apply to usbutils and linux, so that leaves seven base packages that pull in systemd.
Offline
Awebb wrote:Why would a package pull in another unless it depends in it?
pacman -Qi systemd | grep Required Required By : chromium
Because it has systemd listed as a dependancy?
And some of them are totally unexpected, like Chromium.
But you said:
No, I'm not trying to find the packages depending on systemd.
I don't know if we have a language barrier here or what, but this is getting comprehensible.
Offline
I don't know if we have a language barrier here or what, but this is getting comprehensible.
Comprehensible? Incomprehensible?
...
But you said:Arhat wrote:No, I'm not trying to find the packages depending on systemd.
What I said was:
Arhat wrote:No, I'm not trying to find the packages depending on systemd.
I wanted to know which of the 50 members of the Group - base is "pulling" in the systemd.They're the same thing.
I was not aware that something as vital as an init-system was only being pulled in as a dependency.
Thus as the title says I was looking for the member of the group base installing systemd.
Once I understood that systemd is merely being pulled in a dependency, I obviously then needed to find the packages pulling it in.
If that is incomprehensible, never mind, I had a mistake in my thinking, probably a real newbie error .. but then I did post here in the Newbie Corner.
Offline