Best Way to Install and Maintain the Dependency? - gcc

I am a bit new to this kind of administration stuffs -- I would like to build GCC 4.8.2 (just an example) myself, and I would like some how makes yum realize that there is a package newer than what the external repos have (GCC 4.4 is the latest in the standard/defualt repos).
It seems like I have to:
1. Create an rpm package myself
2. Create a local yum repo myself
3. Add the rpm package to my local yum repo and somehow specify that it is a newer version of GCC than the one external repos offer
Am I right?
Is there a good tutorial? I searched online and there are many tutorials for creating RPMs, and tutorials for creating private yum repo. But I couldn't find an example/tutorial to show me the complete flow...
Any input is welcome.

You don't need to create a yum repo. Yum uses the RPM database to see which packages are installed, so if you create a gcc-4.8.2 RPM and install it then Yum will know that gcc-4.8.2 is installed.
Yum understands package version numbers so it will know that gcc-4.8.x newer than gcc-4.4.x

Related

Packages apt-get vs brew?

Im trying to get something running in a lab, and I need to install a whole bunch of packages to compile the code:
sudo apt-get install build-essential libgtk2.0-dev libwxgtk3.0-dev libwx-perl libmodule-build-perl git cpanminus libextutils-cppguess-perl libboost-all-dev libxmu-dev liblocal-lib-perl wx-common libopengl-perl libwx-glcanvas-perl libtbb-dev libxmu-dev freeglut3-dev libwxgtk-media3.0-dev libboost-thread-dev libboost-system-dev libboost-filesystem-dev libcurl4-openssl-dev libextutils-makemaker-cpanfile-perl
The problem is, I'm working on a Mac; So I only have brew available - and the package names are not equivalent.
Am I trying to do something dumb and impossible, or is there a way to cross reference those apt-get packages to ones available in brew and install those so I can build the app?
For added context, its a modified "slicer" application for generating files that a 3d printer uses to make parts. I could fire up an ubuntu VM and use apt-get, but I'm on an M1 mac at the moment and recompiling experimental QEMU code just so I can fire up an ubuntu VM takes me way more out of my depth than I already am... I'm running brew on a duplicated, rosetta emulation forced terminal.
There is no straightforward way to automatically figure out whether a corresponding Homebrew package exists for each of these packages, no. But you can probably guess the majority, and manually figure out the rest. Each Debian package has a link to the upstream sources, and a home page if one exists, from which you can often find links to packages for other architectures, etc.
From the Debian package search page you can search e.g. for the libxmu-dev package, and discover the corresponding package page for Buster (the current stable Debian release), which in turn has links to the upstream repo, etc. But this is an X11 package, so it's not straightforwardly compatible with macOS, which uses an entirely different GUI architecture.

Installing biber 2.7

