Conan Documentation Release 1.18.5

Total Page:16

File Type:pdf, Size:1020Kb

Conan Documentation Release 1.18.5 conan Documentation Release 1.18.5 conan Sep 24, 2021 CONTENTS 1 Introduction 3 1.1 Open Source...............................................3 1.2 Decentralized package manager.....................................3 1.3 Binary management...........................................4 1.4 Cross platform, build system agnostic..................................4 1.5 Stable...................................................5 2 Install 7 2.1 Install with pip (recommended).....................................7 2.2 Install from brew (OSX).........................................8 2.3 Install from AUR (Arch Linux).....................................8 2.4 Install the binaries............................................9 2.5 Initial configuration...........................................9 2.6 Install from source............................................9 2.7 Update.................................................. 10 2.8 Python 2 Deprecation Notice....................................... 10 3 Getting Started 11 3.1 An MD5 Encrypter using the Poco Libraries.............................. 11 3.2 Installing Dependencies......................................... 14 3.3 Inspecting Dependencies......................................... 15 3.4 Searching Packages........................................... 18 3.5 Building with Other Configurations................................... 18 4 Using packages 21 4.1 Installing dependencies......................................... 21 4.2 Using profiles............................................... 26 4.3 Workflows................................................ 27 5 Creating Packages 31 5.1 Getting Started.............................................. 31 5.2 Recipe and Sources in a Different Repo................................. 36 5.3 Recipe and Sources in the Same Repo.................................. 37 5.4 Packaging Existing Binaries....................................... 40 5.5 Understanding Packaging........................................ 42 5.6 Defining Package ABI Compatibility.................................. 44 5.7 Inspecting Packages........................................... 52 5.8 Packaging Approaches.......................................... 53 5.9 Package Creator Tools.......................................... 58 6 Uploading Packages 59 i 6.1 Remotes................................................. 59 6.2 Uploading Packages to Remotes..................................... 60 6.3 Using Bintray............................................... 61 6.4 Artifactory Community Edition for C/C++............................... 63 6.5 Running conan_server.......................................... 64 7 Developing packages 71 7.1 Package development flow........................................ 71 7.2 Packages in editable mode........................................ 75 7.3 Workspaces................................................ 79 8 Package apps and devtools 85 8.1 Running and deploying packages.................................... 85 8.2 Creating conan packages to install dev tools............................... 88 8.3 Build requirements............................................ 91 9 Versioning 97 9.1 Introduction to versioning........................................ 97 9.2 Version ranges.............................................. 101 9.3 Package Revisions............................................ 102 9.4 Lockfiles................................................. 103 10 Mastering Conan 111 10.1 Use conanfile.py for consumers..................................... 111 10.2 Conditional settings, options and requirements............................. 113 10.3 Build policies............................................... 115 10.4 Environment variables.......................................... 115 10.5 Virtual Environments........................................... 117 10.6 Logging.................................................. 118 10.7 Sharing the settings and other configuration............................... 121 10.8 Conan local cache: concurrency, Continuous Integration, isolation................... 121 11 Systems and cross building 123 11.1 Cross-building.............................................. 123 11.2 Windows Subsystems.......................................... 131 12 Extending Conan 135 12.1 Customizing settings........................................... 135 12.2 Python requires: reusing code [EXPERIMENTAL]........................... 138 12.3 Hooks................................................... 142 13 Integrations 147 13.1 Build systems............................................... 147 13.2 IDEs................................................... 172 13.3 CI Platforms............................................... 187 13.4 Other Systems.............................................. 205 13.5 Version Control System......................................... 224 13.6 Custom integrations........................................... 225 13.7 Linting.................................................. 230 14 Howtos 231 14.1 How to package header-only libraries.................................. 231 14.2 How to launch conan install from cmake................................ 233 14.3 How to create and reuse packages based on Visual Studio....................... 234 14.4 Creating and reusing packages based on Makefiles........................... 237 ii 14.5 How to manage the GCC >= 5 ABI................................... 239 14.6 Using Visual Studio 2017 - CMake integration............................. 240 14.7 How to manage C++ standard [EXPERIMENTAL]........................... 243 14.8 How to use Docker to create and cross-build C and C++ Conan packages............... 244 14.9 How to reuse Python code in recipes................................... 247 14.10 How to create and share a custom generator with generator packages................. 250 14.11 How to manage shared libraries..................................... 253 14.12 How to reuse cmake install for package() method............................ 258 14.13 How to collaborate with other users’ packages............................. 259 14.14 How to link with Apple Frameworks.................................. 260 14.15 How to package Apple Frameworks................................... 260 14.16 How to collect licenses of dependencies................................. 261 14.17 How to extract licenses from headers.................................. 261 14.18 How to capture package version from SCM: git............................. 261 14.19 How to capture package version from SCM: svn............................ 262 14.20 How to capture package version from text or build files......................... 262 14.21 How to use Conan as other language package manager......................... 263 14.22 How to manage SSL (TLS) certificates................................. 268 14.23 How to check the version of the Conan client inside a conanfile.................... 269 14.24 Use a generic CI with Conan and Artifactory.............................. 270 14.25 Compiler sanitizers............................................ 271 15 Reference 275 15.1 Commands................................................ 275 15.2 conanfile.txt............................................... 332 15.3 conanfile.py............................................... 334 15.4 Generators................................................ 368 15.5 Profiles.................................................. 396 15.6 Build helpers............................................... 400 15.7 Tools................................................... 422 15.8 Configuration files............................................ 446 15.9 Environment variables.......................................... 458 15.10 Hooks [EXPERIMENTAL]....................................... 466 16 Videos and links 471 17 FAQ 473 17.1 Upgrading to Conan 1.0......................................... 473 17.2 General.................................................. 475 17.3 Using Conan............................................... 476 17.4 Troubleshooting............................................. 479 18 Changelog 483 18.1 1.18.5 (24-Sept-2019).......................................... 483 18.2 1.18.4 (12-Sept-2019).......................................... 483 18.3 1.18.3 (10-Sept-2019).......................................... 483 18.4 1.18.2 (30-Aug-2019).......................................... 483 18.5 1.18.1 (8-Aug-2019)........................................... 484 18.6 1.18.0 (30-Jul-2019)........................................... 484 18.7 1.17.2 (25-Jul-2019)........................................... 484 18.8 1.17.1 (22-Jul-2019)........................................... 484 18.9 1.17.0 (9-Jul-2019)............................................ 485 18.10 1.16.1 (14-Jun-2019)........................................... 486 18.11 1.16.0 (4-Jun-2019)........................................... 486 18.12 1.15.4................................................... 487 iii 18.13 1.15.3................................................... 487 18.14 1.15.2 (31-May-2019).......................................... 487 18.15 1.15.1 (16-May-2019).......................................... 487 18.16 1.15.0 (6-May-2019)........................................... 488 18.17 1.14.5 (30-Apr-2019)........................................... 489 18.18 1.14.4 (25-Apr-2019)........................................... 489 18.19 1.14.3 (11-Apr-2019)........................................... 489 18.20 1.14.2 (11-Apr-2019)..........................................
Recommended publications
  • Creating Rpms Guide
    CREATING RPMS (Student version) v1.0 Featuring 36 pages of lecture and a 48 page lab exercise This docu m e n t serves two purpose s: 1. Representative sample to allow evaluation of our courseware manuals 2. Make available high quality RPM documentation to Linux administrators A bout this m aterial : The blue background you see simulates the custom paper that all Guru Labs course w are is printed on. This student version does not contain the instructor notes and teaching tips present in the instructor version. For more information on all the features of our unique layout, see: http://ww w . g urulabs.co m /courseware/course w are_layout.php For more freely available Guru Labs content (and the latest version of this file), see: http://www.gurulabs.co m/goodies/ This sample validated on: Red Hat Enterprise Linux 4 & Fedora Core v3 SUSE Linux Enterprise Server 9 & SUSE Linux Professional 9.2 About Guru Labs: Guru Labs is a Linux training company started in 199 9 by Linux experts to produce the best Linux training and course w are available. For a complete list, visit our website at: http://www.gurulabs.co m/ This work is copyrighted Guru Labs, L.C. 2005 and is licensed under the Creative Common s Attribution- NonCom mer cial- NoDerivs License. To view a copy of this license, visit http://creativecom m o n s.org/licenses/by- nc- nd/2.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 943 0 5, USA. Guru Labs 801 N 500 W Ste 202 Bountiful, UT 84010 Ph: 801-298-5227 WWW.GURULABS.COM Objectives: • Understand
    [Show full text]
  • CERN R&D on Spack and the Turnkey Stack
    CERN R&D on Spack and the Turnkey Stack HSF Software Workshop - 2020/11/19 Valentin Volkl (CERN), Key4hep Software Group Thanks to Andre Sailer, Pere Mato, Ben Morgan for use of Slides Valentin Volkl: Key4HEP & Spack Table of Contents ● Key4HEP - Introduction and motivation ● The Spack package manager ● Technical considerations ● Deployment to CVMFS ● Workflow -Spack for Development Valentin Volkl: Key4HEP & Spack 2 Dependency Graph of Key4HEP Stack Experiment-specific Packages Valentin Volkl: Key4HEP & Spack 3 Dependency Graph of Key4HEP stack Experiment-specific Packages + HEP-specific packages Valentin Volkl: Key4HEP & Spack 4 Dependency Graph of Key4HEP stack Experiment-specific Packages + HEP-specific Packages + General Purpose Libraries Valentin Volkl: Key4HEP & Spack 5 Requirements for a Build System [ ] Need to be able to scale to a typical experiment software stack [ ] Combinatorics of multiple platforms, versions, Release/Debug ... [ ] Easy deployment to CVMFS [ ] Allow local builds independent of central CVMFS installations [ ] Support software development usecases The KEY4HEP stack contains some 300 packages ● 60 Experiment-specific ● 50 HEP-specific ● 200 System/General Purpose 14 GB install size, some 6h to build on single 4-core machine Valentin Volkl: Key4HEP & Spack 6 Key4HEP ● Future detector studies critically rely on well-maintained software stacks to model detector concepts and to understand a detector’s limitations and physics reach ● We have a scattered landscape of specific software tools on the one hand and integrated
    [Show full text]
  • Building Embedded Linux Systems ,Roadmap.18084 Page Ii Wednesday, August 6, 2008 9:05 AM
    Building Embedded Linux Systems ,roadmap.18084 Page ii Wednesday, August 6, 2008 9:05 AM Other Linux resources from O’Reilly Related titles Designing Embedded Programming Embedded Hardware Systems Linux Device Drivers Running Linux Linux in a Nutshell Understanding the Linux Linux Network Adminis- Kernel trator’s Guide Linux Books linux.oreilly.com is a complete catalog of O’Reilly’s books on Resource Center Linux and Unix and related technologies, including sample chapters and code examples. ONLamp.com is the premier site for the open source web plat- form: Linux, Apache, MySQL, and either Perl, Python, or PHP. Conferences O’Reilly brings diverse innovators together to nurture the ideas that spark revolutionary industries. We specialize in document- ing the latest tools and systems, translating the innovator’s knowledge into useful skills for those in the trenches. Visit con- ferences.oreilly.com for our upcoming events. Safari Bookshelf (safari.oreilly.com) is the premier online refer- ence library for programmers and IT professionals. Conduct searches across more than 1,000 books. Subscribers can zero in on answers to time-critical questions in a matter of seconds. Read the books on your Bookshelf from cover to cover or sim- ply flip to the page you need. Try it today for free. main.title Page iii Monday, May 19, 2008 11:21 AM SECOND EDITION Building Embedded Linux SystemsTomcat ™ The Definitive Guide Karim Yaghmour, JonJason Masters, Brittain Gilad and Ben-Yossef, Ian F. Darwin and Philippe Gerum Beijing • Cambridge • Farnham • Köln • Sebastopol • Taipei • Tokyo Building Embedded Linux Systems, Second Edition by Karim Yaghmour, Jon Masters, Gilad Ben-Yossef, and Philippe Gerum Copyright © 2008 Karim Yaghmour and Jon Masters.
    [Show full text]
  • Robust Linux Binaries.Pdf
    Robust Linux Binaries How to use Portage to provide a solid base stack for HEP G. Amadio https://xkcd.com/1987 Why do we fall into this kind of situation? ● We want software that’s not part of the system ● Use pip, conda, homebrew, etc to get it somewhere ● Not compiled with same compiler → incompatible ABI ● Often requires setting LD_LIBRARY_PATH and/or PYTHONPATH ● Problems if a package is both in the system and in add-ons ● Updates to the system do not take add-ons into account 3 Classic example: ROOT, Python, and Anaconda ● User has Anaconda installation with Python, wants ROOT ● User then tries to build ROOT with system compiler and link with Python from Anaconda installation ● libPyROOT.so has to link against system’s libstdc++.so and anaconda’s libpython2.7.so ● Problem: libpython2.7.so from Anaconda is not guaranteed to be ABI-compatible with system libraries ● Solution: install GCC from anaconda that was used to build Python and build ROOT with that compiler instead 4 Why LD_LIBRARY_PATH should be avoided ● LD_LIBRARY_PATH is commonly used to add directories to the linker’s search path ● Problem: LD_LIBRARY_PATH takes precedence, overrides important system libraries ○ See e.g. https://sft.its.cern.ch/jira/browse/SPI-1083 ● Solution: use a wrapper script or even better, don’t use LD_LIBRARY_PATH $ ssh lxplus7 $ lsb_release -d Description: CentOS Linux release 7.5.1804 (Core) $ source /cvmfs/sft.cern.ch/lcg/views/LCG_latest/x86_64-centos7-gcc7-opt/setup.sh $ ldd /usr/bin/git linux-vdso.so.1 => (0x00007ffdb55b3000) libpcre.so.1
    [Show full text]
  • NVIDIA CUDA Installation Guide for Linux
    NVIDIA CUDA Installation Guide for Linux Installation and Verification on Linux Systems DU-05347-001_v11.4 | September 2021 Table of Contents Chapter 1. Introduction........................................................................................................ 1 1.1. System Requirements...............................................................................................................1 1.2. About This Document............................................................................................................... 3 Chapter 2. Pre-installation Actions..................................................................................... 4 2.1. Verify You Have a CUDA-Capable GPU....................................................................................4 2.2. Verify You Have a Supported Version of Linux........................................................................ 5 2.3. Verify the System Has gcc Installed........................................................................................5 2.4. Verify the System has the Correct Kernel Headers and Development Packages Installed........................................................................................................................................5 2.5. Install MLNX_OFED.................................................................................................................. 7 2.6. Choose an Installation Method................................................................................................ 7 2.7. Download
    [Show full text]
  • The Spack Package Manager: Bringing Order to HPC Software Chaos
    The Spack Package Manager: Bringing Order to HPC Software Chaos Todd Gamblin Matthew LeGendre Michael R. Collette Gregory L. Lee [email protected] [email protected] [email protected] [email protected] Adam Moody Bronis R. de Supinski Scott Futral [email protected] [email protected] [email protected] Lawrence Livermore National Laboratory ABSTRACT Worse, the space of required builds grows combinatorially with Large HPC centers spend considerable time supporting software for each new configuration parameter. As a result, LLNL staff spend thousands of users, but the complexity of HPC software is quickly countless hours dealing with build and deployment issues. outpacing the capabilities of existing software management tools. Existing package management tools automate parts of the build Scientific applications require specific versions of compilers, MPI, process [2, 10, 11, 12, 23, 24, 38, 39, 41]. For the most part, they and other dependency libraries, so using a single, standard software focus on keeping a single, stable set of packages up to date, and stack is infeasible. However, managing many configurations is they do not handle installation of multiple versions or configurations. difficult because the configuration space is combinatorial in size. Those that do handle multiple configurations typically require that We introduce Spack, a tool used at Lawrence Livermore National package files be created for each combination of options [10, 11, Laboratory to manage this complexity. Spack provides a novel, re- 12, 23], leading to a profusion of files and maintenance issues. cursive specification syntax to invoke parametric builds of packages Some allow limited forms of composition [11, 12, 23], but their and dependencies.
    [Show full text]
  • Cernvm – a Virtual Software Appliance for LHC Applications
    17th International Conference on Computing in High Energy and Nuclear Physics (CHEP09) IOP Publishing Journal of Physics: Conference Series 219 (2010) 042003 doi:10.1088/1742-6596/219/4/042003 CernVM – a virtual software appliance for LHC applications P Buncic1, C Aguado Sanchez1, J Blomer1, L Franco1, A Harutyunian2,3, P Mato1, Y Yao3 1 CERN, 1211 Geneve 23, Geneva, Switzerland 2Armenian e-Science Foundation, Yerevan, Armenia 3Yerevan Physics Institute after A.I. Alikhanyan, Yerevan, Armenia 4 Lawrence Berkeley National Laboratory, 1 Cyclotron Road, CA 94720 Abstract. CernVM is a Virtual Software Appliance capable of running physics applications from the LHC experiments at CERN. It aims to provide a complete and portable environment for developing and running LHC data analysis on any end-user computer (laptop, desktop) as well as on the Grid, independently of Operating System platforms (Linux, Windows, MacOS). The experiment application software and its specific dependencies are built independently from CernVM and delivered to the appliance just in time by means of a CernVM File System (CVMFS) specifically designed for efficient software distribution. The procedures for building, installing and validating software releases remains under the control and responsibility of each user community. We provide a mechanism to publish pre-built and configured experiment software releases to a central distribution point from where it finds its way to the running CernVM instances via the hierarchy of proxy servers or content delivery networks. In this paper, we present current state of CernVM project and compare performance of CVMFS to performance of traditional network file system like AFS and discuss possible scenarios that could further improve its performance and scalability.
    [Show full text]
  • Application to Appliance a Hands-On Guide Application to Appliance: a Hands-On Guide Copyright © 2007 Rpath, Inc
    Application to Appliance A Hands-on Guide Application to Appliance: A Hands-on Guide Copyright © 2007 rPath, Inc. rPath, Inc. 701 Corporate Center Drive, Suite 450 Raleigh, North Carolina 27607 USA rPath, rBuilder, and rPath Appliance Platform are trademarks of rPath, Inc. Conary is a service mark of rPath, Inc. All other trademarks and service marks are property of their respective owners. 2 Table of Contents 1. Introduction ........................................................................... 1 2. Building Appliances with rBuilder and rMake ............................................ 2 2.1. rBuilder:The Heart of the Process ................................................. 2 2.2. rMake: The Tool for Building .................................................... 3 2.3. Recipes for Appliance Development Success ....................................... 3 2.4. The Appliance Group ............................................................ 3 2.5. The Appliance Development Process .............................................. 3 2.6. rPath Appliance Platform: The Essentials for Appliance Management ................ 5 3. Set Up an rBuilder Project .............................................................. 6 4. Set Up an Appliance Development Environment .......................................... 8 4.1. Download and Launch the Appliance Development Image ........................... 8 4.2. Configure the Context ........................................................... 9 5. Build an Appliance Group ............................................................
    [Show full text]
  • Introduction to Easybuild Getting Scientific Software Installed with Ease
    Introduction to EasyBuild Getting Scientific Software Installed With Ease Kenneth Hoste HPC-UGent, Ghent University, Belgium [email protected] http://users.ugent.be/~kehoste/EasyBuild_HPCAC_intro_20160323.pdf March 23rd 2016 { HPC Advisory Council conference { Lugano http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org 1/32 whoami • PhD in Computer Science from Ghent University (Belgium) • joined HPC-UGent team in October 2010 • main tasks: user support & training, software installations • inherited maintenance of EasyBuild in 2011 • slowly also became lead developer & release manager • e-mail: [email protected] • Twitter: @kehoste • GitHub: https://github.com/boegel • IRC (Freenode): boegel • Google+: [email protected] http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org 2/32 HPC-UGent in a nutshell http://www.ugent.be/hpc { http://www.vscentrum.be • HPC team at central IT dept. of Ghent University (Belgium) • 9+1 team members: 1 manager, ∼3 user support, ∼6 sysadmin • 4+1 Tier2 clusters + one Tier1 cluster (8.5k cores) • ∼1.8k user accounts, across all scientific domains • tasks: hardware, system administration, user support/training, . • member of Flemish Supercomputer Centre (VSC) virtual centre, collaboration between Flemish university associations http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org 3/32 Tasks for HPC user support teams • resolving problems that occur when using the HPC system(s) { "I lost my private key/password, and now I can't log in. Help?" { "My job crashed, and I have no idea why. What happened?" { "My stuff doesn't work anymore, and I didn't change a thing!" • answering questions, from simple to very technical • installing (scientific) software tools/libraries/applications • helping users improve their workflow (not necessarily by request) • training: Linux basics, OpenMP, MPI, Python, etc.
    [Show full text]
  • Vysok´E Uˇcení Technick´E V Brnˇe N´Avrh Nov´E Rpm
    VYSOKEU´ CENˇ ´I TECHNICKE´ V BRNEˇ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMACNˇ ´ICH TECHNOLOGI´I USTAV´ INTELIGENTN´ICH SYSTEM´ U˚ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INTELLIGENT SYSTEMS NAVRH´ NOVE´ RPM DATABAZE´ DESIGN OF NEW RPM DATABASE DIPLOMOVA´ PRACE´ MASTER’S THESIS AUTOR PRACE´ Bc. JAN ZELENY´ AUTHOR VEDOUC´I PRACE´ Dr. Ing. PETR PERINGER SUPERVISOR BRNO 2010 Abstrakt Syst´emy spr´avybal´ıˇck˚utvoˇr´ı velmi efektivn´ı a pohodln´eˇreˇsen´ı pro instalaci, ´udrˇzbua maz´an´ı software v poˇc´ıtaˇci. Jejich z´akladn´ı koncept spoˇc´ıv´av uchov´av´an´ı informac´ı o instalovan´emsoftwaru na jednom m´ıstˇea jejich spr´avˇedodan´ymin´astroji. RPM datab´aze je pr´avˇet´ımm´ıstem,kde jsou informace uchovan´e.Souˇcasn´eˇreˇsen´ıje zastaral´ea potˇrebuje vylepˇsit. Tato pr´aceanalyzuje souˇcasn´eˇreˇsen´ı,jeho moˇzn´ealternativy a na z´akladˇet´eto anal´yzynavrhuje nov´ydesign datab´aze. Souˇc´ast´ıje tak´euk´azka implementace rozhran´ı nad touto datab´az´ıa porovn´an´ıse star´ymˇreˇsen´ım. Kl´ıˇcov´aslova RPM, rpmdm, bal´ıˇckovac´ısyst´em,datab´aze,MySQL, SQL Abstract Package management systems are very effective and comfortable solution of installing, main- taining and erasing software from computer. Their basic idea is that all information about installed software is kept in one place and is managed by common utilities. RPM database is such place, where information are being kept. Currently used solution is obsolete and needs some improvements. This thesis analyzes current solution, possible alternative op- tions and based on this a new database design is proposed.
    [Show full text]
  • Preparing Your Centos Linux System for Mailvault SPE
    MailVault Info Papers Preparing your CentOS Linux system for MailVault SPE These are general instructions, meant to serve as a recommended starting step, but may be adapted to specific requirements. Assumptions This is a single-node setup. Hardware sizing has been done and the appropriate hardware is in place. Recommandations: CPU - A modern, multicore CPU. RAM - Minimum: 16 GB, Recommended: 32 GB or more. HDD - space as needed. High speed, low latency disks are best for performance. Increasing reliability via appropriate RAID is highly recommended. General Setup OS and indexes will reside on the server disks. Email may be stored on the server disks, or, will be on external storage (mounted over NFS). Operating System In general, the Server versions are recommended. In case a native GUI for the OS is needed, the Desktop variants may be used. Ubuntu Server 16.04.x or 18.04.x (LTS), 64-bit Ubuntu/Kubuntu 16.04.x or 18.04.x (LTS), Desktop, 64-bit CentOS 7.x, 64-bit Partition Structure The partitions could be of type ext4. /boot - 1 GB Swap - 4 GB /- 100 GB /mvdata - All the remaining space (ensure it is enough to store your email) MailVault Info Papers Install Python 2.7.15 1. Prerequisites sudo yum -y update sudo yum groupinstall -y 'development tools' sudo yum install openssl-devel openldap- devel readline-devel sudo yum install gdbm-devel sqlite-devel sudo yum install libevent-devel libyaml-devel zlib-devel sudo yum install tk-devel libtiff-devel libjpeg-devel sudo yum install libtiff-devel gdb bzip2-devel sudo yum install ncurses-devel sqlite-devel readline-devel sudo yum install libxml2-devel libxslt1-devel libxslt-devel sudo yum install python-devel bzip2-devel expat-devel sudo yum install libffi-devel.x86_64 openldap.x86_64 openldap-devel.x86_64 sudo yum install gdbm-devel.x86_64 libdb.x86_64 libdb-cxx.x86_64 sudo yum install libdb-cxx-devel.x86_64 libdb-devel.x86_64 sudo yum install libdb-devel.x86_64 libdb-devel-static.x86_64 2.
    [Show full text]
  • Spack: a Package Manager for HPC
    Spack: A Package Manager for HPC Todd Gamblin NCSA Blue Waters Webinar Advanced Technology Office, Livermore Computing October 30, 2019 Lawrence Livermore National Laboratory LLNL-PRES-806064 This work was performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under contract DE-AC52-07NA27344. github.com/spack/spack Lawrence Livermore National Security, LLC Software complexity in HPC is growing Ascent: Lightweight, in-situ, many-core visualization and analysis 2 LLNL-PRES-806064 github.com/spack/spack Software complexity in HPC is growing Ascent: Lightweight, in-situ, many-core visualization and analysis MFEM: Arbitrary high-order finite elements 3 LLNL-PRES-806064 github.com/spack/spack Software complexity in HPC is growing Ascent: Lightweight, in-situ, many-core visualization and analysis MFEM: Arbitrary high-order finite elements LBANN: Artificial Neural Nets for HPC 4 LLNL-PRES-806064 github.com/spack/spack The complexity of the exascale ecosystem threatens productivity. 5+ target architectures/platforms 15+ applications x 80+ software packages x Xeon Power KNL NVIDIA ARM Laptops? Up to 7 compilers 10+ Programming Models x Intel GCC Clang XL x OpenMPI MPICH MVAPICH OpenMP CUDA x 2-3 versions of each package + PGI Cray NAG OpenACC Dharma Legion RAJA Kokkos external dependencies = up to 1,260,000 combinations! ▪ Every application has its own stack of dependencies. ▪ Developers, users, and facilities dedicate (many) FTEs to building & porting. ▪ Often trade reuse and usability for performance. We must make it easier to rely on others’ software! 5 LLNL-PRES-806064 github.com/spack/spack How to install software on a Mac laptop, circa 2013 6 LLNL-PRES-806064 github.com/spack/spack How to install software on a supercomputer 1.
    [Show full text]