Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
231 Views

Notes on Installing Centos 7 on NUC8i3BEH

I don't have any issues, but wanted to share the steps I followed to install Linux/Centos 7 on my NUC8i3BEH - an OS not listed as officially being supported on this system:

1. I updated the BIOS using the file I found on the Intel site
2. Download Centos 7 to a USB memory stick
3. Boot the NUC with the option to install from the USB stick
4. Choose the option "Install Centos 7 Linux"
5. Choose English - English (United States), then click on the Continue button.
6. I chose New York (closest East Coast city to me); then choose either 12- or 24-hour clock preference.
7. Keyboard layout is English (US)
8. For Base Environment, I chose "Server With GUI":
   (In the right pane, I selected most options with the exception of the virtualization options at the bottom and some of the more advanced features.  I also did not choose print, file, or email server. I DID select the GUI.)
9. For Installation Destination, I chose the SSD inside the NUC  and chose Automatic Partitioning.
10. IMPORTANT: I connected an Ethernet cable directly to my router.
You CAN do everything using the built-in wireless but I discovered that the system didn't then recognize the Ethernet port. Choose IPv4 Settings and Automatic (DHCP).
11. Hit Save and the installation progresses.
12. At some point the installation process asks for a password for Root. Enter a password. You can also add another user and you can grant that user Administrator privileges.
13. Reboot and login. At a terminal prompt, update the system by typing "yum update".
(NOTE: If you have not logged in as an administrator, precede commands typed
in the terminal windows with "sudo".)
Accept the proposed changes by typing y. Once all packages have been updated, you have a full-blown, working Centos 7 Linux system at your disposal.

--> At this point, you now have a basic Centos 7 system set up on your NUC

---------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------
Optional Software Installations
---------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------

14. I needed to install Java JDK, so at a command prompt, type:
yum install java-11-openjdk-devel and then type:
alternatives --config java and choose desired java version
---------------------------------------------------------------------------------------

15. I also use Apache NetBeans and the easiest way to install is using "Snaps".
To install Snaps, type the following 4 commands:
yum install epel-release
yum install snapd
systemctl enable --now snapd.socket
ln -s /var/lib/snapd/snap /snap
-------> After the last command, log out and log back into the system
Then enter the following command:
snap install netbeans --classic
--> Apache Netbaens can be accessed from the GUI under Programming/Apache Netbeans
---------------------------------------------------------------------------------------

