TechnitiumSoftware / DnsServer

Technitium DNS Server
https://technitium.com/dns/
GNU General Public License v3.0
4.47k stars 431 forks source link

Using install-ubuntu.sh on Ubuntu 18.04 ARM64 fails #125

Closed Austinb closed 4 years ago

Austinb commented 4 years ago

I am currently using Ubuntu 18.04 64-bit it on a Raspberry Pi 4 so I can get 64-bit support since Raspbian is still 32-bit only. I assume it happens on any Raspberry Pi version that Ubuntu supports since it is ARM.

Using the install-ubuntu.sh bash script as provided at https://blog.technitium.com/2017/11/running-dns-server-on-ubuntu-linux.html fails on Ubuntu 18.04 running on ARM64. The failure is due to the lack of package manager support for .NET Core and ASP.NET Core on ARM architectures. From the top of the page at https://docs.microsoft.com/en-us/dotnet/core/install/linux-package-manager-ubuntu-1804 it states "Package manager installs are only supported on the x64 architecture." Since the install-ubuntu.sh bash file relies on aptitude to install the .NET packages the it never completes and sits in the "Trying again.." loop until you kill the process. Quick solution is to download the install-ubuntu.sh file and edit it to remove the block that does the .NET installation via aptitude but you still have to install the required .NET libraries manually.

Is it possible to add a check for the arch of the device before trying to install the .NET packages? This allows you to continue on with the normal installation. You could add a prompt notifying the installer that .NET must be installed manually and you can let them continue or bail out until the required .NET libraries exists.

An enhancement would be to try to install/update the .NET packages manually if the device does not support the .NET package manager installs. This adds a more complexity to the bash script as now you have to check for existing versions, support specific platforms and on so this maybe out of the scope of what you want to support. There is also a bash install script from the .NET page that may provide a lot of the support needed to maintain a specific .NET version install on the device (i.e. ./dotnet-install.sh --channel 3.1 --runtime aspnetcore --install-dir /usr/share/dotnet).

ShreyasZare commented 4 years ago

Thanks for the feedback. The current install script install-ubuntu.sh only works on x64 architecture and wont work on Raspberry Pi.

The bash script provided by Microsoft looks promising to have a generic way to install .NET core on all supported platforms. Will look into it to try to make a single script installer that would work for all Linux distros.

Austinb commented 4 years ago

Sounds good. Also there is no notice on the install instructions that I saw that the installer only worked on x64 platforms which I why I made the issue. Wanted to provide some information to other users, like myself, that want to run 64-bit OSes on their Pi's especially with the Pi 4.

ShreyasZare commented 4 years ago

Sure, will update the blog post to indicate that.

ShreyasZare commented 4 years ago

Please try the new installer script below and see if that is working.

curl -sSL https://download.technitium.com/dns/install.sh | sudo bash

Do let me know here if it worked.