Closed Maniues closed 1 year ago
What is the command that you used for building? Even though build.sh -c Release
is really slow, it should build the shared framework packages and installers and other libraries nuget packages the same way, we ship them. You should be able to find the installers produced, in the logs.
I used ./build.sh
@jkoritzinsky can speak more to that, but near the end of the build log you should find bundle packages (ie rpm or deb) that you should be able to use.
Tagging subscribers to this area: @ViktorHofer See info in area-owners.md if you want to be subscribed.
Author: | Maniues |
---|---|
Assignees: | - |
Labels: | `area-Infrastructure`, `question` |
Milestone: | - |
@ViktorHofer Can you see these logs? I was comparing /artifacts/packages/Release/Shipping/dotnet-runtime-6.0.0-dev-linux-x64.tar.gz with my currect dotnet 5.0 runtime installation and some files are missing in my own binaries (often .h files for example: coreclr_delegates.h). I can send you my binaries if you want
That shouldn't be necessary, thanks. cc'ing @dotnet/runtime-infrastructure as I don't have enough context on the missing files.
To build the .deb and .rpm files, you can use ./build.sh packs.installers /p:BuildDebPackages=true
or ./build.sh packs.installers /p:BuildRpmPackages=true
to build the debs or rpms once you've built the repository.
@jkoritzinsky It's the good way, but I'm getting this error: /home/osboxes/Desktop/runtime/eng/SubsetValidation.targets(39,5): error : Subset not recognized: pack.installers [/home/osboxes/Desktop/runtime/Build.proj]
You're missing an 's'. The subset is packs.installers
, not pack.installers
.
Haha, sorry. My bad
@jkoritzinsky what is the default location for the .deb installer?
It should be output to ./artifacts/packages/Debug/Shipping/
. There will be a few packages there that all need to be installed to fully install the runtime and hosting layers.
But, If I built repo as Release (no Debug) what command should I type to generate installer? What will be the name of the installer?
For release, you can run ./build.sh packs.installers -c Release /p:BuildDebPackages=true
.
The packages will be in ./artifacts/packages/Release/Shipping
. The following packages need to be installed to install a local build of the runtime
artifacts/packages/Release/Shipping/dotnet-host-6.0.0-x64.deb
artifacts/packages/Release/Shipping/dotnet-hostfxr-6.0.0-x64.deb
artifacts/packages/Release/Shipping/dotnet-runtime-6.0.0-x64.deb
artifacts/packages/Release/Shipping/dotnet-runtime-deps-6.0.0-x64.deb
I didn't get any errors but there are no .deb files
Log: `root@osboxes:/home/osboxes/Desktop/runtime# ./build.sh packs.installers -c Release /p:BuildDebPackages=true __DistroRid: linux-x64 Determining projects to restore... Tool 'coverlet.console' (version '1.7.2') was restored. Available commands: coverlet Tool 'dotnet-reportgenerator-globaltool' (version '4.5.8') was restored. Available commands: reportgenerator Tool 'microsoft.dotnet.xharness.cli' (version '1.0.0-prerelease.21068.3') was restored. Available commands: xharness Tool 'microsoft.visualstudio.slngen.tool' (version '4.4.2') was restored. Available commands: slngen
Restore was successful. All projects are up-to-date for restore. Determining projects to restore... All projects are up-to-date for restore. installers ->
Build succeeded. 0 Warning(s) 0 Error(s)
Time Elapsed 00:00:03.88 root@osboxes:/home/osboxes/Desktop/runtime#
Sorry I misspoke. Use this command: ./build.sh packs.installers -c Release /p:BuildDebPackage=true
I'm getting some errors: https://pastebin.com/4MwvxJge
You need to install the debhelper package on your system to build the debs.
You need to install the debhelper package on your system to build the debs.
It's working, but what is it dotnet-runtime-deps debfile?
dotnet-runtime-deps is a metapackage that depends on all of the dependencies the runtime does not ship with.
Hi. It's working, but I have two questions. Must I install all debs files to install runtime? Must I install .NET SDK to run .NET apps?
You'll need to install all of the debs I listed to fully install the runtime and be able to run .NET apps.
You don't need to install the .NET SDK to run .NET apps.
If you want to run an app that uses ASP.NET Core, you'll have to install their runtime deb packages as well. I don't know how their packages are produced, so you'll have to open an issue on https://github.com/dotnet/aspnetcore to ask that team how and where they're produced.
Thanks a lot Jeremy for driving this along. Do we need to update our docs for dogfooding purposes?
I don't think we currently have any dogfooding instructions for dogfooding the debs and rpms themselves. Our docs could probably use an update in this area.
@jkoritzinsky I built runtime 5.0 and I'm getting this error when I want to build deb files:
/home/osboxes/Desktop/dotnet/net5/runtime/eng/SubsetValidation.targets(39,5): error : Subset not recognized: packs.installers [/home/osboxes/Desktop/dotnet/net5/runtime/Build.proj]
Yes, that's expected. We recently updated the infrastructure in master. In 5.0, this is done differently and I don't quite remember how it's done.
cc: @NikolaMilosavljevic for 5.0 instructions on how to build the debs.
@Maniues the actual command would be the following (the property name is singular): ./build.sh -c Release -subset packs+packs.installers -p:BuildDebPackage=true
However, to build DEB packages you would need 'debhelper' tool. Alternatively, you could use the same docker image that is used in official builds: https://github.com/dotnet/runtime/blob/8c76312b621e2cdb22ca0ee603c5b0e1919134a2/eng/pipelines/installer/jobs/base-job.yml#L25
@Maniues the actual command would be the following (the property name is singular):
./build.sh -c Release -subset packs+packs.installers -p:BuildDebPackage=true
Thanks for the instructions but I'm receiving error: Subset not recognized: packs. I used ./build.sh -c Release -subset packs+packs.installers -p:BuildDebPackage=true
@Maniues the actual command would be the following (the property name is singular):
./build.sh -c Release -subset packs+packs.installers -p:BuildDebPackage=true
Thanks for the instructions but I'm receiving error: Subset not recognized: packs. I used ./build.sh -c Release -subset packs+packs.installers -p:BuildDebPackage=true
The command works fine for me. Do you have the latest changes in your repo? We have refactored packaging process few months ago; and renamed most of the subsets as part of that work.
@NikolaMilosavljevic the question was about the release/5.0 branch.
@Maniues the actual command would be the following (the property name is singular):
./build.sh -c Release -subset packs+packs.installers -p:BuildDebPackage=true
Thanks for the instructions but I'm receiving error: Subset not recognized: packs. I used ./build.sh -c Release -subset packs+packs.installers -p:BuildDebPackage=true
The command works fine for me. Do you have the latest changes in your repo? We have refactored packaging process few months ago; and renamed most of the subsets as part of that work.
I cloned repo with these commands: git clone https://github.com/dotnet/runtime.git cd runtime git checkout tags/v5.0.2
I cloned repo with these commands: git clone https://github.com/dotnet/runtime.git cd runtime git checkout tags/v5.0.2
OK, this branch has old subsets and packaging infrastructure, the steps are different:
./build.sh -c Release
./build.sh -c Release -subset installers /p:BuildLinuxPackages=true
@NikolaMilosavljevic Thank you very much, it works. I'm getting ready to close this thread, but please, could you please answer these questions:
@NikolaMilosavljevic Thank you very much, it works. I'm getting ready to close this thread, but please, could you please answer these questions:
- Is there any documentation out there about building installers and the build process in general (dependencies etc)?
- Could you please give me the commands to build the installer for all dotnet runtime versions? So .NET Core 3.1 and earlier, .NET 5.0 and .NET 6.0?
Great - that's good news. That was the command (and steps) for .NET 5.0 installers. For 6.0 you would use the command I listed earlier: ./build.sh -c Release -subset packs+packs.installers -p:BuildDebPackage=true
.NET 3.1 and earlier versions are built in appropriate branches of dotnet/core-setup repo. The build is more complex and you need to use non-portable targets. I don't have the command handy now, but you can explore AzDO templates to get the actual steps: https://github.com/dotnet/core-setup/tree/release/3.1/eng/jobs
Since build steps are different for every release, we don't have a single document with actual build commands. I'll see if we can improve the developer package build experience and related documentation.
@NikolaMilosavljevic Okay, I think now the most important thing is to provide build documentation for .NET 5.0, 6.0 and core 3.1 because these are the latest versions. Hope you will work on the build documentation, albeit for 5.0 and above
Closing this in favor of #48240 which looks for the documentation of the process.
I have problem with binaries. I built .NET Runtime from source. I haven't got directory similar to official binaries. How can I install runtime built from source? Logs (copied from bash): https://pastebin.com/EbfXP4jx