Как установить JDK в Linux Mint

Сначала необходимо проверить, подключен ли процесс к терминалу.

$ ps -eo comm,tty | grep fsck

Теперь, если вы по-прежнему можете видеть значение TTY рядом с вашим процессом, вы по-прежнему можете получить его вывод (из этого TTY). Текущий идентификатор TTY можно получить с помощью tty . Однако, если рядом с вашим процессом есть ? , боюсь, вы не сможете получить его вывод в любом случае (если вы не использовали что-то вроде экрана ).

Если процесс все еще подключен к работающему терминалу, можно вернуть процесс на передний план с помощью fg (в этом терминале, конечно):

$ jobs
$ fg [job ID]

задания выдадут идентификатор, связанный с запущенным процессом fsck.ext4 . Затем используйте его при вызове fg . Можно также вызвать fg без аргументов, если в фоновом режиме имеется только одно задание.

Я не знаком с fsck.ext4 , но используемый вами переключатель -t , похоже, печатает статистику (отредактируйте: также как и параметр -C 0 ). Вернув процесс на передний план, вы получите этот вывод обратно. Однако, если fsck.ext4 не был запущен с подробными параметрами, он не будет печатать ничего, независимо от того, находится ли он на переднем плане или в фоновом режиме. В этом случае можно просто проверить, выполняется ли он по-прежнему с помощью ps .

Когда вы закончите, просто нажмите Ctrl + Z , чтобы снова отправить процесс в фоновом режиме. Будьте осторожны, если процесс подключен к терминалу (то есть, если программа принадлежит сеансу управления терминала), то закрытие терминала отправит SIGHUP процессу и убьет его (если только вы не заставили fsck.ext4 игнорировать SIGHUP ).

-121--139948-

Следующее, кажется, работает просто хорошо в моем sh :

$ myvar="test"
$ echo "My var is $myvar."
My var is test.

Нет необходимости эхо значение переменной и поймать его снова в другой. Вот немного больше информации о назначениях переменных .

Объект , OSTYPE не определен в среде sh . Вам придется передать его при выполнении сценария. Так что, вместо того, чтобы бежать...

$ /bin/sh yourscript.sh
or
$ ./yourscript.sh

Необходимо выполнить:

$ OSTYPE=$OSTYPE /bin/sh yourscript.sh
or
$ OSTYPE=$OSTYPE ./yourscript.sh

Конечно, предполагается, что родительская оболочка, в которой вводится приведенная выше команда, имеет переменную OSTYPE . В то время как bash делает, это не случай каждой оболочки. Вместо $ OSTYPE можно использовать uname :

$ OS=$(uname -o)
$ echo "My OS is $OS."
My OS is GNU/Linux.
$ echo "My OS is $(uname -o)."
My OS is GNU/Linux.

На моей машине для переменной OS устанавливается значение GNU/Linux , а не linux-gnu (которое является содержимым моего OSTYPE ).

В качестве побочной заметки я предполагаю, что эквивалент вашего кода может быть:

$ myvar="$(echo $OSTYPE)"
$ echo "My var is $myvar."
My var is linux-gnu

-121--244812-

Основная причина заключается в том, что распакованный образ при загрузке расширится сам собой,но где?

Если бы он находился в ОЗУ, компьютер мог бы его не хватить, чтобы сделать так. Но если бы это было сделано на USB ключ сам на ext4 раздел, «образ» не будет больше нетронутым, так как файл написаны на том же разделе.

Что еще хуже, некоторые изменения могут сделать изменения постоянными, что не нужно делать на изображении.

1
24.11.2016, 09:42
4 ответа

Помогло бы указать здесь вашу папку /etc/apt/sources.list.d/ .

Чтобы проверить, обновлен ли ваш текущий репозиторий пакетом, который вы хотите установить, запустите apt-cache search openjdk-7-jdk , если вы не видите никакого списка, значит у вас устаревший репозиторий на ваша машина.

Вариант A: Получите соответствующий репозиторий для openjdk и добавьте его в свой sources.list или лучше создайте новый файл внутри /etc/apt/sources.list. d / .

Вариант B: попробуйте установить Oracle java, он более стабилен и поддерживает больше, чем openjdk

0
28.01.2020, 02:12

Как указано в комментариях, система использует systemd для управления услугами. Systemd является заменой традиционной SysVinit. Он также содержит множество других элементов, таких как сборщик системных журналов. В этом случае для получения доступа к журналам необходимо использовать команду journalctl .

$ journalctl

Если требуется просмотреть только журналы sshd , можно пройти фильтр:

$ journalctl -n 1 _COMM=sshd
-- Logs begin at Wed 2014-10-22 19:29:29 EDT, end at Fri 2014-10-24 09:05:09 EDT. --
Oct 24 09:05:09 gadget sshd[5800]: pam_unix(sshd:session): session closed for user phemmer

Доступные поля фильтра можно просмотреть, изменив формат вывода на подробный :

