On 02/26/2015 09:23 AM, Jiri Vanek wrote:
On 02/26/2015 09:20 AM, Mikolaj Izdebski wrote:
> On 02/26/2015 08:42 AM, Jiri Vanek wrote:
>>>> Also, my proposal of introducing "java" metapackage (see my
other post
>>>> in this thread), which would always require the latest JDK, solves
>>>> this
>>>> problem in a different way, without modifying ordinary Java packages
>>>> at all.
>>>>
>>
>> May you be more exact with the metapackage? Before I come up with
>> legacy, I hoped to solve the issues via some metapackage. At the end I
>> gave up, because the touch of user was always necessary.
>
> I described it in much detail in other posts in this thread
> (for example message-ID 54ECA102.1070506(a)redhat.com)
>
Yah. Sorry. I walked across it later then replied this.
However - I'm not convinced that metapackage will work as expected. If
nothing else it will need some changes in current infrastructure which I
wonted to avoid.
It works exactly how I described it. Old JDK won't be removed during
update, but that's expected behaviour of package management software,
such as DNF, and JDK packages should not differ from other Fedora
packages in this aspect. Consider a detailed example below.
Assume we start with Java 7:
sh-4.3# rpm -qa | grep java
java-1.7.0-openjdk-1.7.0-1.fc23.x86_64
java-1.7.0-1.fc23.x86_64
Then update to newer version of java metapackage, which brings Java 8:
sh-4.3# dnf -y update
Using metadata from Thu Feb 26 09:51:07 2015
Dependencies resolved.
================================================================
Package Arch Version Repository
Size
================================================================
Installing:
java-1.8.0-openjdk x86_64 666:1.8.0-1.fc23 rpm 5.6 k
Upgrading:
java x86_64 666:1.8.0-1.fc23 rpm 5.6 k
Transaction Summary
================================================================
Install 1 Package
Upgrade 1 Package
Total size: 11 k
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Installing : java-1.8.0-openjdk-666:1.8.0-1.fc23.x86_6 1/3
Upgrading : java-666:1.8.0-1.fc23.x86_64 2/3
Cleanup : java-666:1.7.0-1.fc23.x86_64 3/3
Verifying : java-1.8.0-openjdk-666:1.8.0-1.fc23.x86_6 1/3
Verifying : java-666:1.8.0-1.fc23.x86_64 2/3
Verifying : java-666:1.7.0-1.fc23.x86_64 3/3
Installed:
java-1.8.0-openjdk.x86_64 666:1.8.0-1.fc23
Upgraded:
java.x86_64 666:1.8.0-1.fc23
Complete!
Now both Java 8 and legacy Java 7 are installed:
sh-4.3# rpm -qa | grep java
java-1.8.0-1.fc23.x86_64
java-1.7.0-openjdk-1.7.0-1.fc23.x86_64
java-1.8.0-openjdk-1.8.0-1.fc23.x86_64
But user can easily remove packages which were installed to satisfy
dependency, but which are no longer needed using autoremove command:
sh-4.3# dnf -y autoremove
Using metadata from Thu Feb 26 09:51:07 2015
Dependencies resolved.
================================================================
Package Arch Version Repository
Size
================================================================
Removing:
java-1.7.0-openjdk x86_64 666:1.7.0-1.fc23 @System 0
Transaction Summary
================================================================
Remove 1 Package
Installed size: 0
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Erasing : java-1.7.0-openjdk-666:1.7.0-1.fc23.x86_6 1/1
Verifying : java-1.7.0-openjdk-666:1.7.0-1.fc23.x86_6 1/1
Removed:
java-1.7.0-openjdk.x86_64 666:1.7.0-1.fc23
After autoremove Java 7 is no longer installed:
Complete!
sh-4.3# rpm -qa | grep java
java-1.8.0-1.fc23.x86_64
java-1.8.0-openjdk-1.8.0-1.fc23.x86_64
--
Mikolaj Izdebski
Software Engineer, Red Hat
IRC: mizdebsk