blob: b65e298cb121fec2da9c1e1cd99d3cc517e49776 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>PLC4X &#x2013; </title>
<script src="../../js/jquery.slim.min.js" type="text/javascript"></script>
<!--script src="../../js/popper.min.js" type="javascript"></script-->
<script src="../../js/bootstrap.bundle.min.js" type="text/javascript"></script>
<!-- The tooling for adding images and links to Apache events -->
<script src="https://www.apachecon.com/event-images/snippet.js" type="text/javascript"></script>
<!-- FontAwesome -->
<link rel="stylesheet" href="../../css/all.min.css" type="text/css"/>
<!-- Bootstrap -->
<link rel="stylesheet" href="../../css/bootstrap.min.css" type="text/css"/>
<!-- Some Maven Site defaults -->
<link rel="stylesheet" href="../../css/maven-base.css" type="text/css"/>
<link rel="stylesheet" href="../../css/maven-theme.css" type="text/css"/>
<!-- The PLC4X version of a bootstrap theme -->
<link rel="stylesheet" href="../../css/themes/plc4x.css" type="text/css" id="pagestyle"/>
<!-- A custom style for printing content -->
<link rel="stylesheet" href="../../css/print.css" type="text/css" media="print"/>
<meta http-equiv="Content-Language" content="en"/>
</head>
<body class="composite">
<nav class="navbar navbar-light navbar-expand-md bg-faded justify-content-center border-bottom">
<!--a href="/" class="navbar-brand d-flex w-50 mr-auto">Navbar 3</a-->
<a href="https://plc4x.apache.org/" id="bannerLeft"><img src="../../images/apache_plc4x_logo_small.png" alt="Apache PLC4X"/></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsingNavbar3">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse w-100" id="collapsingNavbar3">
<ul class="navbar-nav w-100 justify-content-center">
<li class="nav-item">
<a class="nav-link" href="../../index.html">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="../../users/index.html">Users</a>
</li>
<li class="nav-item active">
<a class="nav-link" href="../../developers/index.html">Developers</a>
</li>
<li class="nav-item">
<a class="nav-link" href="../../apache/index.html">Apache</a>
</li>
</ul>
<ul class="nav navbar-nav ml-auto justify-content-end">
<li class="nav-item row valign-middle">
<a class="acevent" data-format="wide" data-mode="light" data-event="random" style="width:240px;height:60px;"></a>
</li>
</ul>
</div>
</nav>
<div class="container-fluid">
<div class="row h-100">
<nav class="col-sm-push col-md-2 pt-3 sidebar">
<div class="sidebar-sticky">
<ul class="nav flex-column">
<li class="nav-item">
<a href="../../developers/infrastructure/issues.html" class="nav-link">Bug & Issue Tracker</a>
</li>
<li class="nav-item">
<a href="../../developers/index.html" class="nav-link">Section Home</a>
</li>
<li class="nav-item">
<a href="../../developers/preparing/index.html" class="nav-link">Preparing your Computer</a>
<ul class="flex-column pl-4 nav">
<li class="nav-item">
<strong class="nav-link">Linux</strong>
</li>
<li class="nav-item">
<a href="../../developers/preparing/macos.html" class="nav-link">Mac OS</a>
</li>
<li class="nav-item">
<a href="../../developers/preparing/windows.html" class="nav-link">Windows</a>
</li>
</ul>
</li>
<li class="nav-item">
<a href="../../developers/building.html" class="nav-link">Building</a>
</li>
<li class="nav-item">
<a href="../../developers/contributing.html" class="nav-link">Contributing</a>
</li>
<li class="nav-item">
<a href="../../developers/tutorials/index.html" class="nav-link">Tutorials</a>
<ul class="flex-column pl-4 nav">
<li class="nav-item">
<a href="../../developers/tutorials/writing-driver.html" class="nav-link">Writing Drivers</a>
</li>
<li class="nav-item">
<a href="../../developers/tutorials/testing-serializers-and-parsers.html" class="nav-link">Testing Drivers</a>
</li>
</ul>
</li>
<li class="nav-item">
<a href="../../developers/code-gen/index.html" class="nav-link">Code Generation</a>
<ul class="flex-column pl-4 nav">
<li class="nav-item">
<a href="../../developers/code-gen/protocol/mspec.html" class="nav-link">Protocol: MSpec Format</a>
</li>
<li class="nav-item">
<a href="../../developers/code-gen/language/freemarker.html" class="nav-link">Language: Apache Freemarker</a>
</li>
<li class="nav-item">
<a href="../../developers/code-gen/protocol/df1.html" class="nav-link">Example: DF1 MSpec</a>
</li>
</ul>
</li>
<li class="nav-item">
<a href="../../developers/infrastructure/index.html" class="nav-link">Infrastructure</a>
<ul class="flex-column pl-4 nav">
<li class="nav-item">
<a href="../../developers/infrastructure/ci.html" class="nav-link">Continuous Integration</a>
</li>
<li class="nav-item">
<a href="../../developers/infrastructure/issues.html" class="nav-link">Bug & Issue Tracker</a>
</li>
<li class="nav-item">
<a href="../../developers/infrastructure/sonar.html" class="nav-link">Code Analysis</a>
</li>
<li class="nav-item">
<a href="../../developers/infrastructure/wiki.html" class="nav-link">Wiki</a>
</li>
<li class="nav-item">
<a href="../../developers/infrastructure/vm.html" class="nav-link">Build VM</a>
</li>
<li class="nav-item">
<a href="../../developers/infrastructure/website.html" class="nav-link">Website</a>
</li>
<li class="nav-item">
<a href="../../developers/infrastructure/vpn.html" class="nav-link">IoT VPN</a>
</li>
</ul>
</li>
<li class="nav-item">
<a href="../../developers/release/index.html" class="nav-link">Releasing</a>
<ul class="flex-column pl-4 nav">
<li class="nav-item">
<a href="../../developers/release/release.html" class="nav-link">Releasing</a>
</li>
<li class="nav-item">
<a href="../../developers/release/validation.html" class="nav-link">Validating</a>
</li>
<li class="nav-item">
<a href="../../developers/release/build-tools.html" class="nav-link">Releasing Build-Tools</a>
</li>
</ul>
</li>
<li class="nav-item">
<a href="../../developers/tools.html" class="nav-link">Tools</a>
</li>
<li class="nav-item">
<a href="../../developers/team.html" class="nav-link">Team</a>
</li>
<li class="nav-item">
<a href="../../developers/decisions.html" class="nav-link">Decision Making</a>
</li>
<li class="nav-item">
<a href="../../developers/maturity.html" class="nav-link">Maturity</a>
</li>
</ul>
</div>
</nav>
<main role="main" class="ml-sm-auto px-4 col-sm-pull col-md-9 col-lg-10 h-100">
<div class="sect1">
<h2 id="linux">Linux</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="git">Git</h3>
<div class="paragraph">
<p>Checking:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>git --version</pre>
</div>
</div>
<div class="paragraph">
<p>If you get any successful output, you probably don&#8217;t need to do anything.</p>
</div>
<div class="paragraph">
<p>Apt-based systems:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>sudo apt install git</pre>
</div>
</div>
<div class="paragraph">
<p>Yum based systems:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>sudo yum install git</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="libpcap">LibPCAP</h3>
<div class="paragraph">
<p>Apt-based systems:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>sudo apt-get install libpcap-dev</pre>
</div>
</div>
<div class="paragraph">
<p>Yum based systems:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>sudo yum install libpcap-devel</pre>
</div>
</div>
<div class="paragraph">
<p>Using libpcap usually requires root privileges, however the java process can be granted permission to do so by executing the following command.</p>
</div>
<div class="literalblock">
<div class="content">
<pre>setcap cap_net_raw,cap_net_admin=eip /path/to/java</pre>
</div>
</div>
<div class="paragraph">
<p>Some times I had to set the uid to execute the java executable with the permissions of the owner (root) &#8230;&#8203; however this is quite sub-optimal solution.</p>
</div>
<div class="literalblock">
<div class="content">
<pre>chmod 4755 /path/to/java</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="gcc">gcc</h3>
<div class="paragraph">
<p>Checking:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>gcc --version</pre>
</div>
</div>
<div class="paragraph">
<p>If you get any successful output, you probably don&#8217;t need to do anything.</p>
</div>
<div class="paragraph">
<p>Apt-based systems:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>sudo apt-get install gcc</pre>
</div>
</div>
<div class="paragraph">
<p>Yum based systems:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>sudo yum install gcc</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="g">g++</h3>
<div class="paragraph">
<p>Checking:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>g++ --version</pre>
</div>
</div>
<div class="paragraph">
<p>If you get any successful output, you probably don&#8217;t need to do anything.</p>
</div>
<div class="paragraph">
<p>Apt-based systems:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>sudo apt-get install g++</pre>
</div>
</div>
<div class="paragraph">
<p>Yum based systems:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>sudo yum install g++</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="dotnet">dotnet</h3>
<div class="paragraph">
<p>Checking:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>dotnet --version</pre>
</div>
</div>
<div class="paragraph">
<p>If you get any successful output, you probably don&#8217;t need to do anything.</p>
</div>
<div class="paragraph">
<p>Microsoft has documented what is needed to install <code>.Net SDK</code> <a href="https://dotnet.microsoft.com/en-us/download">here</a></p>
</div>
<div class="paragraph">
<p>For Ubuntu this would be:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>wget http://ftp.us.debian.org/debian/pool/main/i/icu/libicu57_57.1-6+deb9u4_amd64.deb
sudo dpkg -i libicu57_57.1-6+deb9u4_amd64.deb
wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-2.2</pre>
</div>
</div>
<div class="paragraph">
<p>For other distributions, please select the distribution in the drop-down menu and follow the instructions there.</p>
</div>
</div>
<div class="sect2">
<h3 id="python">python</h3>
<div class="paragraph">
<p>Checking:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>python --version</pre>
</div>
</div>
<div class="paragraph">
<p>If you get a version of 2.7 or higher reported, you probably don&#8217;t need to do anything.</p>
</div>
<div class="paragraph">
<p>Apt-based systems:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>sudo apt-get install python-dev python-is-python3</pre>
</div>
</div>
<div class="paragraph">
<p>Yum based systems:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>yum install gcc
cd /usr/src
wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
tar xzf Python-2.7.10.tgz
cd Python-2.7.10
./configure
make altinstall</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="python_setuptools">Python setuptools</h3>
<div class="paragraph">
<p>Checking:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>python -c "import setuptools"</pre>
</div>
</div>
<div class="paragraph">
<p>If this just exists and doesn&#8217;t report an error, you&#8217;re ok. If it complains about "No module named setuptools", then you need to install it.</p>
</div>
<div class="paragraph">
<p>Apt-based systems:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>sudo apt-get install python-setuptools</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="bison">bison</h3>
<div class="paragraph">
<p>Checking:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>bison --version</pre>
</div>
</div>
<div class="paragraph">
<p>If you get a version above 2.3 output, you don&#8217;t need to do anything.</p>
</div>
<div class="paragraph">
<p>Apt-based systems:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>sudo apt-get install bison</pre>
</div>
</div>
<div class="paragraph">
<p>Yum based systems:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>sudo yum install bison-devel</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="flex">flex</h3>
<div class="paragraph">
<p>Checking:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>flex --version</pre>
</div>
</div>
<div class="paragraph">
<p>If you get any successful output, you probably don&#8217;t need to do anything.</p>
</div>
<div class="paragraph">
<p>Apt-based systems:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>sudo apt-get install flex</pre>
</div>
</div>
<div class="paragraph">
<p>Yum based systems:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>sudo yum install flex</pre>
</div>
</div>
</div>
</div>
</div>
</main>
<footer class="pt-4 my-md-5 pt-md-5 w-100 border-top">
<div class="row justify-content-md-center" style="font-size: 13px">
<div class="col col-6 text-center">
Copyright &#169; 2017&#x2013;2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.<br/>
Apache PLC4X, PLC4X, Apache, the Apache feather logo, and the Apache PLC4X project logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
<br/><div style="text-align:center;">Home screen image taken from <a
href="https://flic.kr/p/chEftd">Flickr</a>, "Tesla Robot Dance" by Steve Jurvetson, licensed
under <a href="https://creativecommons.org/licenses/by/2.0/">CC BY 2.0 Generic</a>, image cropped
and blur effect added.</div>
</div>
</div>
</footer>
</div>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="../../js/jquery.slim.min.js"></script>
<script src="../../js/popper.min.js"></script>
<script src="../../js/bootstrap.min.js"></script>
<script type="text/javascript">
$('.carousel .carousel-item').each(function(){
var next = $(this).next();
if (!next.length) {
next = $(this).siblings(':first');
}
next.children(':first-child').clone().appendTo($(this));
for (let i = 0; i < 3; i++) {
next=next.next();
if (!next.length) {
next = $(this).siblings(':first');
}
next.children(':first-child').clone().appendTo($(this));
}
});
</script>
</body>
</html>