What version of X do the Linux Labs have?

Summary

How software and library versions are managed on the Linux Lab machines

Body

Currently the Linux Labs run a customized and reproducible form of Archlinux. This allows us to provide, in general, the latest stable versions of software and libraries. This allows students to take advantage of the latest features of some rapidly evolving technologies and software include Rust, Go, Python, etc. Most of the time updates to software and libraries provide complete or nearly complete backwards compatability. However, a small portion of users and assignments may be effected. If you suspect a software and/or library update has intruduced an some incompatability with your software or code, feel free to open a Mines Help Desk ticket and we'll be happy to assist you. Additonally, below are some software development recomendations, ideas, and scenarios that may be of interest.

Checking Package/Library Version

Using the package manager 'pacman' tool can be used to see the version of any package installed on the system. It may be helpful to SSH into a particuler lab machine to check this ahead of time.

pacman -Si packagename

If you don't know the exact package name, you can search for available and installed packages respectively:

pacman -Ss available_package_name

pacman -Qs installed_package_name

Virtual Environments

Many interprented langquages allow for dependencies/libraries to be handled independend of the system versions. These include python virtualenv, and Ruby RVM. Additonally, some languages such as rust can be installed directly in the users home folder allowing management of versions (Adjusting your PATH varible may be necessary). If you find that the tool for manageing these type of environments is missing, please create software request and make sure to mention the room or explicitly state it's for the Linux labs.

Portable Executables

For C & C++ projects, if you need to provide an executable or demo your application on a machine other than where you developed it, you may want to consider compiling a staticly linked executable to make it completely portable between Linux distros. This can be done, for example, using GCC's '-static' option. Not all C & C++ libraries provide static versions so the decision to build dynamically or statically must be evaluated on a project by project basis.

Online resources

For keeping up to date on new library versions and changes to their ABI, the ABI Laboratory's reports for C, C++, & Java libraries can be very helpful.

ABI Laboratory Reports

Details

Details

Article ID: 72070
Created
Thu 2/14/19 2:44 PM
Modified
Thu 9/3/20 4:26 PM