2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

Linux使ってみて普及するわけないと思った時89

1 :login:Penguin:2016/10/30(日) 09:56:12.66 ID:mEpRJ6Ty.net
前スレ
Linux使ってみて普及するわけないと思った時88
http://hayabusa6.2ch.net/test/read.cgi/linux/1471413499/

今回もマック信者が憤死するの?

281 :login:Penguin:2016/11/12(土) 12:46:11.78 ID:BREaCxQc.net
不具合は自分の知識でなんとかしてね^^ これがLinux 普及するわけないよね

282 :login:Penguin:2016/11/12(土) 13:59:12.26 ID:dYHyduvS.net
linuxのライブラリ管理が優れていたらandroidはjavaモドキにならなかっただろ

283 :login:Penguin:2016/11/12(土) 14:00:27.29 ID:cXsceqFW.net
>>281
Windowsフォーラムでおま環と言われたのと同じだな。

284 :login:Penguin:2016/11/12(土) 14:04:33.80 ID:7JwZfOJ3.net
>>280
その仕組の問題点が、libfoo.so.1 という名前で使われるのが 実際には
libfoo.so.1.1.1 なのか libfoo.so.1.1.2 なのかがアプリケーションではわからず
互換性があるという事になっているが、なかった場合にアプリケーションが正しく動かない原因になるんだよ。

Windows ではすべてのバージョンの違いに対して互換性があるとは限らないという
前提に立っており、アプリケーションごとにどのバージョンを使うかを指定できるんだよ。
これはビルド時だけで決められるわけじゃなくて、実行ファイル名.manifestというファイルを
作ることでビルドすること無く後から変更することだってできる。

https://msdn.microsoft.com/ja-jp/library/ms235531.aspx
> 発行者構成ファイルは、発行者ポリシー ファイルとも呼ばれる XML ファイルです。これは、あるバージョンの
> side-by-side アセンブリを使用するアプリケーションおよびアセンブリを、同じアセンブリの別のバージョンを
> 使用するようにグローバルにリダイレクトします。
> たとえば、バグ修正やセキュリティの変更が side-by-side アセンブリに配置され、修正したバージョンを
> 使用するようにすべてのアプリケーションをリダイレクトする場合に、依存関係を変更できます。
>
> アプリケーション構成ファイルは、あるバージョンの side-by-side アセンブリを使用する独自のアプリケーションを、
> 同じアセンブリの別のバージョンを使用するようにリダイレクトする XML ファイルです。
> アプリケーション構成ファイルを使用すると、グローバル発行者構成ファイルで定義されているバージョンとは
> 別のバージョンの side-by-side アセンブリを使用するように、特定のアプリケーションをリダイレクトできます。

アプリケーションごとっていうのが重要で、アプリケーションAではlibfoo.so.1.1.1を使うが、
アプリケーションBではlibfoo.so.1.1.2を使うってことができる。
libfoo.so.1という名前を使っている以上、それは全てのアプリで共有する情報で
一つのアプリのためにシンボリックリンクを変更すると、他のアプリにも影響が出る。

285 :login:Penguin:2016/11/12(土) 14:27:27.08 ID:ZJ2C4+tA.net
>>284
> libfoo.so.1.1.1 なのか libfoo.so.1.1.2 なのかがアプリケーションではわからず
だーーーかーーーーらーーーーーー、ホント頭わりーな

libfoo.so.1.1.1 と libfoo.so.1.1.2 が両方同じsonameなんだったらそれは互換性があることを表してるの
もし互換性がないのに同じsonameなんだったらそれはバグだからレポートすれば良い
(あるいはテスト段階のいつでも互換性崩すよってなってるシンボルの変更だったりなんか意図があっての場合ももちろんあるが)
だからそもそも各アプリケーションはそんなこと意識する必要ないの


そんなにLinuxは互換性の問題があるっていうんなら他人も確認できる形の具体例をいくつか挙げてみろよ
前の前スレ辺りからゴカンセイガーってアホなこと言ってるやつが湧いてるが一つも実例がでてこないぞ?

286 :login:Penguin:2016/11/12(土) 14:59:12.05 ID:7JwZfOJ3.net
> libfoo.so.1.1.1 と libfoo.so.1.1.2 が両方同じsonameなんだったらそれは互換性があることを表してるの
そうとは限らない。

何かを変えたのであれば、それは何かの動きが変わっている。
たとえバグ修正であったとしても、バグの挙動が正常に「変わっている」

もしアプリがそのバグの挙動に依存していれば、アプリを修正して「ビルド」しなおさなければならない。

Linuxはオープンソース専用みたいなもんだからビルドして修正するという流れなのだろうが、
Windowsではオープンソースでないものもサポートするために
ビルドしなくても済むようなレベルの仕組みを作ってる。

287 :login:Penguin:2016/11/12(土) 15:02:18.73 ID:7JwZfOJ3.net
> そんなにLinuxは互換性の問題があるっていうんなら他人も確認できる形の具体例をいくつか挙げてみろよ

その互換性の問題をなくすために、毎回ビルドし直してるだろ。
それはオープンソース専用でなければほぼ不可能だから
非オープンソースの物が少ないんだよ。

具体例は数少ない非オープンソースで何年も前に
ビルドしたアプリを新しいディストリで動かす場合に限られるが、
そもそもそれが排除されてしまっている。

288 :login:Penguin:2016/11/12(土) 15:05:54.84 ID:ZJ2C4+tA.net
つかこいつ何のためにsonameってものがあると思ってんだよw

こいつの言うように互換性がないのにlibfoo.so.1.1.1とlibfoo.so.1.1.2っていうrealnameにするんならそのままsoname=realnameにすりゃいいだけなのに
その代わり互換性を表すためのsonameの存在が無意味になるから互換性を維持したままlibfoo.so.1.1.1のバグ修正するためにはバージョンはどうすればいいんだ、更にはlibfoo.so.1.1.1を使ってるライブラリ全部をビルドし直さないといけないのか?
みたいなまさにこいつの言ってる通りの馬鹿なことになるけどな

Windowsにはsonameがないから代わりにSxSみたいなものでそれに相当することをしてるってだけ

289 :login:Penguin:2016/11/12(土) 15:10:38.94 ID:ZJ2C4+tA.net
こいつまだビルドし直すのが互換性のためだと思ってやがる、ホント頭悪すぎるwww

何度も言うがビルドし直すってのは別に動かすためにするものじゃない
互換性のないバージョンがリリースされた時に、ビルドし直さなければそのまま古いものが使われる
なので新しいものを使うためにビルドし直すってだけ

290 :login:Penguin:2016/11/12(土) 15:20:48.19 ID:7JwZfOJ3.net
> こいつの言うように互換性がないのにlibfoo.so.1.1.1とlibfoo.so.1.1.2っていうrealnameにするんならそのままsoname=realnameにすりゃいいだけなのに

それは理想論。

互換性があるはずと思ってリリースした後に、バグで互換性がない状態が発覚するんだよ。

はい、たしかに、バグですよ?テスト不足ですよ?

100%完璧に問題ない状態でリリースできてるなら
アプリにバグなんて存在しないわw

ライブラリのバグの動作に依存したアプリっていうのも実際に存在するわけで
ライブラリのバグを直すことがアプリが動かなくなる原因になることだってある。
そういった場合にわざとバグが有るバージョンを使う方法が必要なんだよ
もちろんそのアプリ専用でだ。

総レス数 1000
311 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★