Category Archives: Linux

UbuntuにQt開発環境をインストールする

Ubuntuのバージョン確認

ここからインストーラーをダウンロード。ここではqt-unified-linux-x64-4.6.0-online.runをダウンロードした。

実行権限を与えて実行

なんかエラーが出たので不足しているであろうライブラリをインストール。

インストーラーが起動した。

適当にチェックしてインストール。自分の場合は5.15.2をインストールする。

インストールが終わると、指定したディレクトリにインストールされる。再びインストーラーを起動したい場合は、MaintenanceToolを実行する。Qt CreatorTools/QtCreator/bin/qtcreatorにある。

しかしビルドするとエラーが出る。g++やmakeをインストールする。

さらにldで-lGlでエラーなどが出る。これはglライブラリがないためリンクエラーになるので、インストールする。

curlを使ったダウンロードが途中で終わったファイルのレジューム

ダウンロードが途中で終わったファイルを続きからダウンロードする方法。
Linuxのコマンドでやっている。

まずファイルの終わり際を少し削除する

このコマンドはファイルを9444000000バイトで区切って分割する。file.isoのサイズはこの値より少し大きいサイズになっている。つまり元のサイズの終わり際を少し削除している。

-bはバイナリ指定。
サイズにはKやMなどの単位をつけることもできる。

curlでダウンロードしてみてファイル名を変える

ダウンロードに成功するとファイル名が分かるので、すぐ終了してから、先ほどの区切った先頭のファイルをこの名前にリネームする。

-Lはリダイレクトする、-Oはファイルを保存。

レジュームする

サイズ9444000000のfile.isoがある状態で以下を実行。

成功すれば続きからダウンロードされる。成功するかどうかはサーバー次第なので常に成功するとは限らない。

-Cはレジューム。-C -だと現在のファイルサイズを見てレジュームする。

Linuxでdotnetをやってみる

インストール

いろいろなインストール方法があるようだが最も原始的なshファイルをダウンロードして実行する方法で行う。

これで~/.dotnet/にインストールされる。しかしパスが張られないので自分でやる必要がある。

これで使えるようになった。使えるようになったかテスト。

sdk,runtimeともに6.0.1がインストールされた。sdkは開発ツール、runtimeは実行環境。

コンソールアプリをつくる

つれくた。Program.csはC#のソースファイル、dntest.csprojはプロジェクトファイル。

実行してみる

できた

GUIアプリをつくってみる

WindowsではWinFormを使ったGUIアプリをつくれるが、Linuxではつくれない。そこでavaloniaというライブラリを利用してGUIアプリをつくってみる。まずはavaloniaテンプレートをインストールする必要がある。このテンプレートがあると新規アプリがつくれる。

つくれた。axamlファイルはウインドウの定義ファイル。

実行してみる

ランタイムの5.0がないため実行できないようだ。先程確認したように、今は6.0しかインストールされていない。

5.0をインストール

SDK、ランタイムとも5.0がインストールできた。

再び実行してみる

エラーが出てしまった。ここでは以下のようにして実行できた。

どうやら日本語環境だとエラーがでてしまうようだ。

XPからsambaに接続できない

バージョン確認

直ったやつ

/etc/samba/smb.confに以下を追加。

bashで自分のグローバルIPを取得する

現在のインターネット環境では自分のPCのIPはプライベートIPの場合が多いので、自分のPCにはグローバルIPは設定されていない。グローバルIPが設定されているのはその先のルーターなのでルーターから取得することもできるだろうが、ルーターはパスワードが必要なのでここではスルー。

http://checkip.dyndns.com/にアクセスするとアクセス元つまり自分のIPを返してくれる。よってここからIPを取得すればいい

w3mはテキストブラウザ、-dumpは出力して終わる。-oはマッチした部分を返す。-PはPerl互換の正規表現。\dは数字にヒット+は連続の数字にヒット、\..をエスケープ。

なおこのスクリプトだとw3mがIPをいくつも返したとき全部取得してしまうので最初の1つだけを取得したい場合は head -n 1などをさらにパイプでつなげる。

ubuntu20で固定IPにする

バージョン確認

Ubuntu20ではNetplanを使ってネットワーク設定を管理していて、実際の設定作業はNetworkmanagerかSystemd-networkdを使っている。前者はデスクトップ、後者はサーバで使われる。ただしcloud-initが有効になっていればそれを使う。設定作業を行うプログラムをレンダラーとかバックエンドと呼ぶ、デフォルトではSystemd-networkdでnetplanの設定ファイルでレンダラーを指定できる。レンダラーと設定を分けることで設定を一つにすることができる。

/etc/netplan/配下にIPの設定がある。
固定IPの場合は例えば以下のようになっている。

設定を反映するには以下のコマンドを使う

現在のIPを見るには以下のコマンド

VMwareのゲストのWindows10にWSL2のubuntuがインストールできない

Error: 0x80370102 The virtual machine could not be started because a required feature is not installed.

このエラーはゲストのvmxに以下の設定を記述する。

Error: 0xc03a001a The requested operation could not be completed due to a virtual disk system limitation. Virtual hard disk files must be uncompressed and unencrypted and must not be sparse.

ubuntuをインストールするフォルダがntfs圧縮されているとインストールできない。以下のフォルダの圧縮を解除する。

wchar_tとchar16_t

char

C言語の最初のキャラクタータイプ。1バイト。ASCIIやISO-8859に使う。UTF8やShiftJISなどでも使う。Windowsの場合は通常マルチバイト文字と呼ばれるシステムの言語設定を反映した各国で異なる文字列になる。日本語のWindowsではShiftJISが入る。しかし今ではWindowsでは通常wchar_tを使いcharは使わない。Linuxでは通常UTF8を使うのでcharにはUTF8が入る。

wchar_t

次にできたキャラクタータイプ。サイズは実装依存。Windowsでは2バイト、Linuxでは4バイトになるので注意。何が入っているかも実装依存。WindowsではUTF16-LE。Linuxでは通常使用しないが、多分UTF32-LEが入っている。エンディアンはCPU依存と思われる。

char16_t, char32_t

2バイトと4バイトのキャラクタータイプ。何が入るかは実装依存。

リテラル

リテラルを表すには文字列の前に1~2文字の記号をつける。

標準ライブラリの文字列型

基本的にはbasic_stringなので、これに文字型を渡して
typedefしている。

標準入出力

string用のcoutとwstring用のwcout以外は定義されていないようだ。

Windowsのchar16_t

Windowsではwchar_tchar16_tはともに2バイトなのでキャストできるのだろう。

参考:実装ごとのサイズ

wchar_tのサイズがWindowsとLinuxで違う。