Electron builder - Define linux version - electron

Im using electron which has already a production env running. For the last months I've been publishing normally with Electron-builder in my ci.yml file:
release-linux:
stage: release
image: electronuserland/builder:14
before_script:
- export ARCH="x64"
- export BUILD_SCRIPT="build:linux"
- apt-get update && apt-get install -y build-essential cmake
- apt install -y libusb-1.0-0-dev libudev-dev
After running the - apt-get update && apt-get install -y build-essential cmake line there is the libc6 package installed which installs with latest (2.35).
My production environment is running on Ubuntu 20.04 LTS. I assume the docker image in which the release is made, is running on a newer version (asuming latest).
The problem is that I have some hardware devices which works correctly with libc6=2.31-0ubuntu9.2 (which is the version that was automatically installed previously by the docker image). Now, for some reason I don't know, the image is pulling the latest version of libc6 and my hardware devices stoped working.
Is there any way to force electron-builder to use a specific Linux/Ubuntu version?
Or maybe use the latest version of ubuntu but downgrading the libc6 version (tried this one but failed). Any instructions on how to do this are apreciated.
Updating Ubuntu's version at production is not an option right now, so I think the solution should be working out with this package/library version.

The problem solved out on its own randomly, but after some research, it was a electron-builder change which was causing the problem.
In this commit changes log we can see that buildpack-deps was changed from buildpack-deps:22.04-curl (not working) to buildpack-deps:focal-curl (working).
That give us a clue to where to look at. Here the official supported tags for Dockerfiles. Here we can see that focal-curl points to 20.04-curl which I suppose have a different output than 20.04 by its own.
Then, looking at the gitlab jobs running with this ci configs, the libc6 dependency worked with different versions in each case.
Our hardware works correctly with libc6=2.31 which is used when focal-curl is set by electron-builder dockerfile, but not with libc6=2.35 which is used by 20.04.
This is not a solution, but it's the cause of the problem. Now working on how to setup the project to use only the correct configuration of electron-builder. Currently accepted to work with same config but being careful when releasing by watching which libc6 version is working with.

Related

Installing Specific Docker Version via Puppet

While deploying docker using puppet, I encounter an interesting issue.
docker installs fine if I use: version => latest
docker install fails if I use: version => '20.10.16'
My setup is as follows:
puppet master is Ubuntu 20.04.
puppet agent is Ubuntu 22.04 (on which I am trying to install docker).
I believe puppet docker module supports this setup.
The version lines I tried:
version => '20.10.16'
version => '20.10.16~3-0~ubuntu'
version => '20.10.16~3-0~ubuntu-jammy'
The error I get when I specify a specific version is as follows:
Error: Could not update: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold --force-yes install docker-ce=20.10.16' returned 100: Reading package lists...
Building dependency tree...
Reading state information...
Package docker-ce is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
docker-ce-cli
Anyone has any idea what can be done so that it installs specific version of docker instead of the latest one?
When running apt-cache madison docker-ce it appears that the version number is 5:20.10.16~3-0~ubuntu-jammy.
Running apt install docker-ce=20.10.16~3-0~ubuntu-jammy returns the same error as yours, but apt install docker-ce=5:20.10.16~3-0~ubuntu-jammy works.
I suggest trying with the 5: in front of the version number.

Docker - centos:7 kernel-header 3.10.0 vulnerabilities -> what to do?

My client uses a Docker images that has a base image of centos:7 from DockerHub. I noticed that Google Cloud Container registry flagged my latest built images with 17 vulnerabilities that all target the kernel-headers package from CentOs, version 3.10.0.
What are my options ?
Can I just upgrade this package or the kernel while staying on CentOs 7 or do I need to upgrade to version 8 ?
With an upgrade to version 8, are there specific breaking updates I should keep an eye on ?
Thank you guys
Update : We are using hdf5, hdf5-devel, devtoolset-7-gcc-c++ and openmpi packages to run some simulations. Removing the kernel-headers tries to remove devtoolset-7-gcc, glibc-devel and glibc-headers packages. I will do some testing without those packages.
yum install -y kernel-headers --enablerepo=centos-kernel

How to setup ROS environment variable on Ubuntu 20.04?

I tried following this guide to install ROS, but even after adding ROS source.list and its key
sudo apt install ros-melodic-desktop-full
gave error.
E: Unable to locate package ros-melodic-desktop-full
Then I ran this command
sudo apt search ros
to see if any such package exists. I couldn't find ros-melodic-desktop-full but I found another similar package ros-desktop-full.
So I installed it instead. The installation went smooth without giving any errors.
Next step in the guide is to set-up ROS environment variable, but I have no such directory
/opt/ros
So how do I setup the environment variable?
P.S.
I also installed some tools and dependencies with this command
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
and initialized rosdep
sudo rosdep init
rosdep update
The ros-desktop-full package you installed is part of the official Ubuntu release.
ROS Melodic (and in the future, Noetic) is published by the OSRF in a separate repository (packages.ros.org). These packages install to /opt/ros/. However, some ROS packages have also been ported to Debian, which is how they found their way to Ubuntu (which derives from Debian).
The Debian packages are fully functional, but they do not install to /opt/ros. Instead, everything is integrated in the operating system itself. This means that you need to set up your personal workspace slightly differently.
Given that most tutorials assume that you use the OSRF packages, I suggest you either wait for the Noetic release (scheduled for the end of May 2020), then install ros-noetic-desktop-full, or downgrade to Ubuntu 18.04 LTS to use ROS Melodic.
From the documentation here, melodic is only supported on Ubuntu 18.04. The ROS version targeting Focal (20.04) is Noetic, but that one has not been released yet (see Distributions). I'm not sure what ROS version Ubuntu packages (the ros-desktop-full one you installed), but I was not successful in using it.
If you really do want to use Ubuntu 20.04, then I think your best option currently is to compile from source. Last time I checked the precompiled debs for Noetic are not yet available at http://packages.ros.org/ros/ubuntu (you can track release progress at github issue 21513). No idea if compiling Noetic from source is easy or hard, but I was able to compile ROS2 foxy from source without too much trouble though.

