maximbaz / dotfiles

Configuration for NixOS, sway, kitty, helix, zsh and more
ISC License
962 stars 105 forks source link

Question: How to resolve "ksnip" dependency error? #19

Closed n1ete closed 4 years ago

n1ete commented 4 years ago

when run the install script i stumble on an error at the "pacstrap" line with an ksnip dependency error. i did remove the "ksnip" line in PKGBUILD though. any hints how to resolve this? thanks for sharing your dots!

maximbaz commented 4 years ago

Hey, thanks for the ping! Apologies, this is caused because I have an imperfect way of managing packages yet. I should be fixed now! Let me know if you still experience the issue, or if you get any other questions!

n1ete commented 4 years ago

thanks for the quick reply ;) ksnip dependency error is resolved, thanks! now i run in a conflict error with "virtualbox-host-modules-arch" and "virtualbox-host-dkms" packages.

maximbaz commented 4 years ago

Oh right... It's something new, I haven't had that error when I installed Arch last time, but I know what you are seeing as someone has actually mentioned that to me already but I haven't had time to investigate properly...

To give you a short overview: install.sh does pacstrap /mnt maximbaz, maximbaz package lists virtualbox and virtualbox-host-modules-arch as dependencies, but virtualbox in turn requres VIRTUALBOX-HOST-MODULES dependency that is provided by two modules (either virtualbox-host-modules-arch or virtualbox-host-dkms). So for some reason pacman decides that it wants to install virtualbox-host-dkms, even though virtualbox-host-modules-arch is already specified as a dependency of maximbaz, and two virtualbox-host-* packages cannot coexist, so you get an error conflict.

I'll try to play now and see what we can do about it...

maximbaz commented 4 years ago

As a workaround for your fork, until we get a proper solution, I believe you could run pacstrap /mnt virtualbox-host-modules-arch just before pacstrap /mnt maximbaz in install.sh - haven't tested, but should work. Let me know if it doesn't.

n1ete commented 4 years ago

are there any drawbacks to use the dkms package on an default kernel? if not then you could just define the dkms package as dependency anyways...? thanks for the explanation, will try your workaround asap... ;)

maximbaz commented 4 years ago

As far as I understand, the only drawback is that when you will be upgrading kernel package, you will be re-compiling all -dkms packages as well, which will make the upgrade process annoyingly slower. Lets see if we can get -arch one work 😄

n1ete commented 4 years ago

As a workaround for your fork, until we get a proper solution, I believe you could run pacstrap /mnt virtualbox-host-modules-arch just before pacstrap /mnt maximbaz in install.sh - haven't tested, but should work. Let me know if it doesn't.

that worked for now thanks! let me know what long term solution you applied, if you found one. ;) thanks again

maximbaz commented 4 years ago

I could came up with two approaches to choose from:

  1. Split metapackage in two, maximbaz and maximbaz-prerequisites, the latter only defining dependencies that are needed by tools in the former package. The problem is that there is no clear way to understand which package need to go under maximbaz or maximbaz-prerequisites - while it is clear for virtualbox-host-*, for example dmenu-term is a standalone package that I use directly, but it also is a package that provides dmenu. Also, there is no clear way to catch when new dependencies appear - when I was installing Arch last time, there was no such issue with virtualbox-host-* dependencies, so it must have appeared recently.

  2. Use interactive mode of pacstrap with -i and let human make all the decisions during Arch installation - so pacman instead of defaulting to a (wrong) dependency will ask you, which one you want to install.

The first option is appealing because it would make stuff completely automated, but it seems it will have a lot of hidden stones in practice 😞 I think I will go for a simple second option...

n1ete commented 4 years ago

you could make the "interactive mode" available as choice at the beginning maybe?

did run into another issue (should i open another one for that?)

install.sh fails to modify permissions on line chmod 600 /mnt/boot/initramfs-linux* and didnt found anything in /mnt/boot despite of intel-ucode so the mkinitcpio command failed, not sure why yet....

maximbaz commented 4 years ago

you could make the "interactive mode" available as choice at the beginning maybe?

If we allow to not choose interactive mode, then we'll have to support some other way, as installation will be failing anyway as it did for you... I think it's fine, installation script anyway requires some input from a user (username, hostname, etc), it will just be asking a few other questions.

did run into another issue (should i open another one for that?) install.sh fails to modify permissions on line chmod 600 /mnt/boot/initramfs-linux*

we can keep using this thread 🙂

yeah it sounds indeed that mkinitcpio -p linux failed... Do you see any error logs?

maximbaz commented 4 years ago

I must leave now, will be back in 8 hours 😄 Good luck with installation, do feel free to keep posting updates here, I'll reply in the morning 😉

pbt001 commented 4 years ago

Same problems here with mkinticpio -p linux...

### Installing GRUB
chmod: cannot access '/mnt/boot/initramfs-linux*' : No such file or directory
bash: Error on line 193: chmod 600 /mnt/boot/initramfs-linux*

To get to that, I changed the install.sh in line 163, as mentioned above to

pacstrap /mnt virtualbox-host-modules-arch
pacstrap /mnt maximbaz
maximbaz commented 4 years ago

I already updated install.sh to use pacstrap -i https://github.com/maximbaz/dotfiles/commit/47cec9613fcedc2c62220a44af813c94480562f4, so hopefully that part is solved now.

do you see any error with mkinitcpio or it just silently doesn't do anything?

I'll spin up a vm tonight to get this tested as well 👍

pbt001 commented 4 years ago

I already updated install.sh to use pacstrap -i 47cec96, so hopefully that part is solved now.

Yes but unfortunately this does not work here.

do you see any error with mkinitcpio or it just silently doesn't do anything?

It only shows the errors as stated here plus that the choices for conflicting packages can't be made, I count 8, e.g. virtualbox-host-modules-arch, dmenu,...

I'll spin up a vm tonight to get this tested as well 👍

Cool, looking forward to your outcome!


In the meantime, what part of the script should make sure that /mnt/boot/initramfs-linux* is there?

maximbaz commented 4 years ago

Hey guys, I tested in virtualbox, installation was failing because curl -sL ... | bash stole stdin; https://github.com/maximbaz/dotfiles/commit/c45390eba73153aa498f4972f59099b72ff97f61 now specifies bash <(curl -sL ...) approach which works better.

The installation succeeds on my virtualbox test environment. Would you be able to test as well?

In the meantime, what part of the script should make sure that /mnt/boot/initramfs-linux* is there?

I believe it's mkinitcpio -p linux - but I can't reproduce the issue. Maybe it was also somehow caused by stolen stdin? 🤔

Other idea: are you booting in UEFI or legacy?

pbt001 commented 4 years ago

Thanks for your update. This helped, i.e, it was now possible to use the interactive interface and I chose the second option regarding the conflicting package as you recommend before. But I have to use 'maximbaz' as user name to decrypt the drive. When I boot up, I can't use my keyboard and mouse though (testing on a desktop pc) and thus I can't re-run the System and User Script. Should this be possible without changing more things in the repo? Also, I tried to run the scripts via the live USB stick but I couldn’t figure out how to mount the btrf drives to run these scripts with arch-chroot. What do you suggest to proceed and test your Setup on the desktop system before changing it to my preferences?

maximbaz commented 4 years ago

This helped, i.e, it was now possible to use the interactive interface and I chose the second option regarding the conflicting package as you recommend before.

🎉

But I have to use 'maximbaz' as user name to decrypt the drive.

Hmm, I wonder where that comes from, install.sh seems to be respecting entered username, on a first glance 🤔 This is not at LUKS stage, is it? That one doesnt ask for username at all...

When I boot up, I can't use my keyboard and mouse though (testing on a desktop pc) and thus I can't re-run the System and User Script

This is very strange!

Should this be possible without changing more things in the repo?

Keyboard and mouse should work, if that's what you are asking...

Also, I tried to run the scripts via the live USB stick but I couldn’t figure out how to mount the btrf drives to run these scripts with arch-chroot.

This might not be the simplest option, but since you asked, will answer for completeness 🙂

First you open LUKS like this:

https://github.com/maximbaz/dotfiles/blob/accc6f33c738ec70587ca052089f1feb5ba284d3/install.sh#L121

Then you mount like this (mkdir -p can be skipped):

https://github.com/maximbaz/dotfiles/blob/accc6f33c738ec70587ca052089f1feb5ba284d3/install.sh#L136-L146

What do you suggest to proceed and test your Setup on the desktop system before changing it to my preferences?

Do I understand correctly that username is not really a blocker for you, since you are simply trying out, but non-working mouse and keyboard is the primary problem to solve?

Does the keyboard not work even in other ttys, e.g. pressing Ctrl+Alt+F2 doesnt do anything?

n1ete commented 4 years ago

sry i didnt had time to test the changes yet and follow a different route for now with eoli3n's arch-config script, that offers an approach with 'zfs'. Since i am one of those rare solaris users i am quite happy with the performance on arch and decided to stick with zfs on linux as a daily driver for now. You and eoli3n's dotfiles inspired me to create my own install script now, where i try to combine the best parts of each together. i will upload this one sooner or later here on github. since you wrote several times that you didnt used the script for a long time anymore, wich distro did you switch to? anyways thanks again for sharing this inspiring repo ;) cheers

maximbaz commented 4 years ago

Nice! I went for btrfs over zfs simply because it's part of the kernel and I haven't had the need for any advanced stuff that zfs gives you 🙂 But good luck with it! Would be interesting to have a look at your install script once you make it available 😉

since you wrote several times that you didnt used the script for a long time anymore

oh no, I'm still using Arch and these exact dotfiles, what I meant is that I didn't go though installation procedure for a long time - last time I installed I think half a year ago, when I got a new laptop.

I do intend to keep the install script functional, so things like interactive pacstrap that we discovered in this thread are definitely beneficial 🙂

n1ete commented 4 years ago

i ping you when its done ;) i didnt got trough the process creating my own repo like you did but i think i need to, to understand the whole process. its i nice way for offline installations and keeping all your needed packages together. are there any special changes to the packages in your repo compared to the aur/official ones or can i see them just as a bundle?

maximbaz commented 4 years ago

Great, thanks! To avoid any unclarities when answering your question, let us distinguish:

maximbaz commented 4 years ago

I'll close the ticket assuming all the questions have been answered, thanks again for the ping about issues with installation script, and as always feel free to comment here or in a new ticket if you have any other questions, notes or feedback 😉