# Installing Ignition using apt-get

**URL:** <https://forum.inductiveautomation.com/t/installing-ignition-using-apt-get/4390>\
**Category:** Archived Topics\
**Created:** [May 1, 2012, 4:08pm UTC](https://forum.inductiveautomation.com/t/installing-ignition-using-apt-get/4390 "2012-05-01T16:08:06Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![Greg.Buehler](https://avatars.discourse-cdn.com/v4/letter/g/ecc23a/32.png) [@Greg.Buehler](https://forum.inductiveautomation.com/u/Greg.Buehler)\
**Post date:** [May 1, 2012, 4:08pm UTC](https://forum.inductiveautomation.com/t/installing-ignition-using-apt-get/4390/1 "2012-05-01T16:08:06Z")

</div>

Installing using apt-get seems to be much more user friendly in most respects, so here are some instructions.

1. Install Linux. (For Ubuntu I also install OpenSSH and the LAMP stack at install time)

2. Download and add the signing key for the repository.

```auto
wget http://archive.inductiveautomation.com/ia.public.key
sudo apt-key add ia.public.key
```

1. Add Inductive’s repositories to the sources list

```auto
sudo echo "# Inductive Automation - Ignition" >> /etc/apt/sources.list
sudo echo "deb http://archive.inductiveautomation.com/apt ignition non-free" >> /etc/apt/sources.list
sudo echo "deb http://archive.inductiveautomation.com/apt ignition-beta non-free" >> /etc/apt/sources.list
```

1. Refresh the apt cache and perform the install

```auto
sudo apt-get update
sudo apt-get install ignition
```

Optionally, you could install the beta/release candidate versions using:

```auto
sudo apt-get install ignition-beta
```

1. You should be done.

---

<div class="post-metadata">

**Author:** ![mgross](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mgross/32/3311_2.png) [@mgross](https://forum.inductiveautomation.com/u/mgross)\
**Post date:** [May 1, 2012, 7:31pm UTC](https://forum.inductiveautomation.com/t/installing-ignition-using-apt-get/4390/2 "2012-05-01T19:31:38Z")

</div>

How do you feel about the reliability of installing Ignition via apt-get? Some people have had problems here and there, and we are debating about whether or not to keep the repositories for 7.5 (and telling people to use the Linux downloadable installer).

---

<div class="post-metadata">

**Author:** ![Greg.Buehler](https://avatars.discourse-cdn.com/v4/letter/g/ecc23a/32.png) [@Greg.Buehler](https://forum.inductiveautomation.com/u/Greg.Buehler)\
**Post date:** [May 1, 2012, 10:41pm UTC](https://forum.inductiveautomation.com/t/installing-ignition-using-apt-get/4390/3 "2012-05-01T22:41:49Z")

</div>

I’d much prefer the apt repositories than the current install situation for the Linux version. It takes care of grabbing the right files and libraries you need including Java, and handles configuration as a service very nicely. It really simplifies or eliminates a lot of the headaches involved. I think more kinks would be worked if more people actually used apt instead of the scripted installer.

The biggest hurdle, in my opinion, is getting people familiarized with the Linux ecosystem itself. People aren’t sure if they should use OpenJDK or sun-jre-6, and it seems that Ubuntu and Debian’s repositories are in a state of flux in that regards right now too. Also, creating the symbolic links is a black box many people have never encountered before.

My final word is either keep the apt repository, or offer ignition packaged as deb and rpm packages. I’m not totally familiar with the requirements of hosting such a repository, but I’d concentrate on the LTS versions of Ubuntu and Debian Squeeze at the very least.

---

<div class="post-metadata">

**Author:** ![mgross](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mgross/32/3311_2.png) [@mgross](https://forum.inductiveautomation.com/u/mgross)\
**Post date:** [May 2, 2012, 10:04pm UTC](https://forum.inductiveautomation.com/t/installing-ignition-using-apt-get/4390/4 "2012-05-02T22:04:42Z")

</div>

Cool, thanks for the input. If anything, we would keep the repositories in place so that people wouldn’t have to switch to downloading deb files to accomplish the same thing as what they are doing now.

---

<div class="post-metadata">

**Author:** ![systemparadox](https://avatars.discourse-cdn.com/v4/letter/s/b5e925/32.png) [@systemparadox](https://forum.inductiveautomation.com/u/systemparadox)\
**Post date:** [August 16, 2012, 11:11am UTC](https://forum.inductiveautomation.com/t/installing-ignition-using-apt-get/4390/5 "2012-08-16T11:11:30Z")

</div>

The repositories get my vote.

Improved script for my own use… (can be copy/pasted directly, doesn’t pollute the working directory with ia.public.key, won’t add multiple ignition entries to sources.list). Run ‘sudo su’ to get a root shell first.

```auto
file=/etc/apt/sources.list
wget http://archive.inductiveautomation.com/ia.public.key -O /tmp/ia.public.key
apt-key add /tmp/ia.public.key
grep -q ignition $file || {
    echo >> $file
    echo "# Inductive Automation - Ignition" >> $file
    echo "deb http://archive.inductiveautomation.com/apt ignition non-free" >> $file
    echo "deb http://archive.inductiveautomation.com/apt ignition-beta non-free" >> $file
}
apt-get update
apt-get install ignition
```

---

<div class="post-metadata">

**Author:** ![pphillips](https://avatars.discourse-cdn.com/v4/letter/p/da6949/32.png) [@pphillips](https://forum.inductiveautomation.com/u/pphillips)\
**Post date:** [August 16, 2012, 2:12pm UTC](https://forum.inductiveautomation.com/t/installing-ignition-using-apt-get/4390/6 "2012-08-16T14:12:44Z")

</div>

Keeping the repositories gets my vote also.

I’ve been using Synaptic Package Manager and/or Update Manager on Ubuntu 11.10 to do Ignition updates with good success. Makes updating very simple.

---

<div class="post-metadata">

**Author:** ![Kyle\_Chase](https://avatars.discourse-cdn.com/v4/letter/k/9de0a6/32.png) [@Kyle\_Chase](https://forum.inductiveautomation.com/u/Kyle_Chase)\
**Post date:** [August 16, 2012, 4:44pm UTC](https://forum.inductiveautomation.com/t/installing-ignition-using-apt-get/4390/7 "2012-08-16T16:44:49Z")

</div>

I vote for the run file. Lets you set the service user, so its more secure. Also, an apt-get upgrade wont touch the ignition install, which i prefer after the 7.3.0 deb package issue.

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [July 6, 2016, 10:49pm UTC](https://forum.inductiveautomation.com/t/installing-ignition-using-apt-get/4390/8 "2016-07-06T22:49:56Z")

</div>

Sorry for reviving this thread.

Will v7.8.3 make it to the repository, or is the repository as dead as this thread was until I came along? 🙂

[attachment=0]thread-necromancy.png[/attachment]

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [July 7, 2016, 1:55pm UTC](https://forum.inductiveautomation.com/t/installing-ignition-using-apt-get/4390/9 "2016-07-07T13:55:04Z")

</div>

I think we decided to stop distributing via apt

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [July 7, 2016, 4:09pm UTC](https://forum.inductiveautomation.com/t/installing-ignition-using-apt-get/4390/10 "2016-07-07T16:09:50Z")

</div>

Well… rats.

---

<div class="post-metadata">

**Author:** ![abishur](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/abishur/32/9096_2.png) [@abishur](https://forum.inductiveautomation.com/u/abishur)\
**Post date:** [July 7, 2016, 6:58pm UTC](https://forum.inductiveautomation.com/t/installing-ignition-using-apt-get/4390/11 "2016-07-07T18:58:38Z")

</div>

Fortunately, installing ignition on Linux is [ridiculously easy](https://inductiveuniversity.com/video/installing-ignition-on-linux).

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [July 7, 2016, 7:11pm UTC](https://forum.inductiveautomation.com/t/installing-ignition-using-apt-get/4390/12 "2016-07-07T19:11:32Z")

</div>

Yes, but the apt install put things in a different location than the script does. This adds complexity when trying to upgrade through the .run script without re-entering information of making a bunch of symlinks.

Since I have everything on VM’s it’s not a big deal, and I can make another one. It’s just that I’m lazy, and didn’t want to do it if I didn’t have to.

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [July 7, 2016, 7:12pm UTC](https://forum.inductiveautomation.com/t/installing-ignition-using-apt-get/4390/13 "2016-07-07T19:12:42Z")

</div>

Also want to point out I’m using Ubuntu Server and not Desktop. The video didn’t really apply, then. 😉

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [July 8, 2016, 9:17am UTC](https://forum.inductiveautomation.com/t/installing-ignition-using-apt-get/4390/14 "2016-07-08T09:17:22Z")

</div>

I’ve been installing Ubuntu server via kickstart with a custom follow-up script. I’ve stripped some items for posting, but here’s the kickstart.cfg:[code]lang en\_US  
langsupport en\_US  
keyboard us  
mouse  
timezone UTC  
rootpw --disabled  
#Initial user

# generate crypted password with python:

# import crypt

# print(crypt.crypt(“My Password”, “$6$My Salt”))

user ignition --fullname “Ignition SCADA Server” --iscrypted --password xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  
reboot  
text  
install  
cdrom  
#System bootloader configuration  
bootloader --location=mbr locale=en\_US console-setup/ask\_detect=false keyboard-configuration/layoutcode=us  
#Clear the Master Boot Record  
zerombr yes  
#Partition clearing information  
clearpart --all --initlabel  
#Partitioning  
part / --fstype ext4 --size 1 --grow --asprimary --label=Root  
#System authorization infomation  
auth --useshadow --enablemd5  
#Network configuration  
network --bootproto=static --device=eth0 --ip=192.168.0.xxx/24 --gateway=192.168.0.1 --nameserver=192.168.0.1 --hostname=ign778  
#Firewall configuration  
firewall --disabled  
#Do not configure the X Window System  
skipx

# Other debian installer customizations (owner is “d-i” by default)

preseed partman-auto/choose\_recipe select atomic  
preseed partman-lvm/device\_remove\_lvm boolean true  
preseed partman-lvm/confirm boolean true  
preseed partman-lvm/confirm\_nooverwrite boolean true  
preseed partman-md/device\_remove\_md boolean true  
preseed partman-md/confirm boolean true  
preseed partman-md/confirm\_nooverwrite boolean true  
preseed partman-partitioning/confirm\_write\_new\_label boolean true  
preseed partman/confirm\_write\_new\_label boolean true  
preseed partman/choose\_partition select “Finish partitioning and write changes to disk”  
preseed partman/confirm boolean true  
preseed partman/confirm\_nooverwrite boolean true  
preseed pkgsel/update-policy select unattended-upgrades  
preseed --owner partman-basicfilesystems partman-basicfilesystems/no\_swap boolean false  
#custom packages for installation  
%packages  
@ ubuntu-server  
openssh-server  
unzip  
xfce4  
xfce4-session  
xvfb  
zip  
xmlstarlet  
%post  
mkdir -p /root/.ssh  
umask 022  
echo “ssh-rsa AAAAB3Nzaxxxxxxxxxxxxxxxxxxxxxxxxxx user@host” \>/root/.ssh/authorized\_keys  
mkdir -p /home/ignition/.ssh  
echo “ssh-rsa AAAAB3Nzaxxxxxxxxxxxxxxxxxxxxxxxxxx user@host” \>/home/ignition/.ssh/authorized\_keys  
chown -R ignition:ignition /home/ignition  
add-apt-repository ppa:webupd8team/java  
apt-get update  
apt-get --yes --ignore-missing --with-new-pkgs upgrade  
debconf-set-selections \<\<debconf-EOF  
oracle-java7-installer shared/accepted-oracle-license-v1-1 select true  
oracle-java8-installer shared/accepted-oracle-license-v1-1 select true  
debconf-EOF  
apt-get --yes install oracle-java7-installer oracle-java8-installer  
update-java-alternatives -s java-8-oracle  
cd /home/ignition  
wget --no-verbose ‘[http://ks.automation-pros.com/ia/ia-install.sh](http://ks.automation-pros.com/ia/ia-install.sh)’  
wget --no-verbose ‘[http://ks.automation-pros.com/ia/ignition-build7.7.8-linux-x64.zip](http://ks.automation-pros.com/ia/ignition-build7.7.8-linux-x64.zip)’  
md5sum -c \<\<md5sum-EOF  
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ia-install.sh  
379ed4faf188be274bbcea4260ded5f3 ignition-build7.7.8-linux-x64.zip  
md5sum-EOF  
if test $? -eq 0 ; then  
chmod +x ia-install.sh  
./ia-install.sh  
else  
echo "Install aborted - bad download(s) " \>badinstall.txt  
date \>\>badinstall.txt  
fi[/code]The separate shell script ia-install.sh does the rest:[code]#! /bin/bash

# 

# Kickstart post-process to install downloaded ignition zip file and

# modules.

tgt="/usr/share/ignition"

cd /home/ignition

rm -rf /etc/ignition /var/log/ignition  
mkdir -p “${tgt}” /etc/ignition /var/log/ignition  
unzip ?gnition\*.zip -d “${tgt}”  
for x in _.modl ; do if test -f “$x” ; then mv “$x” “${tgt}/user-lib/modules” ; fi ; done  
cd “${tgt}/data”  
mv gateway._ log4j.\* /etc/ignition  
awk -f - ignition.conf \>/etc/ignition/ignition.conf \<\<-conf-EOF  
BEGIN { copyflag=1; printflag=1 }  
/^#?wrapper.java.additional/ {  
copyflag=0;  
if (printflag\>0) {  
print “wrapper.java.additional.1=-XX:+UseG1GC”;  
print “wrapper.java.additional.2=-XX:MaxGCPauseMillis=100”;  
print “wrapper.java.additional.3=-Xloggc:/var/log/ignition/javagc-%WRAPPER\_TIME\_YYYYMMDDHHIISS%.log”;  
print “wrapper.java.additional.4=-Ddata.dir=${tgt}/data”;  
print “wrapper.java.additional.5=-Dorg.apache.catalina.loader.WebappClassLoader.ENABLE\_CLEAR\_REFERENCES=false”;  
print “wrapper.java.additional.6=-XX:+PrintGCDetails”;  
print “wrapper.java.additional.7=-XX:+PrintGCTimeStamps”;  
print “wrapper.java.additional.8=-XX:+PrintGCDateStamps”;  
printflag=0;  
} }  
! /^#?wrapper.java.additional/ { copyflag=1 }  
/^wrapper.logfile=/ { copyflag=0; print “wrapper.logfile=/var/log/ignition/wrapper.log” }  
copyflag\>0 { print }  
conf-EOF  
mv ignition.conf /etc/ignition/ignition.conf.orig  
for x in /etc/ignition/\* ; do ln -s “$x” . ; done  
cd “$tgt”  
chmod +x _.sh  
xml="$(readlink -f "$(find -path '_/main/\*/web.xml’)")"  
if test -f “${xml}” ; then  
xmlstarlet ed -L   
-u “/_:web-app/_:context-param[_:param-name=‘logs.dir’]/_:param-value”   
-v “/var/log/ignition/”   
-u “/_:web-app/_:context-param[_:param-name=‘etc.dir’]/_:param-value”   
-v “/etc/ignition/”   
“$xml”  
fi  
chown -R ignition:ignition “$tgt” /etc/ignition /var/log/ignition  
cd /etc/init.d  
rm -f ignition  
ln -s “${tgt}/ignition.sh” ignition  
update-rc.d ignition defaults[/code]You’ll have to fix up various parts for your situation, but I’ve been pleased. I modified the install ISO’s boot menu to have a default entry that launches the kickstart. It’s basically hands-free once started. Total deployment time from VM allocation in virt-manager to running Ignition is about ten minutes.

---

<div class="post-metadata">

**Author:** ![abishur](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/abishur/32/9096_2.png) [@abishur](https://forum.inductiveautomation.com/u/abishur)\
**Post date:** [July 8, 2016, 1:22pm UTC](https://forum.inductiveautomation.com/t/installing-ignition-using-apt-get/4390/15 "2016-07-08T13:22:42Z")

</div>

> [@JordanCClark](#):
>
> Yes, but the apt install put things in a different location than the script does. This adds complexity when trying to upgrade through the .run script without re-entering information of making a bunch of symlinks.

Ah, yeah that makes sense. I was only thinking of a fresh install 🙂