How Do I Install Dart v2?

Ive looked all over the official Dart site. They go into great depth about 'dev' channels and 'stable' channels but no clue whatsover about how to actually install a version of the SDK. There is no information about the current stable and dev versions either.
Clearly I have missed something hiding in plain site. I want to try out some official angulardart component libraries but the builder requires Dart version 2 - but I have no idea how to get that.
Can someone put me out of my misery, and tell me how I'm being an idiot
Thanks
Installation instructions for dart v2 (which currently only has a dev channel release) can be found here. To summarize,
Mac Installation with homebrew
brew tap dart-lang/dart
brew install dart --devel
Edit: If you are upgrading from Dart 1 see, How to upgrade to Dart 2?
Windows Installation
Visit here for the graphical installer or if you have Chocolatey installed do:
choco install dart-sdk -version 2
Linux
sudo apt-get update
sudo apt-get install apt-transport-https
sudo sh -c 'curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -'
sudo apt-get update
export PATH=/usr/lib/dart/bin:$PATH
sudo sh -c 'curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_unstable.list > /etc/apt/sources.list.d/dart_unstable.list'
sudo apt-get install dart
Ahhhhhhh. If you go to https://www.dartlang.org/install/archive
And then wait for about 10 minutes, you suddenly get some links. - Problem solved.
The latest version in the dev channel is Dart 2 (2.0.0-alpha.36).
There is no released Dart 2 yet.
This VM and tools can still process most Dart 1 code.
There are several flags to enable Dart 2 features for the VM or tools
--preview-dart-2
--reify-generic-functions
--reify-generics
--limit-ints-to-64-bits
--sync-async
these options are highly experimental and in flux.
Not all tools support the same set of options.
New options might be added or existing ones removed when the behavior becomes the default without previous anouncement.
I found above options in https://github.com/dart-lang/sdk/blob/b0a2e6b9c99d8a13ecd59d1636d5201adc77fc07/tools/testing/dart/test_suite.dart
for windows go to dart.dev for install dart
if you want if dart is install in your pc
1-open terminal and type this command dart --version when will appear version dart
ex: 2.28 (sdkDart)

Upgrade php version from 5.2 to 5.3 Joomla

Our new website in Joomla 3 needs at least PHP v5.3 to run the Akeeba Next Generation Installer. Any my server is running a PHP 5.2. I have tried adding the line
AddHandler application/x-httpd-php53 .php
on my .htaccess but instead it downloads the index.php file.. Hosting provided is Doteasy. How do we go upgrading the PHP?
Any help would be much appreciated. THanks.
This isn't going to work. You'll need to have php installed to the version. Do you have SSH access to the server? if you do what platform is it? Most web servers run on Linux and if that's the case you'll need to upgrade php on the linux server. On Windows you'll need to
uninstall and install php to the latest.
a,
if it is centos or fedora, you need to have the correct repo enabled and you need to issue
To install, first you must add the Webtatic EL yum repository information corresponding to your CentOS/RHEL version to yum:
CentOS/RHEL 7.x:
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
CentOS/RHEL 6.x:
rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
CentOS/RHEL 5.x:
rpm -Uvh https://mirror.webtatic.com/yum/el5/latest.rpm
Now you can install php by doing:
yum install php54w
If you would like to upgrade php to this version it is recommended that you check that your system will support the upgrade, e.g. making sure any CPanel-like software can run after the upgrade.
Unless you know what you are doing, it is risky upgrading an existing system. It’s much safer to do this by provisioning a separate server to perform the upgrade as a fresh install instead.
If you know what you are doing, you can upgrade PHP by:
yum install yum-plugin-replace
yum replace php-common --replace-with=php54w-common
It will likely give you a message “WARNING: Unable to resolve all providers …”. This is normal, and you can continue by tying “y“. You will be given a chance to see what packages will be installed and removed before again being given a chance to confirm.
or
if its a debian ubuntu linux dist you need to issue
*this will be the easiest option. For PHP 5.4.x run the command:*
sudo add-apt-repository ppa:ondrej/php5-oldstable
or for PHP 5.5.x run:
sudo add-apt-repository ppa:ondrej/php5
And then update your packages:
sudo apt-get update
sudo apt-get upgrade

Resources