LINUX.ORG.RU

Безглючность Apple Swift 4.2 под Debian 9.4

 , , , ,


1

2

Скачал Swift for Ubuntu 18.04, https://swift.org/download/

Скопировал в /usr/local/ под Debian 9.4, не захламляя каталог /usr

$ tar zxf swift-4.2-RELEASE-ubuntu18.04.tar.gz
$ cd swift-4.2-RELEASE-ubuntu18.04/
$ ls -l usr/
итого 24
drwxr-xr-x 2 anonymous anonymous 4096 сен 13 02:23 bin
drwxr-xr-x 3 anonymous anonymous 4096 сен 13 02:22 include
drwxr-xr-x 6 anonymous anonymous 4096 сен 13 02:23 lib
drwxr-xr-x 3 anonymous anonymous 4096 сен 13 02:23 libexec
drwxr-xr-x 3 anonymous anonymous 4096 сен 13 02:23 local
drwxr-xr-x 4 anonymous anonymous 4096 сен 13 02:22 share
673 MBytes
$ mv * /usr/local/

Кто-нибудь пробовал? Не крэшится, нормально работает под дебиан?

$ swift
Welcome to Swift version 4.2 (swift-4.2-RELEASE). Type :help for assistance.
  1> print("abc")
error: Couldn't lookup symbols:
  swift_bridgeObjectRelease
  Swift.print(_: Any..., separator: Swift.String, terminator: Swift.String) -> ()
  Swift._allocateUninitializedArray<A>(Builtin.Word) -> (Swift.Array<A>, Builtin.RawPointer)
  Swift.String.init(_builtinStringLiteral: Builtin.RawPointer, utf8CodeUnitCount: Builtin.Word, isASCII: Builtin.Int1) -> Swift.String
  default argument 1 of Swift.print(_: Any..., separator: Swift.String, terminator: Swift.String) -> ()
  default argument 2 of Swift.print(_: Any..., separator: Swift.String, terminator: Swift.String) -> ()
  type metadata for Swift.String
  swift_release
  type metadata for Any
  swift_retain

  1> var a = 1
a: Int = 1
  2> print(a)
error: Couldn't lookup symbols:
  type metadata for Swift.Int
  Swift.print(_: Any..., separator: Swift.String, terminator: Swift.String) -> ()
  swift_beginAccess
  Swift._allocateUninitializedArray<A>(Builtin.Word) -> (Swift.Array<A>, Builtin.RawPointer)
  swift_endAccess
  swift_bridgeObjectRelease
  default argument 1 of Swift.print(_: Any..., separator: Swift.String, terminator: Swift.String) -> ()
  default argument 2 of Swift.print(_: Any..., separator: Swift.String, terminator: Swift.String) -> ()
  swift_release
  type metadata for Any
  swift_retain

  2>  

Или надо обязательно в каталог /usr/ кидать?

Почему в Apple не догадались опакетить компилятор (deb, rpm)?

Ответ на: комментарий от anonymous

Это open-source компилятор под лицензией Apache 2.0.

Mirage1_
() автор топика

Кто-нибудь пробовал? Не крэшится, нормально работает под дебиан?

Для отзывов лучше сделайте поиск в google.

Хорошо, что вы обратили внимание на Swing. У меня фирма Apple вызывает такое отвращение, что я не ознакомился с ним ни в какой степени. Но оказалось, что теперь это открытый проект, и есть версия для Linux. Это меняет дело. Во всяком случае, есть смысл ознакомиться.

Почему в Apple не догадались опакетить компилятор (deb, rpm)?

Если кратко: вам надо - вы и опакечивайте (догадалась фирма Apple). Смотрю список дистрибутивов. Там есть дистрибутив для Ubuntu 18.04. Но и он не в виде пакета deb, а как архив tar.gz. Может, и будет работать в другом дистрибутиве - проверяйте. Авторы проверили только в Ubuntu 18.04, остальное - ваше дело. Но то, что дистрибутив проверен в Ubuntu 18.04 - не случайно. Это наиболее популярная версия для разработки. Впрочем, я только обращаю внимание, а не призываю переходить.

Или надо обязательно в каталог /usr/ кидать?

Надо обязательно смотреть инструкцию по установке. В каталог /usr кидать не только не обязательно, но и невозможно, потому что это папка, а не каталог. Ну, смотрю инструкцию по установке:

if you installed the Swift toolchain on Linux to a directory other than the system root, you will need to run the following command, using the actual path of your Swift installation:

$ export PATH=/path/to/Swift/usr/bin:«${PATH}»

Перевожу: если вы установили эту фигню в иной справочник (directory), нежели системный корневой справочник, то добавьте в PATH путь к подсправочнику usr/bin того справочника, куда вы поместили Swift.

Тут нет ошибки: справочник (directory) является частным случаем папки (folder), поэтому каждая папка в Linux одновременно является справочником. Но конечно не каталогом - каталоги на магнитной ленте.

В этом пункте иструкции имеется ввиду, что если вы разархивируете Swift не в /usr/bin (в результате чего у вас появится программа /usr/bin/swift - я посмотрел содержимое архива), то надо добавить в PATH путь до swift. В /usr/bin и так стоит много чего, поэтому может захотеться поставить в другое место, например, в /opt или в свой home или ещё куда (есть рекомндации, куда ставить посторонние программы, но они неоднозначные. В общем, Swift не предъявляет специальных требований, так что ставьте, куда хотите). Но тогда папку со swift добавить в PATH (если она не /usr/bin - там и так найдётся).

Partisan ★★★★
()
Ответ на: комментарий от BMX

можно прямо из-под линукса, производительность хорошая - я проверял

вот ссылка: https://github.com/kholia/OSX-KVM

можно даже на серваке поднять, а потом хоть из-под винды подключаться через virt-viewer по SPICE/VNC

BMX ★★☆
()
Последнее исправление: BMX (всего исправлений: 1)
Ответ на: комментарий от Partisan

потому что это папка, а не каталог.

если вы установили эту фигню в иной справочник

Избавьте его кто-нибудь от страданий.

Miguel ★★★★★
()
Ответ на: комментарий от BMX

проще будет хак завести, наверное

Да макбук-то у меня есть...

Я просто захотел посмотреть на Swift 4 под Debian. Мне под Дебиан работать удобнее, тут клавиатура более-менее привычная, похожа на маковскую (Logitech K280e). На Apple Magic Keyboard пока денег нет.

В общем, вчера сделал по этой доке: https://www.cansurmeli.com/posts/install-swift-on-debian/

$ sudo apt-get install git cmake ninja-build clang python uuid-dev libicu-dev icu-devtools libbsd-dev libedit-dev libxml2-dev libsqlite3-dev swig libpython-dev libncurses5-dev pkg-config libblocksruntime-dev libcurl4-openssl-dev systemtap-sdt-dev tzdata rsync

$ mkdir swift-source
$ cd swift-source
$ git clone https://github.com/apple/swift.git

$ pushd swift
$ git checkout swift-4.2-branch
$ popd

$ ./swift/utils/update-checkout --clone

$ sudo apt-get install swig/testing

$ swift/utils/build-toolchain org.swift

$ tar zxf swift-LOCAL-2018-10-11-a-osx.tar.gz

$ sudo mkdir /usr/local/share/swift
$ sudo mv usr /usr/local/share/swift/

$ sudo vi /etc/profile
# logout and login
$ echo $PATH
/usr/local/share/swift/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

$ swift
Welcome to Swift version 4.2-dev (LLVM 198f9f2028, Clang 3fa7fc97ed, Swift 326e5642ea).
Type :help for assistance.
  1> var a = 123
a: Int = 123
  2> print(a)
123
  3>  
  4> :q

Сорри, что задел чьё-то ЧСВ (Партизан, Мигель). Привык общаться он-лайн, я не гугло-интроверт.

Mirage1_
() автор топика

У меня swift 4.2 не заработал под debian 9.4, были тоже глюки. Заработала версия по-моему 4.1.3 для ubuntu 16.10. Просто перебирал все подряд. А глюк, например был такой, не мог собрать простейший модуль: swift package init swift build

microbash
()
Ответ на: комментарий от Partisan

В каталог /usr не все могут кидать. Вернее, кидать могут не только лишь все. Мало кто может это делать.

anonymous
()
Ответ на: комментарий от Partisan

В каталог /usr кидать не только не обязательно, но и невозможно, потому что это папка, а не каталог.

Иди ты, старый перечень.

t184256 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.