I've decided to create two versions of the python software as a relatively Silent installer to be run on the Command Prompt. One version for the 3.9.x series and one for 3.10.x series as well as 3.11.x on github.
Often time, I found myself needing to use a more sophisticated method in signing a document for sharing. It is this notion where we could use PGP developed by Phil Zimmermann or the Opensource version referred to as GPG. We will demonstrate how to create a simple GPG key and how to delete it in your keychain. Again, we will be using a Linux distro called Rocky to demonstrate this task. On a vanilla minimalistic version of rocky Linux. One would need to install one software before generating your GPG key.
sudo dnf install pinentry
Gen GPG key
The next part will be confirming that we've made such key locally.
GPG list-keys
Finally, removing your public/private keys arent difficult, there are two commands to execute before removing your public and private key from your local keyring.
This is a simple tutorial to run through on how to generate a few of the ssh keys public/private key pair Authentication. When it comes to using DSA and RSA, they are been phased out due to the vulnerability of these two cryptographic algorithms. It is not recommended to use either algorithm on any production systems. We will demonstrate how to generate these keys using a Linux OS called Rocky inside a host environment via Vmware. The third algorithm is much more secure and can be used in any production environment. This is a new cryptographic algorithm called ed25519, which is highly recommended over RSA and DSA.
gen RSA key
so, the RSA key was created inside a VM. I initially had to create a new directory called .ssh in my home directory. My procedures are as follows.
mkdir .ssh
ssh-keygen -t rsa -b 4096 -C YourEMAILAddress@SOMETHING.com
# You can also specify the name of your cryptoGraphic Key file inside this command.
ssh-keygen -t rsa -b 4096 -f .ssh/myPrivateKey -C YourEMAILAddress@SOMETHING.com
Here is an example of how to generate DSA key pair.
Gen DSA
Finally, we will use ED25519 cryptographic algorithm to generate this key, which can be used on github, bitbucket, and gitlab.
Gen ed25519
As you can see, one can simply generate all these keys on linux and even on windows as well by using putty or inside powershell. My final image will be to show the keys generated by each of the above cryptographic algorithms.
After all these years working on Linux in the server environment, I was finally able to configure the console resolution upon booting from an auto-size screen to a custom-size screen. It is simply by adding two lines of GRUB environment values to /etc/default/grub and altering a variable called GRUB_COMMAND_LINUX to include at the end vga=0x0342.
/etc/default/grub
As you can see, line 2 and line 3 were added as well as line 8 was altered to include vga=0x0342 or vga=ask. If you wish to have the system display the availability of screen size resolution upon reboot, you should say vga=ask, otherwise, vga=0x0342 will work upon reboot. So, our next phase will be to compile a new grub boot. on Vmware Workstation on windows v16.x.x and VMFusion on Mac, they both will take this configuration since I've tested on both systems.
As root:
sudo su - grub2-mkconfig -o /boot/grub2/grub.cfg reboot
now, Your linux boot loader Framebuffer should be larger. In a matter of fact, it should now be with a resolution of 1152 by 864 with 24 bit.
Continuing after we've compiled Python on Windows 11 from source code, we would then need to package this using the MSIX package manager tool to build and installer. Thankfully, the Python source code will include such tools for us to build our custom package by using the build script provided to us in the following location.
Python Package Build Location
We can then Follow some basic instructions to compile additional source code and find out how to build this installer package by executing the build.bat file.
Package builder Script
Now we have learned how to use this build.bat file, we can issue this command along with three parameters to build this deliverable package for the masses.
Building Documentations, where there might be some warnings or errors
Building Documentations.
Done building Package w/Warning
The Final Phrase will be to check whether we have 100% completed this package Building Phrase using this build.bat tool provided to us from Python.org.
the final Image will be the location for us to find this Python Installer package. It is not the Installer package from Python.org since their version is digitally signed and verified.
I was extremely curious about how to build a version of Python 3.9.x {x64/x86} on a Windows 10/11 machine for the longest time. Finally, I've found an hour to learn how to pursue this system engineering topic (System build process aka Build Engineering) on compiling my unique version of Python 3.9.x on windows.
Thanks to All the Opensource Contributors on writing scripts to automate most of this process, I was able to follow instructions when building a version of Python 3.9.x.
We then would require the necessary packages in our VS 2019.
VS Packages
After installing Additional Packages for VS 2019, we would now need to use the CMD Prompt to generate some additional files after downloading the tgz compressed file python v.3.9.10 source code from Python.org. After decompressing this tarball file, we now have Python-3.9.10 Directory, where all the files have been extruded from this tarball.
compiling AMD x64 bit version
There are options when comes to compiling, I took the recommended approach. It is likely not to follow recommended instructions when compiling initially, but on generating a debug version first to test a custom compiled version of Python v3.9.10 is appropriate. The goal was to test whether SSL was included upon compiling.
build.bat -e -d -p x64
build.bat -e -d -p x86
build.bat -e -p x86
build.bat -e -p x64
As shown above, one can certainly build the debug version to test then build the actual non-debug version of Python.
Once the above process has been completed, we must then look for a file called pcbuild.sln to compile either the 32 or 64 bit version of our python software once we had executed the build.bat configuration file.
BInary python Debug
Once the final process has been completed, we can execute the python_d.exe file in our CMD prompt to see if it was compiled successfully. it is now working perfectly, we can then reconfigure the build.bat switch to remove the -d switch and recompiled a final product of python.exe.
This is a super automated CMD script to install python 3.98 on windows 8/9/10/11. If you have questions, you can contact me. flo <AT> radford <dot> edu
As I had encountered some minor issue, when running this code from below on Windows 11. Often times it will pause and display nothing. To solve this problem, simply press ENTER. You wont encounter such issue when running this code on Windows 10.
When updating homebrew with your new M1 Apple machine as a web dev machine by developing backend applications with PHP with Homebrew along with MongoDB, where there is an issue when you compile mongoDB driver using PHP from homebrew. We always run into this minor problem, which is somewhat irritating to an extend as we update via the brew command. The main issue we had encountered was that whenever we run
./brew update
the mongodb.so lib driver file will get deleted automatically in the PHP modules location. Since, we've decided to install mongoDB manually from source code, we knew there would be some type of problems we would encounter.
There were two issues: 1) missing pcre2.h file upon compilation 2) automatic deletion of mongodb.so inside a php module dir, after issuing a brew update command.
We will first remedy the missing pcre2.h file in the following section, so that we could compile mongoDB as a driver to be used with PHP@7.4. We will then copy over the mongodb module into the PHP module location.
Using PHP.net 's instructions on how to retrieve the source code for MongoDB. There is a process to get this done relatively with ease.
At this Point, pcre2.h is not available from the github repo for this php-mongodb driver package, you can now copy from the default location from your M1 to get this header file to be copied over to this mongo-php-driver directory.
This pcre2.h file should be in this area on your M1 machine, depending on your version of pcre2 from your brew update command. If you don't currently have the pcre2.h file, you then must install the pcre dev header package for pcre from homebrew first. This version i have installed is listed below.
$ cp /opt/homebrew/Cellar/pcre2/10.38_1/include/pcre2.h .
$ ./configure
$ make all
This should take care of the missing pcre2.h file after placing the pcre2.h unto the mongo-php-driver directory for compilation. Once it has finished compiling, you can cd to the modules directory and copy over the mongodb.so file to /opt/homebrew/Cellar/php@7.4/7.4.26/lib/php/20190902/ or whichever directory location it needs to be copied to that location.
If you do have PHP@7.4 in your PATH, you can enter in php -v to check
if that missing --mongodb.so-- lib error has gone away.
flo@hobbit: $ php -i | grep -i mongo
mongodb MongoDB support => enabled MongoDB extension version => 1.12.0-dev MongoDB extension stability => devel libmongoc bundled version => 1.11.1-20211103+gitb93e345178 libmongoc SSL => enabled libmongoc SSL library => Secure Transport libmongoc crypto => enabled libmongoc crypto library => Common Crypto libmongoc crypto system profile => disabled libmongoc SASL => enabled libmongoc ICU => disabled libmongoc compression => enabled libmongoc compression snappy => disabled libmongoc compression zlib => enabled libmongoc compression zstd => enabled libmongocrypt bundled version => 1.2.1 libmongocrypt crypto => enabled libmongocrypt crypto library => Common Crypto mongodb.debug => no value => no value mongodb.mock_service_id => Off => Off
The reason for compiling is that one can easily obtain the latest and greatest software.
Go to mongoDB website and download their community version of their product. Download not just the Community Server but also their MongoDB Tools. There are Shell, Compass and Db Tools. I initially had installed Mongosh inside tools inside /opt/mongodb after installing the Mongo Db engine directly inside /opt/mongodb. The remaining items are Compass and a special software called RoboMongo. This is a GUI interface to the connect to the mongoDB engine.
Location of MongoDB and Mongosh.
After those two items were installed, I had to configure the MongoDB engine and would very much like to run it using a config file rather than supplying the mongod command with tons of parameters. So i then worked on the configuration file to make some changes.
MongoDB Configuration.
fork : true doesnt seem to work and had resorted to false instead. The only other items on this install where i had to work on was giving those paths an ownership of the user who needed to be used in order to run these items. My mongodb.conf file is hiding inside my /opt/homebrew/etc location
After downloading this CentOS boot iso (~740MB) file instead of the full-blown (~4.1GB) from CentOS website on windows 10, I've decided to install CentOS Stream inside VMPlayer instead of Virtualbox. Installing main stream flavors of linux on either Hypervisor client software would be perfectly fine. Many of the linux distros will work inside either software.
BTW: Kubuntu, Xubuntu and Manjaro are working Great inside VMPlayer. There is one unique linux distribution where i wish i could use on a daily basis due to its sheer GUI using the Pantheon GUI Engine. This is elementary linux. Please support and donate to many of these wonderful linux opensource communities. 🙂
Installation Process: After realizing i had installed CentOS v8 on a laptop before end of October 2020. This CentOS version 8 was no longer able to be downloaded and was replaced with this new version of the fedora like CentOS Stream which will get upgraded every 6 - 8 months unlike the previous CentOS version 8. The installation process was extremely similar to CentOS version 8 and 7. The only one section which differed from previous versions were the section to insert a link for the installation source location which is a repo of packages. This time, CentOS install force users to manually enter this URL mirror.centos.org/centos/8/BaseOS/x86_64/os/
One can also add additional repository onto their CentOS server. I could never seem to remember this added on magical repo for all Redhat like OS. These two repos were the two i've used when i was in the IT industry on the Redhat like OSes.
After choosing a few server packages and it was off to download and installation process. At the end of this process after a reboot. You would then add your user(s) to this newly deployed system. Super easy to get this up and running on VMPlayer workstation.
Instructions on how to install CentOS stream if you want to use it as a Guide.