F22 System Wide Change: Legacy implementations of the Java platform in Fedora

Mikolaj Izdebski mizdebsk at redhat.com
Thu Feb 26 09:13:08 UTC 2015


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 at 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


More information about the devel mailing list