I want to add the Parabola mirror to the Arch repos so I can install free software like Iceweasel (I prefer Iceweasel over Firefox) and still use non-free software (like NVIDIA driver). How can I tell pacman to only install e. g. Iceweasel over the new mirror. Do I have to put it down in /etc/pacman.conf and in the mirrorlist?
Last edited by To98 (2013-09-16 16:50:58)
the parabola mirror should not interfere with the default arch mirrors. AFAIK the pacakge names do not overlap. If a package is in both repositories, the free version will have a -libre suffix. I'm not sure if there is an automatic replacement ongoing using the pacman replace mechanism. If this is the case, I suggest you use the AUR or download the pacakges from the mirror manually.
Last edited by progandy (2013-09-16 16:21:53)
You can use the AUR, but you usually have to compile these packages: https://aur.archlinux.org/packages/?O=0&K=iceweasel
You don't have to compile this one: https://aur.archlinux.org/packages/iceweasel-bin/
Are the repos on the Parabola mirror named the same as the official repos (core, extra, community)?
If no then place the Parabola repo after the Arch Linux repos. Pacman searches the repos in pacman.conf in order and installs the first matching package that it finds.*
If yes then you cannot do it as Pacman has no way to tell the mirrors apart and mixing different repos with the same name is a bad idea (e.g. when Pacman fails over to a different mirror you may end up with inconsistent dependencies and a broken system). You can either install the packages manually with "pacman -U <url>", download them to create a local repo, or write a simplified server that translates the database name on the fly.
Incidentally, iceweasel is available in the AUR so it's not necessary to use the Parabola mirrors. It may even be a bad idea to use them if the packages are built against different dependencies.
* You can use repo prefixes to change this when necessary. For example, if "bar" is a package in both the "community" repo and the "foo" repo, with "foo" occurring after "community" in pacman.conf, then "pacman -S bar" will install the package from community, whereas "pacman -S foo/bar" will install it from bar. Of course, if "bar" only exists in "foo" then "pacman -S bar" will install it from foo.
Thank you all!
I know that there is Iceweasel in AUR but some other packages are not and I love the idea of a free system but don't want to only use free software.
I have added the libre repo before [core] but I have set to ignore some packages so that my system still works. I have not added the mirror to the mirrorlist because I think it's better to add it to the /etc/pacman.conf to avoid errors.
This is my /etc/pacman.conf with the libre repo: http://pastebin.com/Prf5Sshr
If I'd would put libre down then pacman would use the core and use libre only if the package was only available there. Right?
I think it's nice to have a most parts of my system free but some of them need to be non-free. (Try to play Rigs of Rods with nouveau driver and you'll know what I mean ).
The best of all is: If I switch my mind I only have to delete the *-libre packages and install the packages without '*-libre'. Then remove [libre] from the pacman.conf and have my pure Arch system back. I think I'll try it and look where the problems are...
Thank you all again!! Really great community!
Last thing: I can everyone recommend to try the libre repo. After holding linux-libre and linux-libre-firmware (My graphic has no 3D boost with it) on my Netbook and updating the rest it runs a bit smoother. Also Iceweasel is a bit smoother than FIrefox when scrolling. Don't ask me why but I noticed this.
Oh and btw. I had to downgrade my XServer to get my graphic working again without any problems (not related to the libre repo but for those who are wondering because I have written something about graphic bugs on my Netbook in another thread).
Last thing: I can everyone recommend to try the libre repo.
Whilst I would love to try something out like this, coaxing my graphics card to work with anything less than reasonable is not possible with Parabola.
I have added the parabola repo but blocked the installation of the free graphic driver with /etc/pacman.conf so I can use the non-free nvidia driver.
I also don't use the linux-libre kernel because it slows down my system:
IgnorePkg = linux-libre bumblebee-libre
After adding the libre repo I have updated only one package at a time and did a reboot after that. If everything worked I've updated the next one .... All not working ones are marked in the pacman.conf. This procedure took me around 30 minutes.
To say it short I've combined the best of two worlds and have a good and (until now) stable system.
Just a confirmation :
With pacman, when it looks for satisfied dependencies, it looks for the "provides" array in a PKGBUILD, not the actual name of the package? That is why when adding the 'libre' repo, even though the name of the package ends with '-libre', pacman tries to replace linux by linux-libre, right?
Yes, you're right.
I don't know if I can handle this different but for me it's the best to add them to pacman.conf.
It's the first project with Arch after a long time without Arch Linux and this buggy distro called Ubuntu so I have to learn such things again (e. g. how pacman works and so on)...
Again, the best way to do this is to add the libre repo after the official repos if you just want to use some of the libre packages. Mixing and matching dependencies across multiple overlapping repos is a bad idea. Stick to one package ecosystem for the important packages and install a selection from the other (e.g. iceweasel).
@Xyne I want to have every package, I can use in the libre version, from the Parabola repo so I put it in the first line (why use closed source if open source works the same way?). Packages that are not in Parabola do I use from the Arch repo. So I have to the libre repo put it on top of all the other repos because I want it to replace all the other ones. BUT: I have to hold some of them because I can't use linux-libre for example or the nouveau driver.
why use closed source if open source works the same way?... I have to hold some of them because I can't use linux-libre for example or the nouveau driver.
So, you're saying they don't work the same way.
Are you sure that e.g. the configuration for all the FLOSS packages is the same? Unless they have a rule against modifying stock Arch PKGBUILDs unless necessary for the -libre stuff, you'd have to check all their PKGBUILDs. Also, there's no point opening bug reports for -libre packages in the Arch Linux bugtracker.
You are free to do whatever you want with your system, including break it. I am simply emphasizing that I would not pull a kernel from one repo and then most other packages from a different repo in which they are built against a different kernel unless I was absolutely sure a) the kernels in both were strictly compatible (which they won't be if they have simply removed some drivers) and b) the repos are kept in perfect sync with each other as an upgrade in one but not the other will eventually lead to broken dependencies (Arch does not support partial upgrades yet this is effectively what you are doing).
Beyond that, if you are using the libre repo as your main repo then you are effectively running Parabola with a sprinkling of Arch packages, so we will not be able to provide support here, as hinted above by karol.
Are you sure that e.g. the configuration for all the FLOSS packages is the same? Unless they have a rule against modifying stock Arch PKGBUILDs unless necessary for the -libre stuff, you'd have to check all their PKGBUILDs.
Yes, this is how Parabola works as far as I understand. Remaining the Arch way as much as possible while also being FSF compliant