About this Install Guide

This guide shows you how to install and use the tool with the most common configuration. For advanced options and complete reference information, see the official documentation. Some install guides also include optional next steps to help you explore related workflows or integrations.

Porting Advisor for Graviton is a command line tool for assessing the portability of software to AWS Graviton processors.

Porting Advisor analyzes source code for known patterns and dependencies, and generates a report with any incompatibilities.

Supported operating systems include Linux, Windows, and macOS.

Porting Advisor analyzes C/C++, Python, Java, Fortran, and Go applications.

In this guide, you’ll learn how to install and use Porting Advisor on Ubuntu or Amazon Linux 2023 .

Before you begin

Confirm you are using an Arm machine by running:

    

        
        
uname -m

    

The output should be:

    

        
        aarch64

        
    

If you see a different result, you are not using an Arm computer running 64-bit Linux.

Porting Advisor has the following prerequisites:

  • Python 3.10 or above
  • Python pip
  • Python venv

If you want to analyze Java applications you will also need:

  • Java 17 or above
  • Maven

Install the prerequisites using the package manager:

    

        
        

sudo apt update
sudo apt install python3-pip python-is-python3 python3-venv -y
  

    
    

        
        

sudo dnf install git -y
sudo dnf install python3.11 -y
  

    

If you want to analyze Java applications:

    

        
        

wget -O- https://apt.corretto.aws/corretto.key | sudo apt-key add - 
sudo add-apt-repository 'deb https://apt.corretto.aws stable main' -y
sudo apt-get update; sudo apt-get install -y java-17-amazon-corretto-jdk
sudo apt install maven -y
  

    
    

        
        

sudo dnf install java-17-amazon-corretto -y
sudo dnf install maven -y
  

    

Install Porting Advisor

Download Porting Advisor from GitHub:

    

        
        
git clone https://github.com/aws/porting-advisor-for-graviton.git
cd porting-advisor-for-graviton

    

You can run Porting Advisor as a Python script or as an executable. If you want to run the executable, you should still complete the steps for running as a script to confirm your environment is set up correctly.

Run Porting Advisor as a Python script

To set up to run as a python script, create a Python virtual environment:

    

        
        

python3 -m venv .venv
  

    
    

        
        

python3.11 -m venv .venv
  

    

Enter the Python virtual environment and install the required packages:

    

        
        
source .venv/bin/activate
pip install -r requirements.txt
pip install pyinstaller certifi

    

Confirm Porting Advisor runs as a script:

    

        
        
python3 src/porting-advisor.py --help

    

The output should be a long help message starting with the usage information and explaining the options for Porting Advisor.

    

        
        usage: porting-advisor [-h] [--issue-types ISSUE_TYPES] [--no-filter] [--no-progress] [--output OUTPUT]
                       [--output-format OUTPUT_FORMAT] [--quiet] [--target-os TARGET_OS] [--version]
                       [--logging-level {error,warning,info,debug}] [--log-file LOG_FILE] [--log-to-console]
                       DIRECTORY

        
    

Run Porting Advisor as an executable

Running Porting Advisor as an executable requires a build step.

The executable is a good option if you want to run Porting Advisor on multiple machines.

The executable can be copied to other machines and run without installing Python packages.

Build the executable:

    

        
        
./build.sh

    

A success message will be printed when the build completes:

    

        
        *** Success: Executable saved at dist/porting-advisor-linux-aarch64 ***

        
    

The executable is in the dist directory with the filename printed in the output.

Confirm Porting Advisor runs as an executable:

    

        
        
./dist/porting-advisor-linux-aarch64 --help

    

The output will be the same help message printed by the Python invocation.

You can copy the executable from the dist folder to any another machine (with the same operating system and architecture) and use Porting Advisor immediately. There is no need to install anything related to Python.

Test Porting Advisor with a sample project

The Porting Advisor includes some small examples in the sample-projects directory of the GitHub repository.

Run Porting Advisor on a Go sample with the executable:

    

        
        
./dist/porting-advisor-linux-aarch64 sample-projects/java-samples/

    

The recommendations for this application will be printed along with links on where to get more details.

    

        
        Porting Advisor for Graviton v1.1.1
Report date: 2024-06-25 08:47:06

2 files scanned.
detected java code. we recommend using Corretto. see https://aws.amazon.com/corretto/ for more details.
detected java code. min version 8 is required. version 11 or above is recommended. see https://github.com/aws/aws-graviton-getting-started/blob/main/java.md for more details.

Report generated successfully. Hint: you can use --output FILENAME.html to generate an HTML report.

        
    

Try out the other sample projects.

You are now ready to use Porting Advisor for Graviton on your own projects.


Give Feedback

How would you rate this tool quick-install guide?