From 3ea9ccc1d92fab91e6a014b900f1c017daccc658 Mon Sep 17 00:00:00 2001 From: leecow Date: Thu, 25 Aug 2016 17:04:08 -0700 Subject: [PATCH 1/2] Add document with guidance for manually updating Microsoft.NETCore.App from NuGet packages. --- release-notes/1.0/manual-shared-update.md | 64 +++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 release-notes/1.0/manual-shared-update.md diff --git a/release-notes/1.0/manual-shared-update.md b/release-notes/1.0/manual-shared-update.md new file mode 100644 index 00000000..ac728d74 --- /dev/null +++ b/release-notes/1.0/manual-shared-update.md @@ -0,0 +1,64 @@ +# Manually updating the Shared Framework # + +The procedures detailed below can be used to update the .NET Core shared runtime and libraries, also known as Microsoft.NETCore.App in-place. This will enable portable applications to take advantage of updates to the shared files. The preferred way to update Microsoft.NETCore.App is to install the new version side-by-side but there may be times when an updated NETCore.App is not yet available while the required components have been released as NuGet packages. + +Again, this process should be done only in the event that required updates are available as NuGet packages and not as an updated .NET Core installer. + +1. Download the updated packages from [nuget.org](https://www.nuget.org) +2. Rename packages and extract files +3. Back up existing files to be updated +4. Copy new files to the target directory + +## Download NuGet packages containing the udpated files ## + +Download the updated CoreCLR and JIT NuGet package which correspond to your system. Links below will download the packages directly. + +CoreCLR + +- [debian.8.x64](https://www.nuget.org/api/v2/package/runtime.debian.8-x64.Microsoft.NETCore.Runtime.CoreCLR/1.0.4) +- [fedora.23.x64](https://www.nuget.org/api/v2/package/runtime.fedora.23-x64.Microsoft.NETCore.Runtime.CoreCLR/1.0.4) +- [rhel.7-x64](https://www.nuget.org/api/v2/package/runtime.rhel.7-x64.Microsoft.NETCore.Runtime.CoreCLR/1.0.4) +- [ubuntu.14.04-x64](https://www.nuget.org/api/v2/package/runtime.ubuntu.14.04-x64.Microsoft.NETCore.Runtime.CoreCLR/1.0.4) +- [ubuntu.16.04-x64](https://www.nuget.org/api/v2/package/runtime.ubuntu.16.04-x64.Microsoft.NETCore.Runtime.CoreCLR/1.0.4) + +JIT + +- [debian.8.x64](https://www.nuget.org/api/v2/package/runtime.debian.8-x64.Microsoft.NETCore.Jit/1.0.4) +- [fedora.23.x64](https://www.nuget.org/api/v2/package/runtime.fedora.23-x64.Microsoft.NETCore.Jit/1.0.4) +- [rhel.7-x64](https://www.nuget.org/api/v2/package/runtime.rhel.7-x64.Microsoft.NETCore.Jit/1.0.4) +- [ubuntu.14.04-x64](https://www.nuget.org/api/v2/package/runtime.ubuntu.14.04-x64.Microsoft.NETCore.Jit/1.0.4) +- [ubuntu.16.04-x64](https://www.nuget.org/api/v2/package/runtime.ubuntu.16.04-x64.Microsoft.NETCore.Jit/1.0.4) + +## Rename and Extract ## + +If your system doesn't recognize *nupkg files as archives, rename them to *.zip or *.tar.gz and extract the `/runtimes` directory to a temporary location. For CoreCLR there will be `/native` and `/lib/netstandard1.0` directories under `/runtimes`. JIT will have only a `/native` directory. Here's an example of what the tmp location should look like when you are done if the Debian 8 packages were used. The list of binaries will be different for other distros. + +``` +~/tmp-update/ + System.Globalization.Native.so + libcoreclr.so + libdbgshim.so + libmscordbi.so + libsosplugin.so + sosdocsunix.txt + System.Private.CoreLib.ni.dll + libcoreclrtraceptprovider.so + libmscordaccore.so + libsos.so + mscorlib.ni.dll + libclrjit.dylib +``` + +## Back up existing files ## + +Since we'll be updating files in-place it's a good idea to make a backup. First you need to locate the `Microsoft.NETCoreApp/1.0.0` directory. If you used the installers for Ubuntu, 1.0.0 will be found under `/usr/local/share/dotnet/shared/Microsoft.NETCore.App/`. Other distro installations are still manual extraction from archives so it's whereever you copied the directory structure. Something like `/opt/dotnet/shared/Microsoft.NETCore.App` would not be uncommon. + +Now that `Microsoft.NETCore.App/1.0.0` has been located, the easiest way to make the backup will be to copy the entire directory which will be updated. `sudo rsync -r 1.0.0/ 1.0.0-backup/` will create the backup directory and copy the entire contents of the source directory. + +If the backup was successful `diff 1.0.0/ 1.0.0-backup` will return nothing. + +## Copy new files to the shared directory ## + +The final step is to update the files in `Microsoft.NETCore.App/1.0.0` by copying the files from the temporary location into Microsoft.NETCoreApp/1.0.0. Do not copy the /native or /lib directories, just the files. + +At this point, any portable application on the system will make use of the updated runtime files which you have copied into the `Microsoft.NETCoreApp/1.0.0` directory. \ No newline at end of file From 80dce1e6e2dd74f0137a47e9799cd4d3101e5a73 Mon Sep 17 00:00:00 2001 From: leecow Date: Thu, 25 Aug 2016 20:31:13 -0700 Subject: [PATCH 2/2] Corrected /shared directory location informaiton for Ubuntu. --- release-notes/1.0/manual-shared-update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-notes/1.0/manual-shared-update.md b/release-notes/1.0/manual-shared-update.md index ac728d74..b6b6db2c 100644 --- a/release-notes/1.0/manual-shared-update.md +++ b/release-notes/1.0/manual-shared-update.md @@ -51,7 +51,7 @@ If your system doesn't recognize *nupkg files as archives, rename them to *.zip ## Back up existing files ## -Since we'll be updating files in-place it's a good idea to make a backup. First you need to locate the `Microsoft.NETCoreApp/1.0.0` directory. If you used the installers for Ubuntu, 1.0.0 will be found under `/usr/local/share/dotnet/shared/Microsoft.NETCore.App/`. Other distro installations are still manual extraction from archives so it's whereever you copied the directory structure. Something like `/opt/dotnet/shared/Microsoft.NETCore.App` would not be uncommon. +Since we'll be updating files in-place it's a good idea to make a backup. First you need to locate the `Microsoft.NETCoreApp/1.0.0` directory. If you used the installers for Ubuntu, 1.0.0 will be found under `/usr/share/dotnet/shared/Microsoft.NETCore.App/`. Other distro installations are still manual extraction from archives so it's whereever you copied the directory structure. Something like `/opt/dotnet/shared/Microsoft.NETCore.App` would not be uncommon. Now that `Microsoft.NETCore.App/1.0.0` has been located, the easiest way to make the backup will be to copy the entire directory which will be updated. `sudo rsync -r 1.0.0/ 1.0.0-backup/` will create the backup directory and copy the entire contents of the source directory.