I maintain a script (ready-for.sh) which checks requirements for various courses I teach which makes sure you have the right computer, RAM, disk space available, and such in order to do the class. It also makes sure that the required packages for your $DISTRO are installed (supported distros are CentOS, Debian, Fedora, Mint, openSUSE, RHEL, SLES, Ubuntu, with some initial support for ArchLinux). It has a full test suite to make sure the package lists are valid and available for each of the distro. It also can output a JSON version of the requirements (if you want to extract requirements for something else like a webpage or document) and includes an auto-updater. Its designed to make getting ready for a specific course very easy for a new person. I also use it to debug setup issues on people’s computers over the phone or email.
One of the courses I maintain requirements for is the LF Yocto Project course. And recently I rebuilt the script into something more generic (check-requirements.sh) which specifically allows you to check for requirements for the various groupings of packages in the Yocto Project documentation. I’ve made it initially available as an alpha release via https://cm.converseincode.com/cr/ <https://cm.converseincode.com/cr/> , and I plan to maintain it along with the script described above since they share so much of the same code. The idea is that users would download and run this script once in order to make sure their machines are ready to build OE or Poky or whatever, instead of reading the setup document and manually installing all the packages. One would still have to clone the appropriate git repo to get a copy of OE or Poky after that. As an example, here it is being run on an Ubuntu-16.04 machine which is missing packages for building the documentation. (Showing the YP requirements are boring, because this computer already meets those requirements because I build OE all the time). It is to be run as a normal user, but uses sudo internally when it needs to run privileged commands. In fact if you try to run it as root, it complains. $ sudo ./check-requirements.sh [sudo] password for behanw: FAIL: Please don't run as root NOTE: Sudo will be used internally by this script as required. $ ./check-requirements.sh --list Available (4) options: YPDOC - Requirements for Yocto Project Documentation YPGUI - Requirements for Yocto Project GUI YP - Requirements for Yocto Project YPST - Requirements for OpenEmbedded Self-Test $ ./check-requirements.sh YPDOC Checking that this computer is suitable for YPDOC: Requirements for Yocto Project Documentation -------------------------------------------------------------------------------- PASS: CPU architecture is x86_64 PASS: 4 core CPU (good enough but 8 is preferred) PASS: Your CPU appears powerful enough (currently at 23228 BogoMIPS cumulatively) PASS: 6 GiB RAM PASS: 158 GiB free disk space in /home/behanw PASS: Linux distribution architecture is x86_64 PASS: Linux distribution is Ubuntu:amd64-16.04 (xenial) PASS: Internet is available (which is required in this case) -------------------------------------------------------------------------------- WARN: Some packages are missing NOTE: Need to install: dblatex docbook-dsssl docbook-utils fop jadetex java-wrappers libavalon-framework-java libbatik-java libbsf-java libfontbox-java libfop-java libosp5 libostyle1c2 libsgmls-perl libsp1c2 libxmlgraphics-commons-java openjade sgmlspl sp texlive-bibtex-extra texlive-math-extra xmlto You can install missing packages by running: ./check-requirements.sh --install YPDOC or by: sudo apt-get --no-install-recommends install dblatex docbook-dsssl docbook-utils fop jadetex java-wrappers libavalon-framework-java libbatik-java libbsf-java libfontbox-java libfop-java libosp5 libostyle1c2 libsgmls-perl libsp1c2 libxmlgraphics-commons-java openjade sgmlspl sp texlive-bibtex-extra texlive-math-extra xmlto -------------------------------------------------------------------------------- WARN: Your computer doesn't meet the stated requirements unless you can fix the above warnings. WARN: You also have some missing packages. $ ./check-requirements.sh --install YPDOC Checking that this computer is suitable for YPDOC: Requirements for Yocto Project Documentation -------------------------------------------------------------------------------- <snip> -------------------------------------------------------------------------------- WARN: Some packages are missing WARN: About to install: dblatex docbook-dsssl docbook-utils fop jadetex java-wrappers libavalon-framework-java libbatik-java libbsf-java libfontbox-java libfop-java libosp5 libostyle1c2 libsgmls-perl libsp1c2 libxmlgraphics-commons-java openjade sgmlspl sp texlive-bibtex-extra texlive-math-extra xmlto Is that okay? [y/N] Is this useful? Thoughts? Suggestions? Give it a try and let me know what you think. It’s extensible, so adding other groupings of packages and such, or adding aliases for OE or something is all trivially done. Thanks, Behan -- _______________________________________________ Openembedded-devel mailing list Openembedded-devel@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-devel