Hacker News new | past | comments | ask | show | jobs | submit login

I tried Alpine and immediately stopped when I saw how old the packages were. How do people use it...?



>How do people use it...?

You don’t. It’s a baked in reminder that logging into a container is a sin worthy of punishment.


Alpine is a pretty good standalone distribution IMHO. Main upsides are musl and apk, which makes it lightweight and fast.


fwiw, alpine is not designed to be used as a base image only, if you look into the history of alpine.


If you use Alpine releases, you'll get older packages than if you use edge. In general edge packages are pretty up-to-date.

Though, they do have issues with alpine-aports patches (alpine-aports is their package repository scripts). They don't have a large enough team so a patch generally needs a few months to get in.


The same way as Red Hat.

I still encounter version 5 in production.


As a matter of fact, Rust release infrastructure is using CentOS 5. See https://github.com/rust-lang/rust/blob/master/src/ci/docker/....


I think it's kind of misleading since it's only done for compatibility of the produced binaries. CentOS 5, until recently, was the actively maintained distro with the oldest kernel, libc etc. versions. So if it runs on CentOS 5, it is guaranteed to run on anything. This is different from companies still using CentOS 5 and are running active services on it because they simply refused to upgrade. Python or rather PyPi does this too. They aren't using CentOS 5 Despite of it's age, but because of it.


Is this to produce binaries on the oldest possible distro so they'll run anywhere (symbol versioning etc.)?

That being said, CentOS 5 hasn't received security updates for year or so (or 2?), so maybe there's a security risk in continuing to rely on it? I guess CentOS 6 would be the oldest still supported distro.


Which packages in particular? I've always found most things to be rather recent...


I seem to recall seeing an old GCC (6? 5? I forget) when GCC 8 had already come out.


alpine 3.8 (and 3.7) branch have gcc-6.4 which was released in July 2017. For a C compiler, that is absolutely sufficient. You'll find many other packages in the 3.8 release branch are more up-to-date, this is a bit of an exception.

This isn't Rust. GCC-6.4 will compile literally any C or C++ project you find (that works with any recent version of GCC), including stuff requiring C++-14 and _most_ of C++-17. Hell, GCC-4.9 (from 2014) is sufficient to compile the latest linux kernel, the latest sqlite3, the latest nginx, the latest of any real significant package.



Huh... do I need to configure it to use edge? I seem to recall not seeing it in the package manager.


You can add channels to /etc/apk/repositories


That was actually a special case if I understood correctly. gcc 6 dropped support for something needed by something else which prevented it to be upgraded


CentOS 7 ships GCC 4.9 and it works fine.


RHEL version numbers are not telling you much. Nobody would be surprised to find some Linux kernel features announced for 4.20 in RedHat kernel 2.6.32-something.


By updating the packages you need that are outdated and sending patches upstream. The package manifests are pretty straightforward and easy to work with.


If you have to optimize the image pull time, i.e. when using Fargate or something like it, it makes sense to choose a very small distro.


You use it vicariously through Docker images




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: