Как стать автором
Обновить

Комментарии 34

Идея заключается в том, что создаваемый комплекс должен вести некоторую
обработку файлов и выдавать файловый же результат. То есть он должен
вести себя, как консольная программа.

Для это достаточно docker'a. Безо всяких приседаний.

И работать будет везде: от Windows до МАС.

Вот только он платный нынче под Винду)

И?

Винда сама бесплатная что ли? Если уж вы выбрали проприетарную платформу, то что теперь уж..

А в win7, кстати, есть встроенный Hyper-V? Я не оч просто в курсе. Потому как докер под виндой, насколько я знаю, работает или поверх WSL, которого очевидно не будет, или поверх Hyper-V

есть

Нет. Только в Windows 8 появился.

Не пользуюсь давно виндой
На нашел прайс на докер для винды
Можно ссылку пожалуйста?)

Докер требует VT-x и установки. Данное решение работает (очень не быстро, но это и не нужно было) без обоих этих условий. А устанавливать ещё и запрещено было.

А разве нельзя собрать под msys2 нативную программу? Там же есть mingw-gcc. Руками собирать ничего не надо. Несколько библиотек рядом с exe положить и вроде всё.

Сейчас у msys2 очень большие проблемы. Они судя по всему не справляются с проверкой базы пакетов. Поэтому они вообще перестали их подписывать. Ставьте на свой страх и риск. Дак вот страх и риск действительно есть. В пакетах встречаются вирусы.

Дайте, пожалуйста, где про это можно почитать и отслеживать ситуацию. Спасибо!

А судя по всему нигде. Я сам очень люблю этот проект. У меня давно развёрнута система на его базе с раздутым тулчейном, из которой я при помощи pacman'а извлекаю достаточные для конкретных продуктов подсистемы. И вот как-то раз я решил развернуть новую. Каково же было моё удивление, когда система после установки отказалась обновляться, ругаясь на ключи. Систему я все таки развернул, отключив проверку ключей, но вот антивирус ругался на неё изрядно. Вы можете проделать тот же эксперимент.

У меня инсталляция msys2 есть, Windows defender на неё не ругается. Вы уверены, что у вас не false positive?

PS а как это - из одной системы msys2 с помощью pacman извлекать другие системы?

Ключи могли и устареть, если их не обновлять регулярно.

Ключи не могли устареть. Это была свежая установка с только что скачанного инсталлера.

А на тему извлечения систем, нужно создать свой пакет с помощью PKGBUILD, примерно так:

_realname=example
pkgbase=mingw-w64-x86_64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=0.0.1
pkgrel=1
arch=('x86_64')
pkgdesc="Multi-complete-set keyless selflearning decrypter (mingw-w64)"
depends=("${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme"
         "${MINGW_PACKAGE_PREFIX}-gsettings-desktop-schemas"
         "${MINGW_PACKAGE_PREFIX}-gtkmm3"
         "${MINGW_PACKAGE_PREFIX}-intel-tbb"
         "${MINGW_PACKAGE_PREFIX}-sqlite3"
         "${MINGW_PACKAGE_PREFIX}-gcc-libs"
         )
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc"
             "${MINGW_PACKAGE_PREFIX}-cmake"
             "${MINGW_PACKAGE_PREFIX}-pkg-config")
license=("MIT")
source=("${_realname}.tar.xz")
md5sums_placeholder

#prepare() {
#}

build() {
  [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST}
  mkdir -p build-${MINGW_CHOST} && cd build-${MINGW_CHOST}
  ${MINGW_PREFIX}/bin/cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_GENERATOR="Unix Makefiles" -DCMAKE_INSTALL_PREFIX="${pkgdir}"${MINGW_PREFIX}
  make -j4
}

package() {
  cd "${srcdir}/build-${MINGW_CHOST}"
  DESTDIR="${pkgdir}${MINGW_PREFIX}"
  make install
}

А потом выполнить примерно такой скрипт для его установки в отдельную, специально для него подготовленную систему:

# Создаём внешнюю систему.
pacman -Sy
pacman -Syu --root "/e/projects/example

# Устанавливает новую версию пакета с необходимыми зависимостями в систему msys2.
CURRENT_DIR=${PWD}
_new_root="/e/projects/example"
pacman -Sy
#install_package
pacman --root ${_new_root} --cachedir /var/cache/pacman/pkg --dbpath /var/lib/pacman --config /etc/pacman.conf -Sy
pacman --root ${_new_root} --cachedir /var/cache/pacman/pkg --dbpath /var/lib/pacman --config /etc/pacman.conf -S  mingw-w64-x86_64-example