16. I find it useful to have LibreOffice installed. To install, do the following in a terminal window:
wget http://download.documentfoundation.org/libreoffice/stable/6.4.4/rpm/x86_64/LibreOffice_6.4.4_Linux_x...
tar -xvf LibreOffice_6.4.4*
cd LibreOffice_6.4.4*
yum localinstall RPMS/*.rpm
--> LibreOffice can be accessed from the GUI under Applications/Office
---------------------------------------------------------------------------------------

18. Install a firewall. Type the following commands in the terminal window:
yum install firewalld
systemctl start firewalld
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-port=4444/tcp
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-service=smtp
firewall-cmd --get-services
firewall-cmd --permanent --list-all
firewall-cmd --reload
systemctl enable firewalld
---------------------------------------------------------------------------------------

19. Install the Network Time Protocol (NTP) service. Type the following:
yum install ntp
systemctl start ntpd
systemctl enable ntpd
---------------------------------------------------------------------------------------

20. I need Apache web server. To install it, enter the following commands in the terminal window:
yum update httpd
yum install httpd
---------------------------------------------------------------------------------------

21. I need the Apache Tomcat servlet container. Type the following commands in the terminal window:
useradd -m -U -d /opt/tomcat -s /bin/false tomcat
wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.36/bin/apache-tomcat-9.0.36.tar.gz
(Note: if the above step fails, simply navigate to the website
https://www-eu.apache.org/dist/tomcat/tomcat-9/ and choose the appropriate version and
then the specific file.)
mv apache-tomcat-9.0.36 /opt/tomcat/
ln -s /opt/tomcat/apache-tomcat-9.0.36 /opt/tomcat/latest
chown -R tomcat: /opt/tomcat
sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'

22 Use vi, Nano, or your other favorite text editor and create the file
/etc/systemd/system/tomcat.service

23. Paste the following content into the file:
[Unit]
Description=Tomcat 9 servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/java-openjdk"
Environment="JRE_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"

Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

24. Save the file and close it. Then type:
systemctl daemon-reload
systemctl enable tomcat
systemctl start tomcat
systemctl status tomcat

25. Add Tomcat users by editing the file
/opt/tomcat/apache-tomcat-0.0.36/conf/tomcat-users.xml
Add the following lines at the end of the file:

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="nnnn" password="pppp" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"/>
</tomcat-users>

Note that the default file has several blocks commented out <!-- ... -->
Replace the nnnn and pppp strings above with the username and the password of the user and choose which roles you wish to grant.
You may specify multiple <user...> lines and different users may have different roles.

26. Permit access to the Tomcat web app by modifying the two files:
/opt/tomcat/webapps/manager/META-INF/context.xml -and-
/opt/tomcat/webapps/host-manager/META-INF/context.xml

In both files find the line that looks something like:

<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->

and comment out by adding the <!-- string at the front and --> at the end of the line.

---------------------------------------------------------------------------------------

27. Add the appropriate ports to the firewall by typing:
firewall-cmd --zone=public --permanent --add-port=8080/tcp
firewall-cmd --reload
systemctl restart tomcat
---------------------------------------------------------------------------------------

28. To enable Putty and SFTP access, make sure the SSHD service is installed:
yum –y install openssh-server openssh-clients
sudo systemctl start sshd
sudo systemctl enable sshd

I need to load web pages into the directory /var/www/html, so enable access:
chmod -R ugo+rwx /var/www/html

---------------------------------------------------------------------------------------

Summary:  even though Centos is not listed on the Intel site as a supported OS for this NUC, I did, indeed, get everything set up and working with relatively few problems - and I am by no means a Linux expert.  My goal was to replicate a cloud server I've been using to debug some issues related to client-server package I've been developing.  Now, on my table, I have a Dell Windows 10 laptop running client Javascript code in a browser talking through my local network to Centos running on my NUC.  I can't tell you how pleased I am with the results. I've got a wired keyboard and mouse and a 21" external monitor connected to the NUC and I can actually trace HTTP calls and servlet invocations back and forth between the laptop and the NUC.  

My guess is that you'll be able to install this version of Centos or Centos 8 or other Linux distros using instructions similar to these instructions.  My advice is to connect your system directly to a Ethernet connection for setup. Afterwards, you can use WIFI to connect to any network - exactly what I do at my work table.  Hope this guide is useful to other developers!

Labels (1)
0 Kudos
2 Replies
Highlighted
Super User Retired Employee
226 Views

Well that's.... clear as mud!

The average user isn't going to be able to do this. This is part of the reason why support for Linux isn't included for the NUC products. When you combine this with the issues of getting up-to-date drivers that support all aspects of a system's hardware - which can often take many months to dribble down to the production releases of the various distributions, support is a nightmare...

Thank you for providing it, regardless.

...S

 

0 Kudos
Highlighted
Beginner
223 Views

Hello,

Admittedly, I'm doing advanced work/debugging.  However, if someone does not want or need Apache, Tomcat, NetBeans (and I also use MySQL and some other components), then the number of steps is greatly reduced.  One can have a very nice, compact, low-power system running LibreOffice and a browser for not very much money.

Bottom line: update the BIOS beforehand.   And keep in mind that when I installed over wireless, I could not afterwards get the Ethernet port working.  So install while connected to the Internet directly through the Ethernet connector rather than through wireless.  I don't know why that is the case, but I have both wired and wireless connectivity now.

I have been VERY happy with this system - it's inexpensive, fast, small, quiet, and has the ports I need. It's been a great solution for me, but might not be so for others. You are correct - installing and configuring Linux is not nearly as simple as installing Windows and updates don't come nearly as quickly to Linux.  However, I hope the steps I outlined can be of some use to others!

 

0 Kudos