Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KB3173424 requires KB2919355 #45

Closed
olivierlemasle opened this issue Apr 10, 2017 · 8 comments · Fixed by #51
Closed

KB3173424 requires KB2919355 #45

olivierlemasle opened this issue Apr 10, 2017 · 8 comments · Fixed by #51
Milestone

Comments

@olivierlemasle
Copy link
Contributor

olivierlemasle commented Apr 10, 2017

On my Windows 2012R2 box (with no update), I cannot install KB3173424 (marked in the cookbook as a MS .Net 4.6 requirement) because it requires KB2919355.

This dependency is documented here:
https://support.microsoft.com/en-us/help/3173424/servicing-stack-update-for-windows-8.1-and-windows-server-2012-r2-july-12,-2016

If I revert commit e20a0ed, everything works in my case.
But looking at this repository's history, we can see that it's not that simple:

So I'd be happy to revert to KB3021910 (which did not depend on anything), but it would cause #37 again (found by both @lbn-chef-team and @jakauppila).

Any idea?

@Annih
Copy link
Contributor

Annih commented Apr 11, 2017

Interesting, in that kind of situation I love Microsoft :)
I think one possible solution would be to install all updates, even the one that have been superseeded by newer updates.

On my 2012R2 box I nver encountered your issue because KB2919355 is already included.

I'm testing it right away!

@Annih
Copy link
Contributor

Annih commented Apr 11, 2017

Having all packages (KB2919442 KB2919355 KB3021910 KB3173424) as prerequisites seem to fix the issue.
I'm trying to remove KB3021910, which doesn't seem useful anymore

@olivierlemasle
Copy link
Contributor Author

olivierlemasle commented Apr 11, 2017

Thanks! In which order do you propose to install these updates?

Why won't this change re-open issue #29? It seems that the users reporting this issue were not able to install KB2919442 in the first place, probably because they already had other updates installed.

@Annih
Copy link
Contributor

Annih commented Apr 11, 2017

Ok so not installing KB3021910 seems not an issue :)
All my test have been done on a Windows Server 2012R2 box with KB2919442 included by default and not removable ...

I'm now trying to reproduce on a box without this KB

@olivierlemasle
Copy link
Contributor Author

Thanks, I'm testing on my side KB2919442 + KB2919355 + KB3173424

olivierlemasle added a commit to olivierlemasle/ms_dotnet that referenced this issue Apr 11, 2017
@olivierlemasle
Copy link
Contributor Author

I confirm that it works for me with these three updates. I've added a pull request.

olivierlemasle added a commit to olivierlemasle/ms_dotnet that referenced this issue Apr 11, 2017
@Annih Annih closed this as completed in #46 Apr 11, 2017
@Annih
Copy link
Contributor

Annih commented Apr 11, 2017

Thanks for the feedback and PR :)

Annih added a commit that referenced this issue Apr 20, 2017
This should help fixing the dependency issues from #45 #50.
It also reduce the number of line in the package_helper which is good.
@Annih Annih reopened this Apr 21, 2017
@Annih
Copy link
Contributor

Annih commented Apr 21, 2017

Following #50 I decided to reopen this issue to continue the discussion until all usecase seems fixed :)

  1. It seems that it is possible to have KB3173424 without KB2919355 even if it is one of its prerequisites...
  2. Having KB3173424 is not enough to install .NET you still need KB2919355...
  3. KB2919355 dépends on KB2919442 (Install KB2919442 before KB2919355 #46)
  4. KB2919442 can't be installed when KB3173424 ...

I created #51 to test a new solution. I think I'll list all updates superseeding KB2919442

Annih added a commit that referenced this issue Apr 28, 2017
This should help fixing the dependency issues from #45 #50.
It also reduce the number of line in the package_helper which is good.
Annih added a commit that referenced this issue May 6, 2017
Most hotfixes requires a WMI query to detect whether they are installed
or not. Hotfixes maybe superseded by others and can't be installed when
a superseding package is already present.

To handle these case, update the semantic of the `not_if` field of the
packages definition:
* A String `not_if` value is a command to execute.
* A Array `not_if` value is a list of hotfixes to check using wmi.

Wmi-lite is used to perform a single query for all hotfixes. If any
of the defined hotfixes is present, the package won't be installed.
This should fix #45 & #54.

Tests and README.md have been updated accordingly.
Annih added a commit that referenced this issue May 16, 2017
Most hotfixes requires a WMI query to detect whether they are installed
or not. Hotfixes maybe superseded by others and can't be installed when
a superseding package is already present.

To handle these case, update the semantic of the `not_if` field of the
packages definition:
* A String `not_if` value is a command to execute.
* A Array `not_if` value is a list of hotfixes to check using wmi.

Wmi-lite is used to perform a single query for all hotfixes. If any
of the defined hotfixes is present, the package won't be installed.
This should fix #45 & #54.

Tests and README.md have been updated accordingly.
@Annih Annih modified the milestone: 4.0.0 May 23, 2017
Annih added a commit that referenced this issue May 25, 2017
Most hotfixes requires a WMI query to detect whether they are installed
or not. Hotfixes maybe superseded by others and can't be installed when
a superseding package is already present.

To handle these case, update the semantic of the `not_if` field of the
packages definition:
* A String `not_if` value is a command to execute.
* A Array `not_if` value is a list of hotfixes to check using wmi.

Wmi-lite is used to perform a single query for all hotfixes. If any
of the defined hotfixes is present, the package won't be installed.
This should fix #45 & #54.

Tests and README.md have been updated accordingly.
Annih added a commit that referenced this issue May 26, 2017
Most hotfixes requires a WMI query to detect whether they are installed
or not. Hotfixes maybe superseded by others and can't be installed when
a superseding package is already present.

To handle these case, update the semantic of the `not_if` field of the
packages definition:
* A String `not_if` value is a command to execute.
* A Array `not_if` value is a list of hotfixes to check using wmi.

Wmi-lite is used to perform a single query for all hotfixes. If any
of the defined hotfixes is present, the package won't be installed.
This should fix #45 & #54.

Tests and README.md have been updated accordingly.
Annih added a commit that referenced this issue May 26, 2017
Most hotfixes requires a WMI query to detect whether they are installed
or not. Hotfixes maybe superseded by others and can't be installed when
a superseding package is already present.

To handle these case, update the semantic of the `not_if` field of the
packages definition:
* A String `not_if` value is a command to execute.
* A Array `not_if` value is a list of hotfixes to check using wmi.

Wmi-lite is used to perform a single query for all hotfixes. If any
of the defined hotfixes is present, the package won't be installed.
This should fix #45 & #54.

Tests and README.md have been updated accordingly.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants