By: Andrey (andrey.semashev.delete@this.gmail.com), September 20, 2022 9:35 am
Room: Moderated Discussions
Adrian (a.delete@this.acm.org) on September 20, 2022 7:23 am wrote:
> Michael S (already5chosen.delete@this.yahoo.com) on September 20, 2022 2:05 am wrote:
> > anon2 (anon.delete@this.anon.com) on September 19, 2022 3:51 pm wrote:
> > > Michael S (already5chosen.delete@this.yahoo.com) on September 19, 2022 2:45 pm wrote:
> > > > Andrey (andrey.semashev.delete@this.gmail.com) on September 19, 2022 2:08 pm wrote:
> > > > > Michael S (already5chosen.delete@this.yahoo.com) on September 19, 2022 10:28 am wrote:
> > > > > > I realize that my question is not quite appropriate for RWT forum, but it
> > > > > > seems today few knowledgeable posters are bored, so, may be, not too bad.
> > > > > >
> > > > > > I want to play with new gcc compilers (any variant of 11 and any variant of 12) on Linux. Normally I play
> > > > > > with newish gcc on Windows under msys2, but tests I want to run today are specific to system-V AMD64 ABI.
> > > > > > The most suitable distro that I have access to right now, on most capable machine with
> > > > > > biggest amount of free space on blazing-fast SSD happens to be Debian 11 (Bullseye).
> > > > > > Of course I tried to help myself with google, but something is not clicking. All suggestions
> > > > > > I see are too complicated to my primitive Linux administration skills.
> > > > > > The one way I likely could manage is building from source. But I can't believe that there is no simpler way.
> > > > >
> > > > > You could try installing g++-11 and g++-12 (not g++ - this would replace your default compiler) from Debian
> > > > > 12 Bookworm. But do note that it will still replace some
> > > > > gcc libraries with updated versions, which could break
> > > > > your system. Take note which packages are replaced with
> > > > > the updated ones so that you can later downgrade them
> > > > > to restore the system to the previous state.
> > > >
> > > >
> > > > Thank you.
> > > > Unfortunately, your advice is yet another example of suggestion that is above my skills level.
> > > >
> > > > Coming from DOS/Windows background where any compiler is just another application
> > > > program, I find a tight coupling between C compiler and operation system, that
> > > > is so common in the Unix world, rather hard to comprehend. And to justify.
> > > >
> > > > > However, if the system is valuable, I would recommend setting
> > > > > up a VM or container with Debian 12 or Ubuntu 22.04 (those have both gcc 11 and 12 in stock repos).
> > > > >
> > > >
> > > > The system is not particularly valuable, but the test that I want
> > > > to run is also not sufficiently valuable to go that far.
> > > >
> > > > More and more it seems that compiling from source is the simplest option.
> > > > But it's not urgent so I'd wait for more suggestions.
> > > >
> > >
> > > Try add this to /etc/apt/sources.list
> > >
> > >
> > >
> > >
> > > Then run these
> > >
> > >
> >
> > Thank you.
> > It was simple and pretty close to what I wanted.
> >
> > So far I observed only one undesirable effect: system-wide
> > upgrade of binutils from version 2.35.2 to 2.38.90.
> > On this particular experimental installation it is acceptable, but I still wonder
> > how can I install newer tools in a way that does not affect "system" at all.
>
> I have never used Debian, but in many Linux distributions you can make a directory, mount there /proc, /sys
> and /dev, chroot into it and install there the same Linux distribution or another one, and also install there
> whatever packages you want and test them or use them without modifying in any way your base system.
It's not as simple as that. You need /etc, /bin, /usr and /var (at least major parts of them) to be able to run shell, basic shell tools like grep/sed/python/etc. and apt, which also requires network to work. Since you're going to install packages and you don't want to affect the host system, those directories must not be mounts but rather different copies or something like overlayfs.
There is a pbuilder tool (or cowbuilder flavor of it) that prepares an environment image automatically, but it is better suited for building packages, not for interactive development.
> Michael S (already5chosen.delete@this.yahoo.com) on September 20, 2022 2:05 am wrote:
> > anon2 (anon.delete@this.anon.com) on September 19, 2022 3:51 pm wrote:
> > > Michael S (already5chosen.delete@this.yahoo.com) on September 19, 2022 2:45 pm wrote:
> > > > Andrey (andrey.semashev.delete@this.gmail.com) on September 19, 2022 2:08 pm wrote:
> > > > > Michael S (already5chosen.delete@this.yahoo.com) on September 19, 2022 10:28 am wrote:
> > > > > > I realize that my question is not quite appropriate for RWT forum, but it
> > > > > > seems today few knowledgeable posters are bored, so, may be, not too bad.
> > > > > >
> > > > > > I want to play with new gcc compilers (any variant of 11 and any variant of 12) on Linux. Normally I play
> > > > > > with newish gcc on Windows under msys2, but tests I want to run today are specific to system-V AMD64 ABI.
> > > > > > The most suitable distro that I have access to right now, on most capable machine with
> > > > > > biggest amount of free space on blazing-fast SSD happens to be Debian 11 (Bullseye).
> > > > > > Of course I tried to help myself with google, but something is not clicking. All suggestions
> > > > > > I see are too complicated to my primitive Linux administration skills.
> > > > > > The one way I likely could manage is building from source. But I can't believe that there is no simpler way.
> > > > >
> > > > > You could try installing g++-11 and g++-12 (not g++ - this would replace your default compiler) from Debian
> > > > > 12 Bookworm. But do note that it will still replace some
> > > > > gcc libraries with updated versions, which could break
> > > > > your system. Take note which packages are replaced with
> > > > > the updated ones so that you can later downgrade them
> > > > > to restore the system to the previous state.
> > > >
> > > >
> > > > Thank you.
> > > > Unfortunately, your advice is yet another example of suggestion that is above my skills level.
> > > >
> > > > Coming from DOS/Windows background where any compiler is just another application
> > > > program, I find a tight coupling between C compiler and operation system, that
> > > > is so common in the Unix world, rather hard to comprehend. And to justify.
> > > >
> > > > > However, if the system is valuable, I would recommend setting
> > > > > up a VM or container with Debian 12 or Ubuntu 22.04 (those have both gcc 11 and 12 in stock repos).
> > > > >
> > > >
> > > > The system is not particularly valuable, but the test that I want
> > > > to run is also not sufficiently valuable to go that far.
> > > >
> > > > More and more it seems that compiling from source is the simplest option.
> > > > But it's not urgent so I'd wait for more suggestions.
> > > >
> > >
> > > Try add this to /etc/apt/sources.list
> > >
> > >
> > > deb http://deb.debian.org/debian/ unstable main contrib
> > > deb-src http://deb.debian.org/debian/ unstable main contrib
> > >
> > >
> > >
> > > Then run these
> > >
> > >
> > > apt-get update
> > > apt-get -t unstable install gcc-12
> > >
> >
> > Thank you.
> > It was simple and pretty close to what I wanted.
> >
> > So far I observed only one undesirable effect: system-wide
> > upgrade of binutils from version 2.35.2 to 2.38.90.
> > On this particular experimental installation it is acceptable, but I still wonder
> > how can I install newer tools in a way that does not affect "system" at all.
>
> I have never used Debian, but in many Linux distributions you can make a directory, mount there /proc, /sys
> and /dev, chroot into it and install there the same Linux distribution or another one, and also install there
> whatever packages you want and test them or use them without modifying in any way your base system.
It's not as simple as that. You need /etc, /bin, /usr and /var (at least major parts of them) to be able to run shell, basic shell tools like grep/sed/python/etc. and apt, which also requires network to work. Since you're going to install packages and you don't want to affect the host system, those directories must not be mounts but rather different copies or something like overlayfs.
There is a pbuilder tool (or cowbuilder flavor of it) that prepares an environment image automatically, but it is better suited for building packages, not for interactive development.