Pull to refresh

Comments 34

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

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

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

И?

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

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

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

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

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

UFO landed and left these words here

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

UFO landed and left these words here

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

UFO landed and left these words here

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

А на тему извлечения систем, нужно создать свой пакет с помощью 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-клиенты. Не ?

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

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

Sign up to leave a comment.

Articles