I am using a software called Texmaker, it uses another program (i think they called it a backend, am i right?) called biber. The current version of biber in my computer is: Biber 1.9. I have tried to download a current version of biber in the webpage http://biblatex-biber.sourceforge.net/ (i am sure it is the correct programme and webpage).
The problem is that Texmaker still recognize the old version (1.9)and not the new one. What should i do?
Where should i unpackage biber?
Another question, Biber is downloaded in a tar.gz file, so i uncompressed it and it was finished.
I am not sure if it is wrong or not, i mean, only uncompress the file to install it.
Extra data: The version of linux i have is based on Debian.
Debian updates packages continuously, but for releases that are already out it takes special care not disrupt and does not update much more than what is required for security purposes. The page https://packages.qa.debian.org/b/biber.html shows that version 2.7 is already available, but only in the next version of Debian which is called "testing". A new release of Debian is expected "real soon" and then what is stable now will be referred to as old stable and today's testing will be the new stable. You may decide to just wait for that upcoming release to then upgrade your complete installation of perform a partial upgrade now as described below.
To get to the new version you could download the .deb package following https://packages.debian.org/stretch/all/biber/download and install it with "sudo dpkg -i biber_2.7-2_all.deb". This substitutes your previous version. There is no need to manually decide where to put a Debian package - all previously installed files of that package will be removed and all the files in the .deb file at hand are unpacked at fixed locations. Which files that are you can inspect with the "-c" option, i.e. "sudo dpkg -c biber_2.7-2_all.deb". A program that worked with biber before should now also function with that new version. Should. Just give it a test. If it works then you are done with your update.
The art of assembling a joint release of software packages is the difficulty to avoid side effects. It is common that an upgrade of one packages breaks other packages. But this is not necessarily so and the packages declare any known such dependencies on the versions of other packages. If there are many additional dependencies that you need to co-update with that new version of biber, it may then be preferable to add the download information to stretch to /etc/apt/sources.list (copy the reads jessie or stable now and substitute that with stretch or testing). You then run "sudo apt-get update" and "sudo apt-get install biber" to have version 2.7 installed.
Have you installed texmaker also from Debian? That testing release also offers texmaker 4.5 over version 4.3 of the stable distribution features. If your problem was not solved with 4.3 then it may be worthwhile to attempt also an update of texmaker. It is then from the same Debian release as is biber and they should work together since this "togetherness" is what a release is about. You can download the Texmaker .deb file as explained before or with the extended sources.list file use apt-get install texmaker. Again, there is no need to specify any program locations. What is old is removed, the new version of the packages takes it position.
With the new Debian release now so close, not too much should go wrong. But if you are professionally depending on your machine then please try this first on another computer to learn and of course please have backups. Once the biber package was updated, remove or comment out (start the line with the # sign) in /etc/apt/sources.list and run apt-get update again. The newly installed biber package will not be removed again since its version is newer than.
Meta-comment: This site is about programming, not about installing software or distribution-related issues. It may be more appropriate to address this question at https://askubuntu.com, the https://lists.debian.org/debian-user/ mailing list or (my preferred option) some friendly soul in the neighbourhood.

Is there a durable store for deb files (like a maven repo?)

I have a maven built docker image that was dependent on libssl1.0.2_1.0.2d-3_amd64.deb, but this has now a 404 and has been replaced by libssl1.0.2_1.0.2e-1_amd64.deb.
This is a problem because maven builds are meant to be durable - ie you can rebuild them at any point in the future. The main maven repo is durable, so artefacts taken from that will be there in the future. I could move the debs I need into the maven repo, but that is a bit of abuse of other peoples storage...
So is there a durable store of debian files that is guaranteed to exist... well at least until the revolution/meteor strike/Jurassic resurrection etc.
You can do this yourself with free, open-source tools. You can create your own APT repository for storing Debian packages. If you are interested in using GPG signature to sign repository metadata read this.
Once you've created the repository, you can create a configuration file in /etc/apt/sources.list.d/ pointing to your repository. You can run apt-get update to refresh your systems apt cache, and then run apt-get install to install the package of your choice.
BTW, you can install a particular version of a package by running: apt-get install packagename=version.
For example, to install version 1.0 of "test", run: apt-get install test=1.0.
Alternatively, if you don't want to deal with any of this yourself you can just use packagecloud.io for hosting Debian, RPM, RubyGem, and Python PyPI repositories. A lot of people who use our service have your exact use case, where Debian packages they depend on disappear from public repositories so they upload them to us.

how to update firefox on redhat via yum

I have firefox 3.0.12 on my redhat 5.8 and I'm trying to update it.
But, yum update firefox does not find and new version and keeps finding only 3.0.12
I have also tried updating yum itself.
I have also tried downloading firefox tgz, but I get a lot of dependency files missing. So going that route is very tedious and I'm finding it hard to download the dependent .so files.
How do I update using yum or is there a .rpm for firefox that I can download and install(I did not find one on the mozilla website)
If yum upgrade firefox does not report any possible updates, you probably do not have proper channels enabled (you are not subscribed into these). You should see rhel-x86_64-server-5 (depends on your architecture and RHEL variant - Server/Client...) in output of command yum repolist. If it is not there you have to register into RHN Classic (rhn.redhat.com) or your company's Red Hat Satellite or something else - depends on your company's policy.
If you have that channel available, upgrade to firefox-31.2.0-3.el5_11.x86_64 (which seems to be latest in RHEL5 channel) should be offered.
Firefox 3.0.12 is the latest version available in repository of 5.8 and so you are getting same. If you need the latest version then upgrade the OS itself or download the rpm manually and install with yum localinstall command.

Install gcc-c++ on CentOS without yum

Can I install gcc++ on CentOS 6.x without `yum install gcc-c++ ....' ?
Is there any .tar or .rpm package available for download?
Yum will install rpm from it's repository.
So I don't understand why you want to avoid yum, it will solve dependencies and install them as well.
However, here is official RPM repository mirror (one of many):
http://centos.arminco.com/5/os/i386/CentOS/
Here is list of all mirrors : http://www.centos.org/modules/tinycontent/index.php?id=30
You will need at least 3 RPMs:
gcc-4.4.6-3.el6.i686.rpm
gcc-c++-4.4.6-3.el6.i686.rpm
libgcc-4.4.6-3.el6.i686.rpm
For compilation of C/C++ you will also need libstdc++, glibc, etc
When you run
yum install gcc
Everything is done
As you did not specified architecture I assume i386, but URL is very similar for x86_64:
http://centos.arminco.com/6/os/x86_64/Packages/
If you want to install it as a local user (or as a superuser)
GNU GSRC provides an easy way to do so
Link: http://www.gnu.org/software/gsrc/
After installation via bzr, simply do these:
./bootstrap
./configure --prefix=~/local
make -C gnu/gcc
(or make -C gnu/gcc MAKE_ARGS_PARALLEL="-jN" to speed up for a N-core system)
make -C gnu/gcc install

Resources