Zenn
🌊

ubuntuでどうしてもswift開発がしたかった話(反省談)

2022/01/15に公開

いきなり結論:
linuxbrewを導入して、ビルドしたライブラリはlinuxbrewで内しか使えないという話。

詳細:
ubuntuのhome直下に

ユーザーフォルダ
linuxblew

2つのユーザーフォルダができることになり、ユーザーはubuntuのライブラリから。
linuxblewは、linuxbrewのライブラリから。
それぞれビルドとは異なる別々cmakeやpythonを引っ張ってくることになります。

例:
例えば、linuxbrewでopencvをC++でビルドしたものを
t13row(ユーザー)側で使って、また別のモノを作る(もしくは使用)しようとすると
こうなります。

これを見ると、『numpyのバージョンが違うだけじゃねぇの?』と思う方もいるかもしれませんが、linuxbrewでビルドしたopenCVで、ubuntuのpythonライブラリを呼び出すと、こうなるんでねぇ・・・

要は、何が言いたかっていうとubuntu内でbrewを導入すると、
こういう弊害がありますよっていう話。
ちなみにMacOSX-sdk各種も試しました
https://github.com/phracker/MacOSX-SDKs

ubuntuでのモバイル開発は、dartとFlutter(android)には向いてるけど、
iosの開発は無理があるとしみじみと思った。

確かに、bash(シェル)上で
swiftのコンパイルやビルド、デバッグはできるけど、
linuxbrewは効率悪すぎると身を持って反省。

ちなみに、swiftenvを使っても
現行のUbuntu22.04には対応してない模様。
※2022.1.15現在

後処理:
linuxbrewを削除すると、何故か優先的にpython-swiftclient 3.13.0 が採用され、『ワイのswiftどこ行ったの?』ってことで、swift --versionで探すとpython-swiftが優先されて呼び出されているので、改めて最新版をインストール。
(懲りてないんかいw)

・swiftの再インストール手順(一番シンプルなやり方)

swift公式から
https://www.swift.org/download/

https://qiita.com/n0bisuke/items/f62e8f425fc20ede6ffc

上記のやり方でもいいのですがシンプルに
ダウンロード⇒/usr/local内にswiftというフォルダを作成

sudo mv swift-5.5.2-RELEASE-ubuntu20.04.tar.gz /usr/local/swift

ダウンロードしてきたパッケージを解凍せずにusr/localに移動後、解凍

(たぶんホーム内でもPATHを通せば使えるだろうけど1手間惜しまず)

.bashrc直下に

export PATH=/usr/local/swift/swift-5.5.2-RELEASE-ubuntu20.04/usr/bin

を記入して保存

vscode内でも、ちゃんと動作することを確認
(ドット・インストールで勉強中ですわせん💦)
https://dotinstall.com/lessons/basic_swift_v2/39125

・・・とまぁ、Ubuntuでswiftやったり、Unrialengineやったりしてみたんですけど、ゲーム開発はwindowsの方がDirectXの画質が一番だし、iphoneアプリはMacの方がいいと思った。

パラレルデスクトップ流行ってるけど
『餅は餅屋に』任せたほうがいい。

virtualboxとかvmware両方使ってみたけど、自分には合わなかった。
動作のラグがストレスで。
https://www.vmware.com/

動作を軽くする方法⬇自己責任で
https://aresei-note.com/8253

あと各種エミュレーターサイト(使いたい人いたら)
https://app-live.browserstack.com/dashboard#os=iOS&os_version=14.0&zoom_to_fit=true&full_screen=true&speed=1

ちなみに、anacondaやAWSその他から、デプロイされたcmakeやpythonなどを使ったビルドでも同じことは起こり得るらしい。

要は、OS純正のcmakeと他のcmakeやpythonが同居してると、エラーの元になるから注意しようね。と言いたい。

Discussion

ログインするとコメントできます