アカウント名:
パスワード:
Cygwinのapt-cygの挙動が分かりやすいが、Windowsは現在使用中のファイルの更新ができない。つまりaptやbrewと違い、wingetでwingetの更新はできないし、Windows Terminalから呼び出したのならWindows Terminalの更新も失敗し、同様の理由からアンインストールも失敗する。いつもの再起動後に云々のメッセージダイアログが表示され、たかがひとつふたつのアプリの更新如きに再起動を要求されることだろう。セットアップを自動化したいのならDOS時代のSHARE.exeより続くファイル管理の仕方から修正しないとムリ。
逆だよ、Windowsでは古くからファイルのmandatoryな排他ロックが完全かつセキュアに実装されているが、伝統的なUNIX/Linuxでは実装されていなかったの(最近はいろいろ事情が違うが)。
ディスク上の実行ファイルや共有ライブラリだけ更新されても、実行中のプロセスが更新されるわけではない。実行プロセスを再起動せずに使い続けると、部分的に更新されたディスクファイルを読み取ることで、あらゆる予期しない不整合が発生する可能性がある。だからWindowsの方法はセキュアで正しいものだ。UNIX/Linuxの便利さは見せかけだけで、危険で不完全な方法だよ。
エンジニアとして二流なくせにウェーイ系ITムラ社会の風潮に乗せられて安易にWindows叩きなんかするから、こういう恥ずかしい批判をしてしまうのだ。
ファイルをロックするのとファイル名をロックするのは別じゃん。「最近」がいつかは知らんけど、UNIXでも実行中のファイルは書き換えられなかったけどな。(実行中のファイルの名前で新たなファイルを作ることはできる)書き換えられるやつもあったのはたしか。
GNU/Linuxはだいたいrm /bin/rmできるそれをどう優れてると宣うべきかは知らんが
rm /bin/rmができることと#3819560のいう「(実行中のファイルの名前で新たなファイルを作ることはできる)」はだいたい同じこと言っているのではないか。
rmというかunlink(2)がすぐにやることは親ディレクトリから当該ファイルのエントリを消すこと。その結果、とりあえず削除されたように見える。ただ、元のファイルがオープン中だったら、OSカーネルとディスク上にはまだファイルの実体が存在している。全部クローズされたら削除される。
なお、Windowsでも「実行中のファイルの名前で新たなファイルを作ることはできる」は一応実現できる。オープン中のファイルの削除はできないがリネームはできるので、リネームすれば元と同じ名前のファイルを新たに作成できる。リネームした古いファイルは後ほど適当なタイミングで削除すればよい。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ハッカーとクラッカーの違い。大してないと思います -- あるアレゲ
パッケージ管理ツールの前にファイル管理の仕方からやり直せ (スコア:0)
Cygwinのapt-cygの挙動が分かりやすいが、Windowsは現在使用中のファイルの更新ができない。
つまりaptやbrewと違い、wingetでwingetの更新はできないし、Windows Terminalから呼び出したのならWindows Terminalの更新も失敗し、同様の理由からアンインストールも失敗する。
いつもの再起動後に云々のメッセージダイアログが表示され、たかがひとつふたつのアプリの更新如きに再起動を要求されることだろう。
セットアップを自動化したいのならDOS時代のSHARE.exeより続くファイル管理の仕方から修正しないとムリ。
Re: (スコア:1)
逆だよ、Windowsでは古くからファイルのmandatoryな排他ロックが完全かつセキュアに実装されているが、
伝統的なUNIX/Linuxでは実装されていなかったの(最近はいろいろ事情が違うが)。
ディスク上の実行ファイルや共有ライブラリだけ更新されても、実行中のプロセスが更新されるわけではない。
実行プロセスを再起動せずに使い続けると、部分的に更新されたディスクファイルを読み取ることで、あらゆる予期しない不整合が発生する可能性がある。
だからWindowsの方法はセキュアで正しいものだ。UNIX/Linuxの便利さは見せかけだけで、危険で不完全な方法だよ。
エンジニアとして二流なくせにウェーイ系ITムラ社会の風潮に乗せられて安易にWindows叩きなんかするから、
こういう恥ずかしい批判をしてしまうのだ。
Re: (スコア:0)
ファイルをロックするのとファイル名をロックするのは別じゃん。
「最近」がいつかは知らんけど、UNIXでも実行中のファイルは書き換えられなかったけどな。
(実行中のファイルの名前で新たなファイルを作ることはできる)
書き換えられるやつもあったのはたしか。
Re: (スコア:0)
GNU/Linuxはだいたいrm /bin/rmできる
それをどう優れてると宣うべきかは知らんが
Re:パッケージ管理ツールの前にファイル管理の仕方からやり直せ (スコア:1)
rm /bin/rmができることと#3819560のいう「(実行中のファイルの名前で新たなファイルを作ることはできる)」はだいたい同じこと言っているのではないか。
rmというかunlink(2)がすぐにやることは親ディレクトリから当該ファイルのエントリを消すこと。その結果、とりあえず削除されたように見える。ただ、元のファイルがオープン中だったら、OSカーネルとディスク上にはまだファイルの実体が存在している。全部クローズされたら削除される。
なお、Windowsでも「実行中のファイルの名前で新たなファイルを作ることはできる」は一応実現できる。オープン中のファイルの削除はできないがリネームはできるので、リネームすれば元と同じ名前のファイルを新たに作成できる。リネームした古いファイルは後ほど適当なタイミングで削除すればよい。