├── .github └── workflows │ └── codacy.yml ├── CODE_OF_CONDUCT.md ├── DevOps-Tools └── Jenkins │ ├── README.md │ └── install-jenkins.sh ├── LICENSE ├── README.md └── alx-tools_installation ├── README.md ├── install-tools.sh └── mysql-5.7_installation ├── README.md └── install-mysql5.7.sh /.github/workflows/codacy.yml: -------------------------------------------------------------------------------- 1 | # This workflow uses actions that are not certified by GitHub. 2 | # They are provided by a third-party and are governed by 3 | # separate terms of service, privacy policy, and support 4 | # documentation. 5 | 6 | # This workflow checks out code, performs a Codacy security scan 7 | # and integrates the results with the 8 | # GitHub Advanced Security code scanning feature. For more information on 9 | # the Codacy security scan action usage and parameters, see 10 | # https://github.com/codacy/codacy-analysis-cli-action. 11 | # For more information on Codacy Analysis CLI in general, see 12 | # https://github.com/codacy/codacy-analysis-cli. 13 | 14 | name: Codacy Security Scan 15 | 16 | on: 17 | push: 18 | branches: [ "master" ] 19 | pull_request: 20 | # The branches below must be a subset of the branches above 21 | branches: [ "master" ] 22 | schedule: 23 | - cron: '25 15 * * 0' 24 | 25 | permissions: 26 | contents: read 27 | 28 | jobs: 29 | codacy-security-scan: 30 | permissions: 31 | contents: read # for actions/checkout to fetch code 32 | security-events: write # for github/codeql-action/upload-sarif to upload SARIF results 33 | actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status 34 | name: Codacy Security Scan 35 | runs-on: ubuntu-latest 36 | steps: 37 | # Checkout the repository to the GitHub Actions runner 38 | - name: Checkout code 39 | uses: actions/checkout@v3 40 | 41 | # Execute Codacy Analysis CLI and generate a SARIF output with the security issues identified during the analysis 42 | - name: Run Codacy Analysis CLI 43 | uses: codacy/codacy-analysis-cli-action@d840f886c4bd4edc059706d09c6a1586111c540b 44 | with: 45 | # Check https://github.com/codacy/codacy-analysis-cli#project-token to get your project token from your Codacy repository 46 | # You can also omit the token and run the tools that support default configurations 47 | project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} 48 | verbose: true 49 | output: results.sarif 50 | format: sarif 51 | # Adjust severity of non-security issues 52 | gh-code-scanning-compat: true 53 | # Force 0 exit code to allow SARIF file generation 54 | # This will handover control about PR rejection to the GitHub side 55 | max-allowed-issues: 2147483647 56 | 57 | # Upload the SARIF file generated in the previous step 58 | - name: Upload SARIF results file 59 | uses: github/codeql-action/upload-sarif@v2 60 | with: 61 | sarif_file: results.sarif 62 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | We as members, contributors, and leaders pledge to make participation in our 6 | community a harassment-free experience for everyone, regardless of age, body 7 | size, visible or invisible disability, ethnicity, sex characteristics, gender 8 | identity and expression, level of experience, education, socio-economic status, 9 | nationality, personal appearance, race, religion, or sexual identity 10 | and orientation. 11 | 12 | We pledge to act and interact in ways that contribute to an open, welcoming, 13 | diverse, inclusive, and healthy community. 14 | 15 | ## Our Standards 16 | 17 | Examples of behavior that contributes to a positive environment for our 18 | community includes: 19 | 20 | * Demonstrating empathy and kindness toward other people 21 | * Being respectful of differing opinions, viewpoints, and experiences 22 | * Giving and gracefully accepting constructive feedback 23 | * Accepting responsibility and apologizing to those affected by our mistakes, 24 | and learning from the experience 25 | * Focusing on what is best not just for us as individuals, but for the 26 | overall community 27 | 28 | Examples of unacceptable behavior include: 29 | 30 | * The use of sexualized language or imagery, and sexual attention or 31 | advances of any kind 32 | * Trolling, insulting or derogatory comments, and personal or political attacks 33 | * Public or private harassment 34 | * Publishing others' private information, such as a physical or email 35 | address, without their explicit permission 36 | * Other conduct that could reasonably be considered inappropriate in a 37 | professional setting 38 | 39 | ## Enforcement Responsibilities 40 | 41 | Community leaders are responsible for clarifying and enforcing our standards of 42 | acceptable behavior and will take appropriate and fair corrective action in 43 | response to any behavior that they deem inappropriate, threatening, offensive, 44 | or harmful. 45 | 46 | Community leaders have the right and responsibility to remove, edit, or reject 47 | comments, commits, code, wiki edits, issues, and other contributions that are 48 | not aligned to this Code of Conduct, and will communicate reasons for moderation 49 | decisions when appropriate. 50 | 51 | ## Scope 52 | 53 | This Code of Conduct applies within all community spaces and also applies when 54 | an individual is officially representing the community in public spaces. 55 | Examples of representing our community include using an official e-mail address, 56 | posting via an official social media account, or acting as an appointed 57 | representative at an online or offline event. 58 | 59 | ## Enforcement 60 | 61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 | reported to the community leaders responsible for enforcement at 63 | [our email](mailto:elvisotienomboya@gmail.com). 64 | All complaints will be reviewed and investigated promptly and fairly. 65 | 66 | All community leaders are obligated to respect the privacy and security of the 67 | reporter of any incident. 68 | 69 | ## Enforcement Guidelines 70 | 71 | Community leaders will follow these Community Impact Guidelines in determining 72 | the consequences for any action they deem in violation of this Code of Conduct: 73 | 74 | ### 1. Correction 75 | 76 | **Community Impact**: Use of inappropriate language or other behavior deemed 77 | unprofessional or unwelcome in the community. 78 | 79 | **Consequence**: A private, written warning from community leaders, providing 80 | clarity around the nature of the violation and an explanation of why the 81 | behavior was inappropriate. A public apology may be requested. 82 | 83 | ### 2. Warning 84 | 85 | **Community Impact**: A violation through a single incident or series 86 | of actions. 87 | 88 | **Consequence**: A warning with consequences for continued behavior. No 89 | interaction with the people involved, including unsolicited interaction with 90 | those enforcing the Code of Conduct, for a specified period of time. This 91 | includes avoiding interactions in community spaces as well as external channels 92 | like social media. Violating these terms may lead to a temporary or 93 | permanent ban. 94 | 95 | ### 3. Temporary Ban 96 | 97 | **Community Impact**: A serious violation of community standards, including 98 | sustained inappropriate behavior. 99 | 100 | **Consequence**: A temporary ban from any sort of interaction or public 101 | communication with the community for a specified period of time. No public or 102 | private interaction with the people involved, including unsolicited interaction 103 | with those enforcing the Code of Conduct, is allowed during this period. 104 | Violating these terms may lead to a permanent ban. 105 | 106 | ### 4. Permanent Ban 107 | 108 | **Community Impact**: Demonstrating a pattern of violation of community 109 | standards, including sustained inappropriate behavior, harassment of an 110 | individual, or aggression toward or disparagement of classes of individuals. 111 | 112 | **Consequence**: A permanent ban from any sort of public interaction within 113 | the community. 114 | 115 | ## Attribution 116 | 117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 | version 2.0, available at 119 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. 120 | 121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct 122 | enforcement ladder](https://github.com/mozilla/diversity). 123 | 124 | [homepage]: https://www.contributor-covenant.org 125 | 126 | For answers to common questions about this code of conduct, see the FAQ at 127 | https://www.contributor-covenant.org/faq. Translations are available at 128 | https://www.contributor-covenant.org/translations. 129 | -------------------------------------------------------------------------------- /DevOps-Tools/Jenkins/README.md: -------------------------------------------------------------------------------- 1 | # Jenkins Installation 2 | 3 | The bash script in `install-jenkins` files automates the installation of the Jenkins (LTS) version on a Debian-based Linux system that includes Ubuntu and more.
4 | The script will first request for updates, then install Java which is a prerequisite for Jenkins after that it: 5 | - Installs Jenkins 6 | - Starts the service 7 | - Displays the initial admin password. 8 | 9 | # How to use the Installation script 10 | 11 | 1. Open your terminal by pressing the `ctrl + alt + t` command on your keyboard. 12 | 2. You can then clone this repo using the command: 13 | 14 | ``` 15 | git clone https://github.com/the-1Riddle/packageInstallationHub.git 16 | ``` 17 | 3. Move to the directory where the script is, you can use this command: 18 | 19 | ``` 20 | cd packageInstallationHub/DevOps-Tools/Jenkins 21 | ``` 22 | 4. Execute the file to install the package. 23 | 24 | ``` 25 | sudo ./install-jenkins.sh 26 | ``` 27 | 28 | Lastly, when the execution is done, the initial admin password will be displayed in the terminal.
29 | Go to `http://:8080` to complete the initial setup using the displayed admin password. 30 | Then you can configure Jenkins according to your requirements after the initial setup. 31 | 32 | 33 | > **Option**\ 34 | > Feel free to delete the cloned directory when you are done with the installation 35 | 36 | **Good Luck** 37 | -------------------------------------------------------------------------------- /DevOps-Tools/Jenkins/install-jenkins.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Update the system 4 | sudo apt-get update 5 | 6 | # Install Java 7 | sudo apt-get install -y openjdk-11-jdk 8 | 9 | # Add the Jenkins repository to the system 10 | wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - 11 | 12 | # Add the Jenkins repository to the sources list 13 | sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' 14 | 15 | # Update the system after adding the repository 16 | sudo apt-get update 17 | 18 | # Install Jenkins 19 | sudo apt-get install -y jenkins 20 | 21 | # Start Jenkins 22 | sudo systemctl start jenkins 23 | 24 | # Enable Jenkins to start on boot 25 | sudo systemctl enable jenkins 26 | 27 | # Display the status of Jenkins 28 | sudo systemctl status jenkins 29 | 30 | # Output initial admin password 31 | echo "Initial Admin Password:" 32 | sudo cat /var/lib/jenkins/secrets/initialAdminPassword 33 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 the-1Riddle 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | [![Contributors][contributors-shield]][contributors-url] 4 | [![Forks][forks-shield]][forks-url] 5 | [![Stargazers][stars-shield]][stars-url] 6 | [![Issues][issues-shield]][issues-url] 7 | [![MIT License][license-shield]][license-url] 8 | [![Twitter][twitter-shield]][twitter-url] 9 | 10 | 11 | 12 |
13 | 14 |
15 | 16 | 17 | 18 |

