ping и traceroute используют протокол ICMP. Подобно UDP и TCP, это доступно через обычный сокет API. Только номера портов UDP и TCP менее 1024 защищены от использования, кроме как от root. ICMP доступен всем пользователям.
Если вы действительно хотите посмотреть, как работают ping и traceroute, вы можете загрузить пример реализации кода C из CodeProject.
Короче говоря, они просто открыть ICMP-сокет, а traceroute изменяет приращения TTL с помощью setsockopt до достижения цели.
Источник: CodeProject
Ах, нашел ответ вскоре после публикации.
Фокус в том, чтобы использовать update-java-alternatives (из пакета java-common).
Итак, чтобы перейти на OpenJDK 6 до 7, я использовал update-java-alternatives -l, чтобы получить список альтернатив Java, а затем использовал sudo update-java-alternatives -s java-1.7.0-openjdk-amd64 для JDK.
ПРИМЕЧАНИЕ. В приведенной выше команде были сброшены следующие ошибки:
update-alternatives: error: no alternatives for mozilla-javaplugin.so.
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so
[d4 ] Это связано с тем, что плагин openjdk по умолчанию не установлен. Чтобы исправить прогон sudo apt-get install icedtea-7-plugin и повторить update-java-alternatives. Трюк заключается в использовании update-java-alternatives
(из пакета java-common
).
Итак, чтобы перейти на OpenJDK с 6 по 7, я использовал update-java-alternatives -l
, чтобы получить список альтернатив Java, а затем использовал sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
для JDK.
ПРИМЕЧАНИЕ. В приведенной выше команде были сброшены следующие ошибки:
update-alternatives: error: no alternatives for mozilla-javaplugin.so.
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so
Это связано с тем, что плагин openjdk не установлен по умолчанию. Исправить пробег
sudo apt-get install icedtea-7-plugin
и повторить update-java-alternatives
.
Трюк заключается в использовании update-java-alternatives
(из пакета java-common
).
Итак, чтобы перейти на OpenJDK с 6 по 7, я использовал update-java-alternatives -l
, чтобы получить список альтернатив Java, а затем использовал sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
для JDK.
ПРИМЕЧАНИЕ. В приведенной выше команде были сброшены следующие ошибки:
update-alternatives: error: no alternatives for mozilla-javaplugin.so.
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so
Это связано с тем, что плагин openjdk не установлен по умолчанию. Исправить пробег
sudo apt-get install icedtea-7-plugin
и повторить update-java-alternatives
.
Трюк заключается в использовании update-java-alternatives
(из пакета java-common
).
Итак, чтобы перейти на OpenJDK с 6 по 7, я использовал update-java-alternatives -l
, чтобы получить список альтернатив Java, а затем использовал sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
для JDK.
ПРИМЕЧАНИЕ. В приведенной выше команде были сброшены следующие ошибки:
update-alternatives: error: no alternatives for mozilla-javaplugin.so.
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so
Это связано с тем, что плагин openjdk не установлен по умолчанию. Исправить пробег
sudo apt-get install icedtea-7-plugin
и повторить update-java-alternatives
.
Трюк заключается в использовании update-java-alternatives
(из пакета java-common
).
Итак, чтобы перейти на OpenJDK с 6 по 7, я использовал update-java-alternatives -l
, чтобы получить список альтернатив Java, а затем использовал sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
для JDK.
ПРИМЕЧАНИЕ. В приведенной выше команде были сброшены следующие ошибки:
update-alternatives: error: no alternatives for mozilla-javaplugin.so.
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so
Это связано с тем, что плагин openjdk не установлен по умолчанию. Исправить пробег
sudo apt-get install icedtea-7-plugin
и повторить update-java-alternatives
.
Трюк заключается в использовании update-java-alternatives
(из пакета java-common
).
Итак, чтобы перейти на OpenJDK с 6 по 7, я использовал update-java-alternatives -l
, чтобы получить список альтернатив Java, а затем использовал sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
для JDK.
ПРИМЕЧАНИЕ. В приведенной выше команде были сброшены следующие ошибки:
update-alternatives: error: no alternatives for mozilla-javaplugin.so.
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so
Это связано с тем, что плагин openjdk не установлен по умолчанию. Исправить пробег
sudo apt-get install icedtea-7-plugin
и повторить update-java-alternatives
.
Трюк заключается в использовании update-java-alternatives
(из пакета java-common
).
Итак, чтобы перейти на OpenJDK с 6 по 7, я использовал update-java-alternatives -l
, чтобы получить список альтернатив Java, а затем использовал sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
для JDK.
ПРИМЕЧАНИЕ. В приведенной выше команде были сброшены следующие ошибки:
update-alternatives: error: no alternatives for mozilla-javaplugin.so.
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so
Это связано с тем, что плагин openjdk не установлен по умолчанию. Исправить пробег
sudo apt-get install icedtea-7-plugin
и повторить update-java-alternatives
.
update-java-alternatives
изменяет все другие альтернативы java, даже если параметр плагина вызывает ошибку.
– daniel kullmann
16 April 2013 в 17:17
update-java-alternatives --set java-1.8.0-openjdk-amd64
У меня все еще есть default-java -> /usr/lib/jvm/java-7-oracle
. Это вызвано ошибкой no alternatives for mozilla-javaplugin.so
? Как я могу это изменить?
– lony
17 January 2017 в 01:06
jbro задал тот же вопрос на http://ubuntuforums.org/showthread.php?t=1817528 и написал сценарий для этой проблемы,
#!/bin/bash
update-alternatives --get-selections | grep -i openjdk |
while read line
do
alternative=$(echo $line | awk '{print $1}')
path=$(echo $line | awk '{print $3}')
newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
status=unchanged
if [ -f $newpath ]
then
status=modified
echo "-> update-alternatives --set $alternative $newpath"
update-alternatives --set $alternative $newpath
else
echo "$alternative unchanged"
fi
done
Если нет лучшего ответа это кажется сложным обходным решением, но я предполагаю, что для update-alternatives должен быть лучший способ справиться с этим.
Я немного изменил код, так как он не позволяет вам делать изменения перед установкой их. Я добавил еще две строки следующим образом:
#!/bin/bash
update-alternatives --get-selections | grep -i openjdk |
while read line
do
alternative=$(echo $line | awk '{print $1}')
path=$(echo $line | awk '{print $3}')
newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
status=unchanged
if [ -f $newpath ]
then
status=modified
echo "-> update-alternatives --install /usr/bin/$alternative $alternative $newpath 1"
update-alternatives --install /usr/bin/$alternative $alternative $newpath 1
echo "-> update-alternatives --set $alternative $newpath"
update-alternatives --set $alternative $newpath
else
echo "$alternative unchanged"
fi
done
Для Oracle JVM запустите это:
sudo update-java-alternatives -s java-7-oracle
jbro задал тот же вопрос в http://ubuntuforums.org/showthread.php?t=1817528 и написал сценарий для этой проблемы,
#!/bin/bash
update-alternatives --get-selections | grep -i openjdk |
while read line
do
alternative=$(echo $line | awk '{print $1}')
path=$(echo $line | awk '{print $3}')
newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
status=unchanged
if [ -f $newpath ]
then
status=modified
echo "-> update-alternatives --set $alternative $newpath"
update-alternatives --set $alternative $newpath
else
echo "$alternative unchanged"
fi
done
Если нет лучшего ответа, это похоже на прочное обходное решение, но я предполагаю, что для update-alternatives
должен быть лучший способ справиться с этим.
Я немного изменил код, так как он не сделайте изменения перед их установкой. Я добавил еще две строки следующим образом:
#!/bin/bash
update-alternatives --get-selections | grep -i openjdk |
while read line
do
alternative=$(echo $line | awk '{print $1}')
path=$(echo $line | awk '{print $3}')
newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
status=unchanged
if [ -f $newpath ]
then
status=modified
echo "-> update-alternatives --install /usr/bin/$alternative $alternative $newpath 1"
update-alternatives --install /usr/bin/$alternative $alternative $newpath 1
echo "-> update-alternatives --set $alternative $newpath"
update-alternatives --set $alternative $newpath
else
echo "$alternative unchanged"
fi
done
Для JVM Oracle запустите это:
sudo update-java-alternatives -s java-7-oracle
jbro задал тот же вопрос в http://ubuntuforums.org/showthread.php?t=1817528 и написал сценарий для этой проблемы,
#!/bin/bash
update-alternatives --get-selections | grep -i openjdk |
while read line
do
alternative=$(echo $line | awk '{print $1}')
path=$(echo $line | awk '{print $3}')
newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
status=unchanged
if [ -f $newpath ]
then
status=modified
echo "-> update-alternatives --set $alternative $newpath"
update-alternatives --set $alternative $newpath
else
echo "$alternative unchanged"
fi
done
Если нет лучшего ответа, это похоже на прочное обходное решение, но я предполагаю, что для update-alternatives
должен быть лучший способ справиться с этим.
Я немного изменил код, так как он не сделайте изменения перед их установкой. Я добавил еще две строки следующим образом:
#!/bin/bash
update-alternatives --get-selections | grep -i openjdk |
while read line
do
alternative=$(echo $line | awk '{print $1}')
path=$(echo $line | awk '{print $3}')
newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
status=unchanged
if [ -f $newpath ]
then
status=modified
echo "-> update-alternatives --install /usr/bin/$alternative $alternative $newpath 1"
update-alternatives --install /usr/bin/$alternative $alternative $newpath 1
echo "-> update-alternatives --set $alternative $newpath"
update-alternatives --set $alternative $newpath
else
echo "$alternative unchanged"
fi
done
Для JVM Oracle запустите это:
sudo update-java-alternatives -s java-7-oracle
jbro задал тот же вопрос в http://ubuntuforums.org/showthread.php?t=1817528 и написал сценарий для этой проблемы,
#!/bin/bash
update-alternatives --get-selections | grep -i openjdk |
while read line
do
alternative=$(echo $line | awk '{print $1}')
path=$(echo $line | awk '{print $3}')
newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
status=unchanged
if [ -f $newpath ]
then
status=modified
echo "-> update-alternatives --set $alternative $newpath"
update-alternatives --set $alternative $newpath
else
echo "$alternative unchanged"
fi
done
Если нет лучшего ответа, это похоже на прочное обходное решение, но я предполагаю, что для update-alternatives
должен быть лучший способ справиться с этим.
Я немного изменил код, так как он не сделайте изменения перед их установкой. Я добавил еще две строки следующим образом:
#!/bin/bash
update-alternatives --get-selections | grep -i openjdk |
while read line
do
alternative=$(echo $line | awk '{print $1}')
path=$(echo $line | awk '{print $3}')
newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
status=unchanged
if [ -f $newpath ]
then
status=modified
echo "-> update-alternatives --install /usr/bin/$alternative $alternative $newpath 1"
update-alternatives --install /usr/bin/$alternative $alternative $newpath 1
echo "-> update-alternatives --set $alternative $newpath"
update-alternatives --set $alternative $newpath
else
echo "$alternative unchanged"
fi
done
Для JVM Oracle запустите это:
sudo update-java-alternatives -s java-7-oracle
jbro задал тот же вопрос в http://ubuntuforums.org/showthread.php?t=1817528 и написал сценарий для этой проблемы,
#!/bin/bash
update-alternatives --get-selections | grep -i openjdk |
while read line
do
alternative=$(echo $line | awk '{print $1}')
path=$(echo $line | awk '{print $3}')
newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
status=unchanged
if [ -f $newpath ]
then
status=modified
echo "-> update-alternatives --set $alternative $newpath"
update-alternatives --set $alternative $newpath
else
echo "$alternative unchanged"
fi
done
Если нет лучшего ответа, это похоже на прочное обходное решение, но я предполагаю, что для update-alternatives
должен быть лучший способ справиться с этим.
Я немного изменил код, так как он не сделайте изменения перед их установкой. Я добавил еще две строки следующим образом:
#!/bin/bash
update-alternatives --get-selections | grep -i openjdk |
while read line
do
alternative=$(echo $line | awk '{print $1}')
path=$(echo $line | awk '{print $3}')
newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
status=unchanged
if [ -f $newpath ]
then
status=modified
echo "-> update-alternatives --install /usr/bin/$alternative $alternative $newpath 1"
update-alternatives --install /usr/bin/$alternative $alternative $newpath 1
echo "-> update-alternatives --set $alternative $newpath"
update-alternatives --set $alternative $newpath
else
echo "$alternative unchanged"
fi
done
Для JVM Oracle запустите это:
sudo update-java-alternatives -s java-7-oracle
jbro задал тот же вопрос в http://ubuntuforums.org/showthread.php?t=1817528 и написал сценарий для этой проблемы,
#!/bin/bash
update-alternatives --get-selections | grep -i openjdk |
while read line
do
alternative=$(echo $line | awk '{print $1}')
path=$(echo $line | awk '{print $3}')
newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
status=unchanged
if [ -f $newpath ]
then
status=modified
echo "-> update-alternatives --set $alternative $newpath"
update-alternatives --set $alternative $newpath
else
echo "$alternative unchanged"
fi
done
Если нет лучшего ответа, это похоже на прочное обходное решение, но я предполагаю, что для update-alternatives
должен быть лучший способ справиться с этим.
Я немного изменил код, так как он не сделайте изменения перед их установкой. Я добавил еще две строки следующим образом:
#!/bin/bash
update-alternatives --get-selections | grep -i openjdk |
while read line
do
alternative=$(echo $line | awk '{print $1}')
path=$(echo $line | awk '{print $3}')
newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
status=unchanged
if [ -f $newpath ]
then
status=modified
echo "-> update-alternatives --install /usr/bin/$alternative $alternative $newpath 1"
update-alternatives --install /usr/bin/$alternative $alternative $newpath 1
echo "-> update-alternatives --set $alternative $newpath"
update-alternatives --set $alternative $newpath
else
echo "$alternative unchanged"
fi
done
Для JVM Oracle запустите это:
sudo update-java-alternatives -s java-7-oracle
jbro задал тот же вопрос в http://ubuntuforums.org/showthread.php?t=1817528 и написал сценарий для этой проблемы,
#!/bin/bash
update-alternatives --get-selections | grep -i openjdk |
while read line
do
alternative=$(echo $line | awk '{print $1}')
path=$(echo $line | awk '{print $3}')
newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
status=unchanged
if [ -f $newpath ]
then
status=modified
echo "-> update-alternatives --set $alternative $newpath"
update-alternatives --set $alternative $newpath
else
echo "$alternative unchanged"
fi
done
Если нет лучшего ответа, это похоже на прочное обходное решение, но я предполагаю, что для update-alternatives
должен быть лучший способ справиться с этим.
Я немного изменил код, так как он не сделайте изменения перед их установкой. Я добавил еще две строки следующим образом:
#!/bin/bash
update-alternatives --get-selections | grep -i openjdk |
while read line
do
alternative=$(echo $line | awk '{print $1}')
path=$(echo $line | awk '{print $3}')
newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
status=unchanged
if [ -f $newpath ]
then
status=modified
echo "-> update-alternatives --install /usr/bin/$alternative $alternative $newpath 1"
update-alternatives --install /usr/bin/$alternative $alternative $newpath 1
echo "-> update-alternatives --set $alternative $newpath"
update-alternatives --set $alternative $newpath
else
echo "$alternative unchanged"
fi
done
Для JVM Oracle запустите это:
sudo update-java-alternatives -s java-7-oracle
jbro задал тот же вопрос в http://ubuntuforums.org/showthread.php?t=1817528 и написал сценарий для этой проблемы,
#!/bin/bash
update-alternatives --get-selections | grep -i openjdk |
while read line
do
alternative=$(echo $line | awk '{print $1}')
path=$(echo $line | awk '{print $3}')
newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
status=unchanged
if [ -f $newpath ]
then
status=modified
echo "-> update-alternatives --set $alternative $newpath"
update-alternatives --set $alternative $newpath
else
echo "$alternative unchanged"
fi
done
Если нет лучшего ответа, это похоже на прочное обходное решение, но я предполагаю, что для update-alternatives
должен быть лучший способ справиться с этим.
Я немного изменил код, так как он не сделайте изменения перед их установкой. Я добавил еще две строки следующим образом:
#!/bin/bash
update-alternatives --get-selections | grep -i openjdk |
while read line
do
alternative=$(echo $line | awk '{print $1}')
path=$(echo $line | awk '{print $3}')
newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
status=unchanged
if [ -f $newpath ]
then
status=modified
echo "-> update-alternatives --install /usr/bin/$alternative $alternative $newpath 1"
update-alternatives --install /usr/bin/$alternative $alternative $newpath 1
echo "-> update-alternatives --set $alternative $newpath"
update-alternatives --set $alternative $newpath
else
echo "$alternative unchanged"
fi
done
& Lt; TL; DR> update-java-alternatives использует файл .jinfo, чтобы определить , какие альтернативы переключаются, но также ожидает, что они будут настроены отдельно.
Создайте новый файл .jinfo и записи update-alterntive, если ваш загруженный JRE / JDK не переключается с помощью update-java-alternatives
[Подробнее ]
Чтобы настроить его вручную:
/usr/lib/jvm/
/bin
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/**jdkname**/bin/java 100
(Несколько связанных ответов выписали это из содержимого / bin или вы можете выполнить поиск / замену regexp в вашем файле .jinfo, чтобы сгенерировать команды сценария.) Обратите внимание, что 100 - это только приоритет, который рассматривается при настройке версии jdk с использованием автоматического флага. update-java-alternatives -l
update-java-alternatives -s jdkname
Обратите внимание, что некоторые JDK не включают JRE, поэтому либо добавьте его, либо удалите эти записи jinfo.