$ journalctl -n 1 -o verbose
Fri 2014-10-24 09:05:09.533633 EDT [s=30566909a26443ffb7185d318ccc4cd6;i=3d5d;b=19dd64e325fd4577a78af1a73f005b6c;m=1e82168a3c;t=5062ad4a511bc;x=1fae374af8a7dbc3]
    PRIORITY=6
    _UID=0
    _GID=0
    _BOOT_ID=19dd64e325fd4577a78af1a73f005b6c
    _MACHINE_ID=5288dcb47f9fed3ab946f54754305a4f
    _HOSTNAME=gadget
    _CAP_EFFECTIVE=1fffffffff
    _TRANSPORT=syslog
    SYSLOG_FACILITY=10
    SYSLOG_IDENTIFIER=sshd
    _COMM=sshd
    _EXE=/usr/sbin/sshd
    _SYSTEMD_OWNER_UID=1000
    _SYSTEMD_SLICE=user-1000.slice
    _PID=5800
    _CMDLINE=sshd: phemmer [priv]   
    _SYSTEMD_CGROUP=/user.slice/user-1000.slice/session-3.scope
    _SYSTEMD_SESSION=3
    _SYSTEMD_UNIT=session-3.scope
    MESSAGE=pam_unix(sshd:session): session closed for user phemmer
    _SOURCE_REALTIME_TIMESTAMP=1414155909533633

Для ответа на комментарий об отключении systemd. Я бы не советовал. Ваше распределение движется в сторону systemd, и разрыв основного компонента системы, вероятно, сделает вашу жизнь чрезвычайно сложной.
Можно было бы отключить только журнал журнала и использовать традиционный демон системного журнала, без лишней боли, но я бы рекомендовал научиться использовать журнал, прежде чем принимать решение не использовать его. Идти против конвенции не следует легкомысленно.

-121--111681-

В /etc/systemd/system вы найдете symlink , default.target . В настоящее время это указывает на /usr/lib/systemd/system/graphical.target (это можно увидеть с помощью readlink default.target .

В качестве корня (или через sudo) удалите symlink и замените его:

rm default.target
ln -s /usr/lib/systemd/system/multi-user.target default.target

Дважды проверьте, что введите default.target . Он должен сказать «символическая ссылка на»..., а не « сломанная символическая ссылка на»... в этом случае вы ввели цель неправильно, начать снова. Также двойная проверка вы получили имя правильно, default.target - все это важно для правильной перезагрузки системы.

Теперь можно перезагрузиться и перейти к консоли вместо диспетчера дисплея. Для возврата к учетной записи GUI отмените указанный выше процесс.

-121--20350-

Не беспокойтесь об установке через apt. Просто загрузите пакет JDK непосредственно из Oracle и загрузите сценарий из

БОЛЬШЕ НЕДЕЙСТВИТЕЛЬНАЯ ССЫЛКА: http://1drv.ms/1woCbS5

и вставьте его в текстовый редактор и сохраните как файл .sh . Затем необходимо сделать файл исполняемым с помощью chmod 755 filename.sh . Если у вас есть какие-либо сомнения, пожалуйста, прокомментируйте.

Я получил этот код от https://askubuntu.com/questions/56104/how-can-i-install-sun-oracles-proprietary-java-jdk-6-7-8-or-jre .

Но поскольку он содержал JDK 7, я попал в JDK8. Убедитесь, что папка /usr/lib/jvm удалена с помощью rm -rf jvm-folder-path .

-2
28.01.2020, 02:12

Проблема заключается в том, что переменная окружена двойными кавычками («»). Уберите его, и все будет хорошо.

    VAR="This displays with \
    extra spaces."
    echo ${VAR}

Вывод

 This displays with extra spaces.

Проблема заключается в том, что двойная кавычка переменной сохраняет все символы пробела. Это можно использовать в случае явной необходимости.

Например,

$ echo "Hello     World    ........ ...            ...."

напечатает

Hello     World    ........ ...            ....

А при удалении кавычек другой

$ echo Hello     World    ........ ...            ....
Hello World ........ ... ....

Здесь Bash удаляет лишние места в тексте, потому что в первом случае весь текст принимается как «единственный» аргумент и, таким образом, сохраняет лишние места. Но во втором случае команда echo получает текст в качестве 5 аргументов.

Цитирование переменной также будет полезно при передаче аргументов командам.

В приведенной ниже команде echo получает только один аргумент как «Hello World»

$ variable="Hello World"
$ echo "$variable"

Но в приведенном ниже сценарии echo получает два аргумента как Hello и World

$ variable="Hello World"
$ echo $variable
-121--7324-

Порт 443 HTTPS. Выходные данные netstat :

tcp6       0      0 [::]:https              [::]:*                  LISTEN

Ясно, что процесс прослушивает 443 порта. Чтобы подтвердить, является ли указанный выше процесс процессом Apache (httpd), необходимо выполнить команду как root. Вместо этого используйте ss , поскольку netstat устарел:

# ss -tlnp
-121--52602-

Я не совсем уверен в этой проблеме, но похоже, что ваши зависимости разорваны или список пакетов устарел.

1) Попробуйте обновить список пакетов:

sudo apt-get update

2) И проверьте свои зависимости:

sudo apt-get check

3) Есть ли некоторые нарушенные зависимости:

sudo apt-get clean
sudo apt-get autoclean
sudo apt-get remove
sudo apt-get autoremove

4) Вернуться к шагам 1) и 2)

Если они все еще не работают, попробуйте найти и установить пакет из Synaptic package manager.

0
28.01.2020, 02:12

Вы также можете использовать репозиторий WebUpd8 :

Сначала обновите свою систему:

sudo apt-get update
sudo apt-get upgrade

И если нет проблем, вы можете добавить этот репозиторий :

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

Это также добавит JAVA_HOME в ваш PATH.

1
28.01.2020, 02:12

Теги

Похожие вопросы