Package Installation Hub

19 | 20 |

21 | Find all your installation scripts in one place! 22 |
23 | Explore the docs » 24 |
25 |
26 | View Demo 27 | · 28 | Report Bug 29 | · 30 | Request Feature 31 |

32 |
33 | 34 | 35 | [contributors-shield]: https://img.shields.io/github/contributors/the-1Riddle/packageInstallationHub.svg?style=for-the-badge 36 | [contributors-url]: https://github.com/the-1Riddle/packageInstallationHub/graphs/contributors 37 | [forks-shield]: https://img.shields.io/github/forks/the-1Riddle/packageInstallationHub.svg?style=for-the-badge 38 | [forks-url]: https://github.com/the-1Riddle/packageInstallationHub/network/members 39 | [stars-shield]: https://img.shields.io/github/stars/the-1Riddle/packageInstallationHub.svg?style=for-the-badge 40 | [stars-url]: https://github.com/the-1Riddle/packageInstallationHub/stargazers 41 | [issues-shield]: https://img.shields.io/github/issues/the-1Riddle/packageInstallationHub.svg?style=for-the-badge 42 | [issues-url]: https://github.com/the-1Riddle/packageInstallationHub/issues 43 | [license-shield]: https://img.shields.io/github/license/the-1Riddle/packageInstallationHub.svg?style=for-the-badge 44 | [license-url]: https://github.com/the-1Riddle/packageInstallationHub/blob/master/LICENSE.txt 45 | [twitter-shield]: https://img.shields.io/badge/-Twitter-black.svg?style=for-the-badge&logo=twitter&colorB=555 46 | [twitter-url]: https://twitter.com/rezz_code 47 | -------------------------------------------------------------------------------- /alx-tools_installation/README.md: -------------------------------------------------------------------------------- 1 | # Alx - Tools installation 2 | 3 | The file install-tools.sh in this directory contains a script that will install the following tools and programs. 4 | 5 | | | | | 6 | |------------------------------ |--------------------------- |------------------| 7 | | Betty linter | makefile | Flasgger | 8 | | pycodestyle | semi-standard | Flask | 9 | | C and C# compilers | Request module | Node 14 | 10 | | Fabric for Python | puppet-lint | MySQL 8 | 11 | | installing and activating env | SQLAlchemy module version || 12 | | mysqlclient | MySqldb || 13 | 14 | **Usage:** 15 | 16 | You will need to clone this repo on your locall terminall using the cammand: 17 | ``` 18 | git clone https://github.com/the-1Riddle/packageInstallationHub.git 19 | ``` 20 | 21 | then move to the `alx-tools_installation` directory: 22 | ``` 23 | cd packageInstallationHub/alx-tools_installation 24 | ``` 25 | 26 | Then you can run the file as follows: 27 | ``` 28 | ./install-tools.sh 29 | ``` 30 | > [!NOTE]
31 | > Though, Request module will be installed, it has been deprecated since February 2020 - the team is considering alternative to replace this module - however, it’s a really simple and powerful module for practicing web-scraping in JavaScript (and still used a lot in the industry). 32 | 33 | **Good Luck.** 34 | -------------------------------------------------------------------------------- /alx-tools_installation/install-tools.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # get the updates. 4 | sudo apt-get -y update 5 | 6 | # clone betty repo 7 | git clone https://github.com/alx-tools/Betty.git 8 | 9 | # move to betty directory 10 | cd Betty || exit 11 | 12 | # install betty linter 13 | sudo ./install.sh 14 | 15 | # writing the following contents to a file named "betty" 16 | cat < betty 17 | #!/bin/bash 18 | # Simply a wrapper script to keep you from having to use betty-style 19 | # and betty-doc separately on every item. 20 | # Originally by Tim Britton (@wintermanc3r), multiargument added by 21 | # Larry Madeo (@hillmonkey) 22 | 23 | BIN_PATH="/usr/local/bin" 24 | BETTY_STYLE="betty-style" 25 | BETTY_DOC="betty-doc" 26 | 27 | if [ "\$#" = "0" ]; then 28 | echo "No arguments passed." 29 | exit 1 30 | fi 31 | 32 | for argument in "\$@" ; do 33 | echo -e "\\n========== \$argument ==========" 34 | \${BIN_PATH}/\${BETTY_STYLE} "\$argument" 35 | \${BIN_PATH}/\${BETTY_DOC} "\$argument" 36 | done 37 | EOF 38 | 39 | # changing the file named "betty" to executable 40 | chmod a+x betty 41 | 42 | # moving "betty" file into the /usr/local/bin/ directory 43 | sudo mv betty /usr/local/bin/ 44 | 45 | # move back to the main dir 46 | cd .. || exit 47 | 48 | # install pycodestyle 49 | sudo apt install -y python3-pip 50 | pip install -y pycodestyle 51 | 52 | # install shellcheck 53 | sudo apt-get install -y shellcheck 54 | 55 | # installing C and C# compilers 56 | sudo apt-get install -y gcc 57 | sudo apt install -y mono-complete 58 | 59 | # Install MySQL 8.0 60 | sudo apt-get install -y mysql-server 61 | mysql --version 62 | 63 | # Start MySQL service 64 | sudo service mysql start 65 | 66 | # waiting to connect to the server 67 | sleep 10 68 | 69 | # Connect to MySQL and execute commands 70 | sudo mysql < [!NOTE]
36 | > If you encounter any issues at the key section, it could be your firewall blocking traffic from the web. 37 | > Then do `sudo apt-get -y update`, if it is slow and it ends up not working at all, then kindly disable your firewall. 38 | > Then try running the script again 💜❤️ 39 | 40 | > [!WARNING]
41 | > This script has been tested on different web servers and proven to be working 100% so dont disable your firewall before running unsuccessful installation. 42 | 43 | **Good Luck, 44 | ** 45 | -------------------------------------------------------------------------------- /alx-tools_installation/mysql-5.7_installation/install-mysql5.7.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # this script will install mysql version 5.7 4 | 5 | cd /etc/apt || exit 6 | cat < signature.key 7 | -----BEGIN PGP PUBLIC KEY BLOCK----- 8 | Version: SKS 1.1.6 9 | Comment: Hostname: pgp.mit.edu 10 | 11 | mQINBGG4urcBEACrbsRa7tSSyxSfFkB+KXSbNM9rxYqoB78u107skReefq4/+Y72TpDvlDZL 12 | mdv/lK0IpLa3bnvsM9IE1trNLrfi+JES62kaQ6hePPgn2RqxyIirt2seSi3Z3n3jlEg+mSdh 13 | AvW+b+hFnqxo+TY0U+RBwDi4oO0YzHefkYPSmNPdlxRPQBMv4GPTNfxERx6XvVSPcL1+jQ4R 14 | 2cQFBryNhidBFIkoCOszjWhm+WnbURsLheBp757lqEyrpCufz77zlq2gEi+wtPHItfqsx3rz 15 | xSRqatztMGYZpNUHNBJkr13npZtGW+kdN/xu980QLZxN+bZ88pNoOuzD6dKcpMJ0LkdUmTx5 16 | z9ewiFiFbUDzZ7PECOm2g3veJrwr79CXDLE1+39Hr8rDM2kDhSr9tAlPTnHVDcaYIGgSNIBc 17 | YfLmt91133klHQHBIdWCNVtWJjq5YcLQJ9TxG9GQzgABPrm6NDd1t9j7w1L7uwBvMB1wgpir 18 | RTPVfnUSCd+025PEF+wTcBhfnzLtFj5xD7mNsmDmeHkF/sDfNOfAzTE1v2wq0ndYU60xbL6/ 19 | yl/Nipyr7WiQjCG0m3WfkjjVDTfs7/DXUqHFDOu4WMF9v+oqwpJXmAeGhQTWZC/QhWtrjrNJ 20 | AgwKpp263gDSdW70ekhRzsok1HJwX1SfxHJYCMFs2aH6ppzNsQARAQABtDZNeVNRTCBSZWxl 21 | YXNlIEVuZ2luZWVyaW5nIDxteXNxbC1idWlsZEBvc3Mub3JhY2xlLmNvbT6JAlQEEwEIAD4W 22 | IQSFm+jXxYb1OEMLGcJGe5QtOnm9KQUCYbi6twIbAwUJA8JnAAULCQgHAgYVCgkICwIEFgID 23 | AQIeAQIXgAAKCRBGe5QtOnm9KUewD/992sS31WLGoUQ6NoL7qOB4CErkqXtMzpJAKKg2jtBG 24 | G3rKE1/0VAg1D8AwEK4LcCO407wohnH0hNiUbeDck5x20pgS5SplQpuXX1K9vPzHeL/WNTb9 25 | 8S3H2Mzj4o9obED6Ey52tTupttMF8pC9TJ93LxbJlCHIKKwCA1cXud3GycRN72eqSqZfJGds 26 | aeWLmFmHf6oee27d8XLoNjbyAxna/4jdWoTqmp8oT3bgv/TBco23NzqUSVPi+7ljS1hHvcJu 27 | oJYqaztGrAEf/lWIGdfl/kLEh8IYx8OBNUojh9mzCDlwbs83CBqoUdlzLNDdwmzu34Aw7xK1 28 | 4RAVinGFCpo/7EWoX6weyB/zqevUIIE89UABTeFoGih/hx2jdQV/NQNthWTW0jH0hmPnajBV 29 | AJPYwAuO82rx2pnZCxDATMn0elOkTue3PCmzHBF/GT6c65aQC4aojj0+Veh787QllQ9FrWbw 30 | nTz+4fNzU/MBZtyLZ4JnsiWUs9eJ2V1g/A+RiIKu357Qgy1ytLqlgYiWfzHFlYjdtbPYKjDa 31 | ScnvtY8VO2Rktm7XiV4zKFKiaWp+vuVYpR0/7Adgnlj5Jt9lQQGOr+Z2VYx8SvBcC+by3XAt 32 | YkRHtX5u4MLlVS3gcoWfDiWwCpvqdK21EsXjQJxRr3dbSn0HaVj4FJZX0QQ7WZm6WLkCDQRh 33 | uLq3ARAA6RYjqfC0YcLGKvHhoBnsX29vy9Wn1y2JYpEnPUIB8X0VOyz5/ALv4Hqtl4THkH+m 34 | mMuhtndoq2BkCCk508jWBvKS1S+Bd2esB45BDDmIhuX3ozu9Xza4i1FsPnLkQ0uMZJv30ls2 35 | pXFmskhYyzmo6aOmH2536LdtPSlXtywfNV1HEr69V/AHbrEzfoQkJ/qvPzELBOjfjwtDPDeP 36 | iVgW9LhktzVzn/BjO7XlJxw4PGcxJG6VApsXmM3t2fPN9eIHDUq8ocbHdJ4en8/bJDXZd9eb 37 | QoILUuCg46hE3p6nTXfnPwSRnIRnsgCzeAz4rxDR4/Gv1Xpzv5wqpL21XQi3nvZKlcv7J1IR 38 | VdphK66De9GpVQVTqC102gqJUErdjGmxmyCA1OOORqEPfKTrXz5YUGsWwpH+4xCuNQP0qmre 39 | Rw3ghrH8potIr0iOVXFic5vJfBTgtcuEB6E6ulAN+3jqBGTaBML0jxgj3Z5VC5HKVbpg2DbB 40 | /wMrLwFHNAbzV5hj2Os5Zmva0ySP1YHB26pAW8dwB38GBaQvfZq3ezM4cRAo/iJ/GsVE98dZ 41 | EBO+Ml+0KYj+ZG+vyxzo20sweun7ZKT+9qZM90f6cQ3zqX6IfXZHHmQJBNv73mcZWNhDQOHs 42 | 4wBoq+FGQWNqLU9xaZxdXw80r1viDAwOy13EUtcVbTkAEQEAAYkCPAQYAQgAJhYhBIWb6NfF 43 | hvU4QwsZwkZ7lC06eb0pBQJhuLq3AhsMBQkDwmcAAAoJEEZ7lC06eb0pSi8P/iy+dNnxrtiE 44 | Nn9vkkA7AmZ8RsvPXYVeDCDSsL7UfhbS77r2L1qTa2aB3gAZUDIOXln51lSxMeeLtOequLME 45 | V2Xi5km70rdtnja5SmWfc9fyExunXnsOhg6UG872At5CGEZU0c2Nt/hlGtOR3xbt3O/Uwl+d 46 | ErQPA4BUbW5K1T7OC6oPvtlKfF4bGZFloHgt2yE9YSNWZsTPe6XJSapemHZLPOxJLnhs3VBi 47 | rWE31QS0bRl5AzlO/fg7ia65vQGMOCOTLpgChTbcZHtozeFqva4IeEgE4xN+6r8WtgSYeGGD 48 | RmeMEVjPM9dzQObf+SvGd58u2z9f2agPK1H32c69RLoA0mHRe7Wkv4izeJUc5tumUY0e8Ojd 49 | enZZjT3hjLh6tM+mrp2oWnQIoed4LxUw1dhMOj0rYXv6laLGJ1FsW5eSke7ohBLcfBBTKnMC 50 | BohROHy2E63Wggfsdn3UYzfqZ8cfbXetkXuLS/OM3MXbiNjg+ElYzjgWrkayu7yLakZx+mx6 51 | sHPIJYm2hzkniMG29d5mGl7ZT9emP9b+CfqGUxoXJkjs0gnDl44bwGJ0dmIBu3ajVAaHODXy 52 | Y/zdDMGjskfEYbNXCAY2FRZSE58tgTvPKD++Kd2KGplMU2EIFT7JYfKhHAB5DGMkx92HUMid 53 | sTSKHe+QnnnoFmu4gnmDU31i 54 | =Xqbo 55 | -----END PGP PUBLIC KEY BLOCK----- 56 | EOF 57 | 58 | # Add the MySQL repository key 59 | sudo apt-key add signature.key 60 | 61 | # Add MySQL repository to sources list 62 | sudo sh -c 'echo "deb http://repo.mysql.com/apt/ubuntu bionic mysql-5.7" >> /etc/apt/sources.list.d/mysql.list' 63 | 64 | # Fetch the key from the keyserver 65 | sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B7B3B788A8D3785C 66 | 67 | # Update package lists 68 | sudo apt-get update 69 | 70 | # Display available versions and policies 71 | sudo apt-cache policy mysql-server 72 | 73 | # Install MySQL client and server 74 | sudo apt install -f mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* 75 | 76 | # print out versions 77 | sudo apt list -a mysql-server 78 | --------------------------------------------------------------------------------