Я новичок в системах unix, так что простите меня, если я не поясню или говорю что-то бессмысленное.
Я только что создал машину Amazon Linux AMI и увидел, что она идет с Java 7 (1.7.0_131), но мне нужна Java 8, поэтому я обнаружил эта ветка здесь показываю, как обновить версию java ... и меня очень смутило, как работает yum.
Когда я делаю sudo yum search all java-1.8.0
Я получаю этот список как результат:
Loaded plugins: priorities, update-motd, upgrade-helper
================================ Matched: java-1.8.0 ================================
java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.8.0-openjdk-headless.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.8.0-openjdk-javadoc-zip.noarch : OpenJDK API Documentation compressed in
: single archive
java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle
В потоке сказано просто набрать sudo yum install java-1.8.0
но нет чистого java-1.8.0
вариант в списке. Думаю, есть пакет с именем java-1.8.0
где-то, и содержимое этого пакета может включать некоторые из этих плагинов, возвращаемых поиском YUM.
Итак, как я могу увидеть, какой пакет на самом деле будет установлен? Или как вместо этого искать имена пакетов?
Мне нужен такой контроль, чтобы я мог найти такие пакеты, как java-1.8.0
и нет java-1.8.0-openjdk-headless.x86_64
и уметь понять, что внутри java-1.8.0
по сравнению с java-1.8.0-openjdk-headless.x86_64
.
Кроме того, я не хочу зависеть от Google каждый раз, когда хочу что-то установить, поэтому я могу найти учебник, показывающий имя пакета и параметры, например:
sudo yum install tomcat6 tomcat6-webapps
Где я могу найти tomcat6
сам? Как я узнаю, что есть вариант с именем tomcat6-webapps
?
Чтобы ответить на ваш вопрос, я покажу вам, что бы я сделал, чтобы установить / обновить java.
Чтобы увидеть установленную текущую версию java, я бы запустил:
java -version
Чтобы увидеть имя установленного java-пакета, я бы запустил:
yum list installed | grep java
чтобы установить openjdk java, вам нужно будет запустить:
yum install java-1.8.0-openjdk.x86_64
Насколько я знаю, невозможно установить java-1.8.0, просто запустив:
yum install java-1.8.0
поскольку существует две версии Java, одна - openjdk-java, а другая - oracle-java.
Таким образом, указав -openjdk.x86.64, вы фактически сообщаете yum, какая версия Java должна быть установлена.
Итак, ответ на ваш вопрос: «Итак, как я могу узнать, какое имя пакета будет фактически установлено? Или как я могу вместо этого искать имена пакетов?» заключается в том, что вам нужно указать точное имя пакета, который вы собираетесь установить, и пакет, который будет установлен (вместе с его зависимостями).
Чтобы отобразить файлы, содержащиеся в пакете yum, вы можете выполнить следующую команду:
repoquery -l packagename
Пример:
[root@centolel ~]# repoquery -l java-1.8.0-openjdk
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-1.b13.el6.x86_64/jre/bin/policytool
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-1.b13.el6.x86_64/jre/lib/amd64/libawt_xawt.so
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-1.b13.el6.x86_64/jre/lib/amd64/libjawt.so
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-1.b13.el6.x86_64/jre/lib/amd64/libjsoundalsa.so
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-1.b13.el6.x86_64/jre/lib/amd64/libsplashscreen.so
/usr/share/applications/java-1.8.0-openjdk-1.8.0.121-1.b13.el6.x86_64-policytool.desktop
/usr/share/icons/hicolor/16x16/apps/java-1.8.0.png
/usr/share/icons/hicolor/24x24/apps/java-1.8.0.png
/usr/share/icons/hicolor/32x32/apps/java-1.8.0.png
/usr/share/icons/hicolor/48x48/apps/java-1.8.0.png
Как найти пакеты tomcat6?
[root@centolel ~]# yum search tomcat6
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: centos.joinweb.co.il
* epel: mirror.nonstop.co.il
* extras: centos.joinweb.co.il
* rpmforge: mirror1.hs-esslingen.de
* updates: centos.joinweb.co.il
=========================================================================================== N/S Matched: tomcat6 ===========================================================================================
glite-security-trustmanager-tomcat6.noarch : Java trustmanager interface supporting a GSI grid name space
tomcat6.noarch : Apache Servlet/JSP Engine, RI for Servlet 2.5/JSP 2.1 API
tomcat6-admin-webapps.noarch : The host-manager and manager web applications for Apache Tomcat
tomcat6-docs-webapp.noarch : The docs web application for Apache Tomcat
tomcat6-el-2.1-api.noarch : Expression Language v1.0 API
tomcat6-javadoc.noarch : Javadoc generated documentation for Apache Tomcat
tomcat6-jsp-2.1-api.noarch : Apache Tomcat JSP API implementation classes
tomcat6-lib.noarch : Libraries needed to run the Tomcat Web container
tomcat6-servlet-2.5-api.noarch : Apache Tomcat Servlet API implementation classes
tomcat6-webapps.noarch : The ROOT and examples web applications for Apache Tomcat
Редактировать # 1:
Хорошо, поскольку я проверил это сейчас, кажется, что я ошибался, когда сказал, что вы не можете установить, используя yum install java-1.8.0
, он работает на моей машине.
Когда я бежал yum install java-1.8.0
на моей тестовой машине он автоматически предложил мне версию openjdk, так что я думаю, она по умолчанию:
--> Finished Dependency Resolution
Dependencies Resolved
========================================================================================================================
Package Arch Version Repository Size
========================================================================================================================
Installing:
java-1.8.0-openjdk x86_64 1:1.8.0.121-1.b13.el6 base 200 k
Installing for dependencies:
java-1.8.0-openjdk-headless x86_64 1:1.8.0.121-1.b13.el6 base 32 M
ttmkfdir x86_64 3.0.9-32.1.el6 base 43 k
xorg-x11-fonts-Type1 noarch 7.2-11.el6 base 520 k
Еще одна полезная команда:
yum info java-1.8.0-openjdk.x86_64
Я считаю, что ответ, который вы ищете, можно найти Вот.