# Создаём *.bat запускаторы для винды.
rm -f ${_new_root}/run_example.bat
echo "cd mingw64\bin" >> ${_new_root}/run_example.bat
echo "start example.exe" >> ${_new_root}/run_example.bat
echo " " >> ${_new_root}/run_example.bat

cd ${CURRENT_DIR}"

Получается система, минимально необходимая для собранного проекта с удобными .bat запускаторами для винды. Весит это всё равно довольно много, но меньше на msys2 сделать сложно. Только руками резать библиотеки, в которых на 100% уверен, что они не нужны.

А cloud-init или аналогов под Manjaro нет?

есть, но это не потянет на статью про буханку и тролейбус)

Запускалка под винду вполне себе полезна, и несет новизну

Тут скорее вкусовщина. Я хотел сделать максимум работы тыкая кнопочки в удобном графическом интерфейсе на линуксе под kvm. От этого конечно огрёб необходимость удаления лишних пакетов. Но опять-таки это само по себе было интересным опытом.

# Проверяем на включенность виртуализации и предупреждаем пользователя, если что.
if len(set(cpuinfo.get_cpu_info()['flags']).intersection({'vmx', 'svm'})) > 0:
cpu = '-enable-kvm -cpu host'


а каким образом флаг -enable-kvm должен помочь под виндой, где kvm нет и быть не может?
Я за вами постою подожду ответа, можно? Я джва года ждал эту фичу… )
Не сильно вдавался в подробности, но вроде как под винду существует некий intel haxm, который делает тоже самое, что и kvm под линуксом.
Но незаметно использовать его не получится, т.к. он должен устанавливаться как драйвер.

Никак. Код был скопипащен с линуксового теста. В статье всё исправлено.

Теоретически можно использовать vagrant для тех же целей. Запихнуть в свой сетап дистриб virtual box. Не думаю, что пользователь сильно обидется. Туда же можно подптхнуть уже готовый образ виртуалки. Команды в консоле можно выполнять через vagrant ssh.

Virtual Box нужно устанавливать. Это противоречит базовой концепции.

Здравствуйте, давно хотелось спросить, сколько вы непосредственно пишете код программ при 10-часовом рабочем дне. Ну скажем, в офисе??

Очень странно сформулированный вопрос. Тем более, что не по теме. Но если предположить, что вопрос задаёт человек, желающий найти работу в области IT, и прикидывает как и чем ему придётся заниматься, то это очень сильно зависит от того, куда Вы попадёте. Мне повезло, и я никогда не был программистом, выполняющим конкретное задание в стиле за N часов тебе нужно написать K функций согласно ТЗ. Но в любом случае, на старте карьеры всё зависит от образования и места работы. Плюс одно и то же действие разные люди делают за разное время. Так что свой вопрос Вы можете задать себе из будущего.

Использовать qemu на Windows без VM acceleration?
Ну хотя бы так (HAXM) и (WHPX):

https://developer.android.com/studio/run/emulator-acceleration#vm-windows

На Virtualbox скорость работы с vm нормальная.
Настраиваешь в фоне с автозагрузкой и управляешь через терминал (VBoxManage list vms)
Пользовался на 7-ке лет 8-10 назад. Правда и ушел тогда окончательно на Linux и KVM.

https://www.google.com/search?q=Как+запустить+Virtualbox+как+сервис+в+windows+7
VBoxHeadlessTray
https://www.toptensoftware.com/vboxheadlesstray/
vboxsvc - VirtualBox SMF service wrapper
https://sourceforge.net/projects/vboxsvc/
VBoxVmService
https://github.com/onlyfang/VBoxVmService

Ну и:

dd if=/dev/zero bs=1M of=zero.temp ; sync; rm zero.temp

Весь вопрос в том, чтобы ничего не устанавливать. А конкретная задача была не особо требовательна к ресурсам и выполнялась и так. Если бы нужно было что-то серьёзное вычислять, то да. Я не утверждаю, что решение годится для повсеместного использования.

А вот про dd я кое чего не понял. bs=1M, это судя по всему для ускорения. А вот sync зачем? Я так понимаю, что перед началом следующей операции (в данном случае это удаление), предыдущие должны быть завершены полностью. Или тут есть нюансы? В тестах всё работало, но возможно разные файловые системы могут вести себя по разному.

Команда dd

sync — режим записи данных и метаданных с синхронизацией (повышает надежность).
Лучший вариант для меня:
dd if=/dev/zero of=/var/tmp/bigemptyfile bs=4096k ; sync; rm /var/tmp/bigemptyfile

Спасибо!

А зачем так сложно? Линукс-сервер в сети и win-клиенты. Не ?

Не в сложившихся реалиях. Если бы было, как нужно, был бы только линукс.

И да. Нет сети.

Извините за то, что ответил разом на все комментарии месяца через два после появления вопросов. К сожалению, так сложились обстоятельства.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации