Linux使ってみて普及するわけないと思った時89 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin
2016/10/30(日) 09:56:12.66ID:mEpRJ6TyLinux使ってみて普及するわけないと思った時88
http://hayabusa6.2ch.net/test/read.cgi/linux/1471413499/
今回もマック信者が憤死するの?
0232login:Penguin
2016/11/07(月) 02:18:38.41ID:LcJW/th2それを総務だけで使われてるって言い出しそうだなw
0233login:Penguin
2016/11/07(月) 04:50:41.34ID:YbB4KMeK米マイクロソフトは、米アカマイが運用するLinuxサーバを使って、Microsoft.comサイトを攻撃者から守ろうとしている。
米Microsoftは、自社ウェブサイトを攻撃者から守るために、Linuxを使っている。
Microsoftは、Microsoft.comサイトを保護し、ウイルスやワーム、DoS攻撃などに対する同サイトの脆弱性を低減するため、
米Akamaiが運用するLinuxベースのサーバを利用している。
Microsoftは、過去2週間で少なくとも3つの深刻なワームおよびウイルス攻撃を受け、混乱の渦中にある。
Microsoft.comウェブサイトも、DDoS(分散サービス拒否)攻撃により、少なくとも2回ダウンした。
Linuxオペレーティング・システム(OS)はWindowsの最大のライバルであり、
Microsoft自体がLinuxサーバを使うということは大きな意味を持つ。
http://m.japan.cnet.com/story/20060667/
0234login:Penguin
2016/11/07(月) 06:05:03.37ID:aVJdIDkGその更新がうまくいかずにPCが不安定になったとして訴えを起こしていた旅行代理店経営者が、
Microsoftから1万ドルの賠償金を受け取ることになった。
これはThe Seattle Timesが報じたもので、
賠償金を受け取るのは、
カリフォルニア州サウサリートの旅行代理店経営者だという。
同紙は米国時間6月25日付けの長文記事で、
MicrosoftがPCユーザーにWindows 10のインストールを強制しているとして厳しい批判を受けている
件について取り上げている。
マイクロソフト、「Surface 3」の生産を2016年内に終了へ
「当社は、これ以上の訴訟費用の発生を避けるために控訴を取り下げた」と、
Microsoftの広報担当者は27日に電子メールで回答を寄せた。
http://japan.cnet.com/news/business/35084973/
0235login:Penguin
2016/11/07(月) 06:09:32.02ID:lcCNGaCS>>231はLinuxの話だろ。
0236login:Penguin
2016/11/07(月) 08:01:55.38ID:Z2EsCLxNダイナミックリンクがクソほども機能してないこと
例えば
libc バージョン1でビルドした
↓
バージョン1.1が出た 1.0と完全互換だよ
↓
libc.soやaなどをを上書きして1.1にする
↓
アプリケーション「libcのバージョンが違うから動かないも〜ん」
こういうのはダイナミックリンクではない
バカ「互換性ガー」
だから互換性があるとlibcの開発元も言ってるし
そもそも互換性があるかないかを決めるのはお前じゃねえ
擁護するバカがワケ分からんことを言い出すのもLinux最大のガンだな
0237login:Penguin
2016/11/07(月) 12:03:14.00ID:6OilAJJ+0238login:Penguin
2016/11/07(月) 12:10:23.00ID:Lcd8XqJa0239login:Penguin
2016/11/07(月) 12:33:55.16ID:6OilAJJ+どうせディスるためにわざと嘘ついてんだろうけど
「libcのバージョンが違うから動かないも〜ん」 ってのは多分「GLIBC_xxx not found」の事指してんだろうけど、そもそもこれはglibc自身がどのバージョンとの後方互換性を持ってるかを表してるもの
そして>>236が例で挙げてる「1.0->1.1」の変更で完全に後方互換性を維持してるよって言うんであればそもそも出ないし、出るんであるならバグだからレポートすべき
もっとも1.0なんて太古の時代はまだ互換性に気を使ってなかった気もするし100%維持してるわけではないから絶対ではないが
なのでこの場合>>236が適当なこと言ってるって判断するのが一番妥当だし、そうでないんなら実際に再現可能なケースを示せばいい
更にglibcが維持してるのは「後方互換性」であって「1.1用にビルドされたものが1.0でも動く」っていうのではない
これはWindowsも同じ
件の「GLIBC_xxx not found」がでるのは大抵この逆のケースで出ることが多い
0240login:Penguin
2016/11/07(月) 12:46:22.07ID:lcCNGaCS>ダイナミックリンクがクソほども機能してないこと
→ダイナミックライブラリに互換性がないこと
>こういうのはダイナミックリンクではない
→こういうのは互換性があると言わない
言いたいのはこういう事だよね?
共有ライブラリーを解剖する
https://www.ibm.com/developerworks/jp/linux/library/l-shlibs/
>・ メジャー番号は、異なるライブラリー・バージョン間で互換性が無い可能性を示し、
>・ マイナー番号はバグ修正のみを表すのです。
>メジャー番号が同じでマイナー番号が高いライブラリーをロードすれば安全であり、
>メジャー番号が今よりも高いライブラリーをロードするのは安全な習慣ではない
libxxx.so.1.0と完全互換のはずのlibxxx.so.1.1に互換性がなければ開発元が悪い。
でもそれはLinuxの問題ではなくそのライブラリのそのバージョン固有の問題だ。
libcはすでにVer2.24だけど、それは本当にlibcの話なのか?
0241login:Penguin
2016/11/07(月) 15:38:37.66ID:Y6T5sUAa0242login:Penguin
2016/11/09(水) 15:45:54.09ID:TKpUg+Fh不毛な議論、煽り、罵倒、嵐
0243login:Penguin
2016/11/09(水) 16:18:42.02ID:rsRlLWo1信頼されてないからミッションクリティカルな部分は他のOS
マイクロソフトは携帯参入によってより高品質なOSを作れるようになり
(symbian等は優れたOS)
今までなかったルーターやIOT等にも携帯の技術を応用して格安で売りさばき
linuxやfreebsdを駆逐するだろうな
0244login:Penguin
2016/11/09(水) 17:20:38.15ID:GfXkWwkyWindows10に怒り心頭の大槻教授のブログ。
やはりWindows10は互換性など無く使えない代物だった(笑)
-------------------------------------------------------------
(略)
眠れないPC作業のバカらしさ。
まず4っつの銀行のインターネットバンキングのやりなおし。
M銀行3口座、R銀行1口座、Y銀行1口座のうち、Y銀行だけが無傷。
あとのM銀行とR銀行は登録のし直し。しかしその修正はネット上ではできなかった。
やむなくそれぞれの銀行のネットバンキング担当者の指導を受けてなんとか復帰した。
これに3日無駄な努力を費やした。
M銀行の担当者は笑いながら『M銀行のインターネットバンキングでwindoes10は推奨していません』とコメント。
推奨しないならなぜ昨年の早い時期にそのように注意画面を出さなかったのか、とどなってやった。
次に困ったのはテレビ転送装置のwavecastだった。
これにアクセス(ログイン)しようとすると『 windows使用者はFIREFOXを使え。 ダウンロードはここをクリックせよ』と出るのでそのとうりやったがまったくFIREFOXなどインストールできなかった。
これを20回ぐらい繰り返したがまったくダメ。ここで怒り心頭。
次に太陽光発電状況送信のための『えこー眼鏡』と『発電見張り番』のログイン。
これも簡単にはできなくなりお手上げ。
これらは元のGOOGLE CHROMEを復帰させこらから無理やり入って
(つまりwindows10にする前のプラウザで)なんとか解決した。
ばかばかしい限り。一部元に戻さなければならないのなら、一体何のためのwindows変更だったのか!
私はこの1週間、windows10にしたおかげでとんでもない時間の浪費を強いられた。
このような難行、苦行をやらせたメーカーは責任をとれ!
そこで教訓。『PC関連、慣れないものにうっかり手を出すな!』
(略)
0245login:Penguin
2016/11/09(水) 17:30:39.87ID:Rskx94Xf0246login:Penguin
2016/11/09(水) 21:10:23.91ID:z1EEl9oIそいつあちこちでコピペしてたよw
どこのコピペでも、
でもLinuxにしたらもっと被害甚大じゃね?っていう
結論になってたw
0247login:Penguin
2016/11/09(水) 22:35:17.64ID:W8/AIoy0バージョンアップの時もね。
0248login:Penguin
2016/11/09(水) 22:42:29.66ID:zs/+a1ax0249login:Penguin
2016/11/10(木) 06:02:55.01ID:L1V0i1Zl米マイクロソフトは、米アカマイが運用するLinuxサーバを使って、Microsoft.comサイトを攻撃者から守ろうとしている。
米Microsoftは、自社ウェブサイトを攻撃者から守るために、Linuxを使っている。
Microsoftは、Microsoft.comサイトを保護し、ウイルスやワーム、DoS攻撃などに対する同サイトの脆弱性を低減するため、
米Akamaiが運用するLinuxベースのサーバを利用している。
Microsoftは、過去2週間で少なくとも3つの深刻なワームおよびウイルス攻撃を受け、混乱の渦中にある。
Microsoft.comウェブサイトも、DDoS(分散サービス拒否)攻撃により、少なくとも2回ダウンした。
Linuxオペレーティング・システム(OS)はWindowsの最大のライバルであり、
Microsoft自体がLinuxサーバを使うということは大きな意味を持つ。
http://m.japan.cnet.com/story/20060667/
0250login:Penguin
2016/11/10(木) 07:05:40.44ID:3fvsHFk8その更新がうまくいかずにPCが不安定になったとして訴えを起こしていた旅行代理店経営者が、
Microsoftから1万ドルの賠償金を受け取ることになった。
これはThe Seattle Timesが報じたもので、
賠償金を受け取るのは、
カリフォルニア州サウサリートの旅行代理店経営者だという。
同紙は米国時間6月25日付けの長文記事で、
MicrosoftがPCユーザーにWindows 10のインストールを強制しているとして厳しい批判を受けている
件について取り上げている。
マイクロソフト、「Surface 3」の生産を2016年内に終了へ
「当社は、これ以上の訴訟費用の発生を避けるために控訴を取り下げた」と、
Microsoftの広報担当者は27日に電子メールで回答を寄せた。
http://japan.cnet.com/news/business/35084973/
0251login:Penguin
2016/11/10(木) 10:25:12.16ID:Dny249whダイナミックリンク設定(そういうオプションがあるもの)でビルドしても
「ビルド時のライブラリ」でないと動作しないんだよ
だから互換性があろうがなかろうが更新してしまうと一切動かない
linuxはスタティックとダイナミックの区別ができてない
0252login:Penguin
2016/11/10(木) 10:34:57.55ID:Dny249whとにかくすべて、ダイナミックリンク設定であるにもかかわらず
ライブラリを新しいもの、あるいは古いものに更新すると完全に動作しないか
文字が全部「□」になったりする
余計なことをしたかと思ってそれまで動いていたビルド設定(つまりOSがリリースされたときにある設定)
のファイルをそのまま使ってもムダ
「ライブラリに新機能追加や機能廃止があったからオプションにも変更ガー」
ねえよそんなもん
そんなモンとっくに調べてる
次のOSリリースでバージョンが新しくなっているにもかかわらず正常動作するから
設定ファイルやビルド設定に違いがあるのか見てみたら前バージョンとの差異は一切ない
つまり、「ファイルをそのまま使ってビルド試してみた」ときに動かないといけないはずなんだよな
ところが正常に動かなかった
スタティック設定でビルドし直すと正常
つまりダイナミックリンクが機能してないのだ
こんなだからlinuxは流行らない
0253login:Penguin
2016/11/10(木) 10:47:17.66ID:Dny249whVC++2010ランタイムv1.0を前提にビルドする
VC++2010ランタイムv1.1が出た
そのままランタイムファイルを上書きする
互換性が保証されている限りそのまま動作する
Linuxの場合 (例えばGTK2)
GTK2ライブラリv1.0を使ってビルドする (ダイナミックリンク有効)
GTK2ライブラリv1.1が出た
そのままライブラリファイルを1.1に上書きする
「GTK2library Wrong versionなんちゃら」とか出て動かない
「自分は何のライブラリバージョンでビルドされたか」を保持してるんだよな
linuxのアプリはすべて
これがおかしいっつの
ビルド時のバージョンでしか動かないってのはダイナミックリンクじゃねえじゃん
linuxのダイナミックリンクってのは
ファイルの置き場が違うだけのことかよ
たとえば自分の置かれてるフォルダと同じ所にライブラリファイルが置かれているのがスタティックで
/usr/binなどアプリ固有フォルダでないところにライブラリが置かれているのがダイナミックだと
ビルド時のバージョンでしか動かないならどこを見ようとも
それはダイナミックリンクではない
0254login:Penguin
2016/11/10(木) 11:35:21.68ID:yDRtJe9R0255login:Penguin
2016/11/10(木) 11:53:20.98ID:yDRtJe9Rライブラリを新しいもの、あるいは古いものに更新すると完全に動作しないか
文字が全部「□」になったりするのに10年前のfirefoxが今でも普通に動くのはなぜですか大先生!?!?
0256login:Penguin
2016/11/10(木) 14:40:21.80ID:lwOzdpXHそれをgtk1.0のライブラリを1.1に上書きしてしまえばそりゃ動かなくなるがなw
普通は1.0と1.1のライブラリーは共存させるだろ
1.1が1.0と共存できないという場合(conflict)は1.1のパッケージを
インストールしようとすると1.0に依存するパッケージを削除しようとする
そこで通常ユーザーは1.1をインストールすることは問題であることに気づく
自分で1.1をmakeして1.0に上書きしてしまったときはアウトだけどな
0257login:Penguin
2016/11/10(木) 14:47:49.00ID:lwOzdpXH異なったバージョンでも共存できるようにしている。
0258login:Penguin
2016/11/10(木) 15:54:18.74ID:Dny249wh「それは元々ダイナミックリンクにふさわしくない」(1.0だけなのだから)
ので、ダイナミックリンクで動作するようなビルドオプションはないはずだ
ダイナミックリンクってのは、バージョンが変わったとしても
互換性がある限りは動くようにしたい、というものだろう
自分で持つのも何だから、共有ライブラリとしてあるものを使おうと
共有ということは「ユーザーは新しいものをインストールしないでずっと同じもの固定にしてくれる」
とは限らんわけだろ
それがLinuxではまったく働いてない
0259login:Penguin
2016/11/10(木) 15:56:30.12ID:lwOzdpXH0260login:Penguin
2016/11/10(木) 15:57:18.26ID:Dny249wh「ビルドしなおしガー」
それは動くんだけど
ダイナミックリンクじゃねえだろ
Windowsでいう、VBや.netで
バージョン変わったらビルドしなおしなんてクソアプリはない
1.1から2.0はともかく
0261login:Penguin
2016/11/10(木) 16:01:41.97ID:Dny249whそれは再ビルドしても動かない
だがLinuxの場合、ダイナミックリンクとウソついてるからタチ悪い話
ダイナミックリンクは互換性がある限りは再ビルドなしで動かせるようにしたものだ
スタティックリンクなら自分の中に持っているから変更ができず、
よって互換性問題もそもそも存在しない
ウソダイナミックだから互換性があるにも関わらず余計な手間をかけさせる
0262login:Penguin
2016/11/10(木) 16:27:57.74ID:yDRtJe9Rhttps://abi-laboratory.pro/tracker/timeline/gtk+/
https://abi-laboratory.pro/tracker/timeline/fontconfig/
とりあえず各ライブラリのバージョン間のバイナリ後方互換性がどの程度維持されてるかのデータ置いときますね ニッコリ
0263login:Penguin
2016/11/10(木) 17:17:23.42ID:lwOzdpXH0264login:Penguin
2016/11/10(木) 17:19:24.25ID:lwOzdpXHWindowsでは、DLLファイルの拡張子として「.dll」が付く。
DLLでは、様々なアプリケーションプログラムで使用される汎用的な
機能がモジュール化されており、実行ファイルがリンクを読み込むこと
によって共通して利用できるようになっている。
0265login:Penguin
2016/11/10(木) 22:57:47.06ID:gQKYyR/k各ライブラリっていうわりにたった三つじゃねーかw
よく使われるもの上位10個ぐらいは書きなよ
0266login:Penguin
2016/11/10(木) 23:33:00.97ID:nwhHmVhnいや十分だろ
0267login:Penguin
2016/11/11(金) 02:08:49.47ID:GGHDE/pq今まではアプリ開発者が、他人が作ったライブラリに関して、無関心だった。
アプリが依存しているライブラリが、更新されたら、新しいものを使うだけだった
つまり、1.0も含めて、それ以降のすべてのバージョンを受け入れる。
1.0 <= 依存ライブラリ
2.0は、メジャー更新だから、インターフェースが変わるため、
実行される前にリンクエラーとなり、アプリは実行されないので安全
例えば、自分は関数、abc(引数1)を使っていたが、
その関数は、abc(引数1, 引数2)に更新されたため、引数の数が合わず、リンクエラー
1.1は、マイナー更新だから、インターフェースが変わらないから、アプリは実行されるが、
関数abc内で処理が変わったため、バグるようになるかも知れない
この場合、エラーの直前まで、中途半端に実行されるため、
外部ファイルなどに保存していた場合、不整合が起きるので危険
だから最近では、マイナー更新でも動かないように指定する。
1.0 <= 依存ライブラリ < 1.1
1.0.1, 1.0.2など、バグ・セキュリティ修正のみを認める
アプリ開発者は、依存ライブラリが更新されたら、
その都度、自分でテストして、自分のアプリも更新する
0268267
2016/11/11(金) 02:20:50.64ID:GGHDE/pq>2.0は、メジャー更新だから、インターフェースが変わるため、
>実行される前にリンクエラーとなり、アプリは実行されないので安全
リンクエラーでも、その関数が使われる、直前までは実行されてしまうのか?
それともリンクエラーは、アプリ起動前のチェックだったか?
よくわからんけど、リンクエラーの直前までは実行されてしまうのなら、
そこまでの処理で、外部ファイルなどに保存していた場合、不整合が起きるので危険
0269login:Penguin
2016/11/11(金) 03:47:47.07ID:LzqWI+89Windows DLLならライブラリ使用手続き時にファイルが見つからなくてエラー
概ねDLLを使用してるソースファイルにある関数実行時かクラスのインスタンス生成時
0270login:Penguin
2016/11/11(金) 04:08:11.30ID:wv3QEhkXみたいな決め付けで語ってる人が多い気がするけど仕組み上は大差ない
ライブラリ提供側の運用や管理の厳格さとシステムで共有されるライブラリの
数がWindowsとLinuxで遭遇する不具合の確率に影響してるのだろう
0271login:Penguin
2016/11/11(金) 11:06:28.14ID:RxX68zOd違うこともあるし。
0272login:Penguin
2016/11/11(金) 16:14:53.79ID:LBQhGosA0273login:Penguin
2016/11/11(金) 21:20:41.04ID:0g28mT37という日がほどなく到来する。現状でもほぼそれに近いが。
Windows vs Linuxという対立軸が問題にされたのは遙か古の
時代。Linuxバイナリを動かす+αで最適なプラットフォームは
何か、という時代に突入しつつあるのが現状なのだ。
0274login:Penguin
2016/11/11(金) 21:24:04.10ID:WISjMcmI0275login:Penguin
2016/11/11(金) 22:21:56.78ID:nf5BSThc確かにダイナミックリンクライブラリの仕組み自身は大差ないよ。
だからダイナミックリンクライブラリの仕組みではなく
ダイナミックリンクライブラリの利用方法の仕組み自体にWindowsは手を入れた。
それがSide-by-Sideという仕組みで同じダイナミックリンクライブラリの
バージョン違いを複数インストールすることができるようにして
適切なバージョンを使えるようにしている。
これは複数のアプリでダイナミックリンクライブラリを共有して使うことで
メモリとディスクの節約になるという利点に反するものであり
Linux陣営はWindowsに対してありえないとぶーぶー言っていたもんだが、
最近のLinuxはDockerと言うものを使ってライブラリだけではなく
ユーザーランド全体(カーネル以外)を、アプリ専用に用意することで、
更に多くのメモリとディスクを消費する方法が話題になっている(笑)
0276login:Penguin
2016/11/12(土) 01:39:49.70ID:QeaqjRcX1.0.1の修正(パッチ)部分は、100KBとすると、
1.0の部分はコピーせずに、パッチだけを保存しておいて、
1.0.1の起動には、「1.0 + パッチ」の形で、容量を節約できないの?
差分バックアップみたいな、やり方
その代わり、1.0.2の起動には、「1.0 + 1.0.1のパッチ + 1.0.2のパッチ」となり、
すべての差分が必要になる
ディストリのUpgradeもそう。
すべてのバージョンを経過していかないといけない。
バージョンを飛び越せない
まあ、ファイル数も増えるから、アプリの起動も遅くなるし、管理するのも面倒だが
0277login:Penguin
2016/11/12(土) 01:57:33.96ID:Ny1hstn1> だからダイナミックリンクライブラリの仕組みではなく
> ダイナミックリンクライブラリの利用方法の仕組み自体にWindowsは手を入れた。
それも含めて大差ないって言ってる
0278login:Penguin
2016/11/12(土) 03:05:39.47ID:+S/ta2F2大差あるよw
そもそもWindowsはWindowsが管理しないアプリも含めて
アプリを自由にインストールしても問題ないレベルに達している。
Linuxの場合は、ディストリが用意したアプリしか対応しない。
それ以外のアプリは再コンパイルしないとまともに動作しない。
0279login:Penguin
2016/11/12(土) 03:07:41.92ID:+S/ta2F2> 1.0.1の起動には、「1.0 + パッチ」の形で、容量を節約できないの?
> 差分バックアップみたいな、やり方
将来のWindows Updateは差分更新に
http://pc.watch.impress.co.jp/docs/news/1028408.html
> 米Microsoftは3日、今後のWindows Updateに差分型更新となる
> 「Unified Update Platform (UUP)」を導入すると発表した。
> 現在のWindows Updateは、常にフルサイズのバイナリをダウンロードするため、
> 特に大型アップデートの場合はダウンロードに時間がかかる。UUPが導入されると、
> その端末に必要なものだけをダウンロードする差分型となるため、データサイズは従来から
> 約35%削減されることになる。また、どのダウンロードが必要かの処理はサービス側でされるため、
> 更新確認の時間も短縮される。これらの変更は、サーバーサイドでのものとなるため、
> 表面上はWindows Updateに特に変更は見えない。
> UUPは、次期大型アップデート「Creators Update」から正式採用されるが、
> 徐々にテスト導入を行なう予定で、同日公開されたInsider Preview Build 14959の
> スマートフォン版は既にこの仕組みを採用。2016年末までにPC向けに、
> その後、IoT版とHoloLens版にも試験導入する。
0280login:Penguin
2016/11/12(土) 12:08:57.16ID:ZJ2C4+tA各ライブラリはsonameってのを持ってるってことを知らないんだね
だから古い方を必要とするアプリケーションはビルドなんてし直さなくてもlibfoo.so.1.1.1の持つsonameであるlibfoo.so.1という名のシムリンクを辿って古い方を使えることも知らないんだね
だから新しい方を必要とするアプリケーションはlibfoo.so.2.1.1の持つsonameであるlibfoo.so.2という名のシムリンクを辿って古い方を使えることも知らないんだね
だからそれらは全て別のファイルなので共存できることも知らないんだね
だから君は頭が悪いんだね(^^)
0281login:Penguin
2016/11/12(土) 12:46:11.78ID:BREaCxQc0282login:Penguin
2016/11/12(土) 13:59:12.26ID:dYHyduvS0283login:Penguin
2016/11/12(土) 14:00:27.29ID:cXsceqFWWindowsフォーラムでおま環と言われたのと同じだな。
0284login:Penguin
2016/11/12(土) 14:04:33.80ID:7JwZfOJ3その仕組の問題点が、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という名前を使っている以上、それは全てのアプリで共有する情報で
一つのアプリのためにシンボリックリンクを変更すると、他のアプリにも影響が出る。
0285login:Penguin
2016/11/12(土) 14:27:27.08ID:ZJ2C4+tA> libfoo.so.1.1.1 なのか libfoo.so.1.1.2 なのかがアプリケーションではわからず
だーーーかーーーーらーーーーーー、ホント頭わりーな
libfoo.so.1.1.1 と libfoo.so.1.1.2 が両方同じsonameなんだったらそれは互換性があることを表してるの
もし互換性がないのに同じsonameなんだったらそれはバグだからレポートすれば良い
(あるいはテスト段階のいつでも互換性崩すよってなってるシンボルの変更だったりなんか意図があっての場合ももちろんあるが)
だからそもそも各アプリケーションはそんなこと意識する必要ないの
そんなにLinuxは互換性の問題があるっていうんなら他人も確認できる形の具体例をいくつか挙げてみろよ
前の前スレ辺りからゴカンセイガーってアホなこと言ってるやつが湧いてるが一つも実例がでてこないぞ?
0286login:Penguin
2016/11/12(土) 14:59:12.05ID:7JwZfOJ3そうとは限らない。
何かを変えたのであれば、それは何かの動きが変わっている。
たとえバグ修正であったとしても、バグの挙動が正常に「変わっている」
もしアプリがそのバグの挙動に依存していれば、アプリを修正して「ビルド」しなおさなければならない。
Linuxはオープンソース専用みたいなもんだからビルドして修正するという流れなのだろうが、
Windowsではオープンソースでないものもサポートするために
ビルドしなくても済むようなレベルの仕組みを作ってる。
0287login:Penguin
2016/11/12(土) 15:02:18.73ID:7JwZfOJ3その互換性の問題をなくすために、毎回ビルドし直してるだろ。
それはオープンソース専用でなければほぼ不可能だから
非オープンソースの物が少ないんだよ。
具体例は数少ない非オープンソースで何年も前に
ビルドしたアプリを新しいディストリで動かす場合に限られるが、
そもそもそれが排除されてしまっている。
0288login:Penguin
2016/11/12(土) 15:05:54.84ID:ZJ2C4+tAこいつの言うように互換性がないのに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みたいなものでそれに相当することをしてるってだけ
0289login:Penguin
2016/11/12(土) 15:10:38.94ID:ZJ2C4+tA何度も言うがビルドし直すってのは別に動かすためにするものじゃない
互換性のないバージョンがリリースされた時に、ビルドし直さなければそのまま古いものが使われる
なので新しいものを使うためにビルドし直すってだけ
0290login:Penguin
2016/11/12(土) 15:20:48.19ID:7JwZfOJ3それは理想論。
互換性があるはずと思ってリリースした後に、バグで互換性がない状態が発覚するんだよ。
はい、たしかに、バグですよ?テスト不足ですよ?
100%完璧に問題ない状態でリリースできてるなら
アプリにバグなんて存在しないわw
ライブラリのバグの動作に依存したアプリっていうのも実際に存在するわけで
ライブラリのバグを直すことがアプリが動かなくなる原因になることだってある。
そういった場合にわざとバグが有るバージョンを使う方法が必要なんだよ
もちろんそのアプリ専用でだ。
0291login:Penguin
2016/11/12(土) 15:21:58.07ID:ZJ2C4+tAならWindowsのSxSだってマニュフェストがバグってりゃ動かないわな?
頭大丈夫?????
0292login:Penguin
2016/11/12(土) 15:24:36.66ID:ZJ2C4+tA0293login:Penguin
2016/11/12(土) 15:25:40.33ID:7JwZfOJ3はい、sonameを廃止してすべてrealnameにすればいいです。
なぜそうしないの?すりゃいいだけといってるならそうすべき。
ライブラリのすべてのバージョンは互換性がない可能性があるという前提にして
バージョン番号つきファイル名で作成されされるべきで、
シンボリックリンクで切り替えるという仕組みは持たせる必要はない。
その代わりアプリごとにどのバージョンを使うかを決めることが出来、
必要ならば使用するバージョンを後から変更できる仕組みを作る。
それがWindowsがやっていること。
0294login:Penguin
2016/11/12(土) 15:26:42.82ID:7JwZfOJ3やっと理解したかwww
リンクはってるんだからちゃんと読めや
0295login:Penguin
2016/11/12(土) 15:44:29.02ID:ZJ2C4+tAゴメン、まともな知識もってる相手だと思わずに流し読みしかしてなかったw
その上で続けるとすると、(別人かもしれんけど)まず最初の>>278では
> Linuxの場合は、ディストリが用意したアプリしか対応しない。
> それ以外のアプリは再コンパイルしないとまともに動作しない。
って言ってるよね?
それに対して>>280でそれは間違ってるってことを指摘した
これはおk?
0296login:Penguin
2016/11/12(土) 16:00:40.86ID:Qqeh/71Hいかにもゆとり世代って感じだなpw
0297login:Penguin
2016/11/12(土) 16:01:30.43ID:yNe4W2hC>そういった場合にわざとバグが有るバージョンを使う方法が必要なんだよ
>もちろんそのアプリ専用でだ。
Linuxではラッパースクリプトで環境変数を設定すればよい。
共有ライブラリーを解剖する
https://www.ibm.com/developerworks/jp/linux/library/l-shlibs/
>プログラムが既にリンクされている場合には、
>環境変数LD_LIBRARY_PATHを設定することによって、
>その振る舞いを変更することができます。
>動的リンカーは、デフォルトでサーチすべきディレクトリーのリストを含む、
>/etc/ld.so.confで制御されます。
>LD_LIBRARY_PATHで規定されたパスはどれも、ld.so.confに
>リストアップされたパスよりも前にサーチされます。
>ですからユーザーは、こうした設定をオーバーライドすることができるのです。
0298login:Penguin
2016/11/12(土) 17:18:35.99ID:ZJ2C4+tAあとはLD_PRELOADとか
読み返してみたが結局それらの存在を知らなかったって事なのかな
それともなんかそれらじゃ駄目な理由があるんだろうか
仮にそれらの存在を知らないとすると、アプリケーションがビルド時にはlibfoo.soが指すlibfoo.so.1.1.1が使われて、新しい環境での実行時にはlibfoo.so.1がlibfoo.so.1.1.2を指してるのでそっちが使われる
ここでlibfoo.so.1.1.2だと問題があるのでそのアプリだけlibfoo.so.1.1.1を使いたい
でもシムリンクのターゲットを変えると全体に影響が出ちゃう!っていう思考になるわな
まあ普通はそこで「だから問題だ!」じゃなくて「なんかいい方法無いかな?」って調べてそれらの存在を知るわけだが
ただそれでもまだ>>278>>287みたいな「ビルドしなおせば云々」ってのの説明はつかないなぁ
0299login:Penguin
2016/11/12(土) 18:11:28.97ID:zVBG8JUB色々読んでも「GCCでコンパイルして」てとこで
ネットから何も直接DLできないんでどうしたもんだかw
0300login:Penguin
2016/11/12(土) 18:40:27.93ID:Nrv47R9N中身は数十バイトの同じファイルだったりとか…。
0301login:Penguin
2016/11/13(日) 03:08:03.25ID:E7GywQ3z自分がpython2でコーディングしていたが、数年後にpython3が出たから、それで試してみたい。
テストしたら、python3でも正常に動いたので、シバンを変える
(python2・3は、互換性が無いから、通常そのままのソースコードでは動かないけど)
#!/usr/bin/python2
#!/usr/bin/python3
この例では、スクリプトだから、コンパイルしないけど
0302login:Penguin
2016/11/13(日) 03:29:36.42ID:WbtZf3C80303login:Penguin
2016/11/13(日) 05:38:00.31ID:m3W6roGT#!/usr/bin/perl
に変えようとしてるようなもの
0304login:Penguin
2016/11/13(日) 08:31:56.96ID:CW1Dcalk嘘で相手をおとしめるとか完全に朝鮮人の手口だわ
0305login:Penguin
2016/11/13(日) 10:29:07.52ID:AD2H9CCIこれは立派なヘイトスピーチです。
0306login:Penguin
2016/11/13(日) 11:07:13.95ID:GVGRDxj7土人、シナ人、朝鮮人なんだよな。
0307login:Penguin
2016/11/13(日) 11:15:55.26ID:/bgP+cyH>>304はさぁ
0308login:Penguin
2016/11/13(日) 11:52:49.37ID:FbaDrxSC機動隊員がバカ。
大阪のだからな(笑)
あれっ?誤爆か?
まあでもいいや。
0309login:Penguin
2016/11/13(日) 12:06:09.97ID:ksv8R54a逆にそれしかやらないのに「俺使いこなしてる」感を漂わせて初心者を叩く輩も多い
そんな感じだな
0310login:Penguin
2016/11/13(日) 12:31:03.70ID:2KAMDF2YツールのインスコなんてWindowsより簡単だろ。
Windowsなんてツールがどこに有るか探すだけでも大変。
0311login:Penguin
2016/11/13(日) 12:45:53.06ID:gBHnuA2klinuxの場合、いちいち設定する必要があったり、普通にapt installするだけだと
バージョンが古くて必要な機能がなかったりするから、
結局ソース取ってきてビルドすることがあって、時間の無駄だなあと思うことがよくある
0312login:Penguin
2016/11/13(日) 13:12:25.15ID:beH+vL+20313login:Penguin
2016/11/13(日) 14:31:02.78ID:tbdukskE維持していくだけで回りが転けていくてのもよくあることだからな
0314login:Penguin
2016/11/14(月) 17:32:06.27ID:0kACIr6I0315login:Penguin
2016/11/14(月) 17:39:59.54ID:A69L9zXZその結果が誤認逮捕w
0316login:Penguin
2016/11/15(火) 08:26:59.46ID:YufbOOfG0317login:Penguin
2016/11/15(火) 13:03:29.20ID:RzfivPgP0318login:Penguin
2016/11/15(火) 19:43:34.26ID:kzpgM0U0それでPCでシェアとっちゃったんだから
Mac選ぶやつの方が分かんないよ
0319login:Penguin
2016/11/15(火) 20:17:01.24ID:bg1j+Shl0320login:Penguin
2016/11/15(火) 20:38:40.35ID:D0SqJQIoそれをMSが勝手に共同開発やめて売り出したのがWindows95
0321login:Penguin
2016/11/15(火) 21:10:13.74ID:v0VpfOji0322login:Penguin
2016/11/15(火) 21:13:55.30ID:b5dqfjHY0323login:Penguin
2016/11/15(火) 21:24:16.00ID:bOD/MdPzOS/2とは関係ない
VMSのアーキテクチャをベースとしたマイクロカーネルを採用した近代的なOS
0324login:Penguin
2016/11/15(火) 21:27:21.41ID:bOD/MdPz0325login:Penguin
2016/11/15(火) 21:31:42.63ID:bOD/MdPz0326login:Penguin
2016/11/15(火) 21:53:48.15ID:RzfivPgP0327login:Penguin
2016/11/15(火) 22:09:25.36ID:YMl4Qa11にわか嘘おつ
>>323
お見事!
詳しいねえ
0328login:Penguin
2016/11/16(水) 00:05:33.79ID:nY9bZKjhああいうのがあると、ぜってえネイティブやろうとしなくなる
windows用のみ作って、
あとはwineで動かしてね動かなかったらシラネ
ってなる
0329login:Penguin
2016/11/16(水) 00:16:58.27ID:nY9bZKjhglibcなどの基幹ライブラリに重大なバグが!
↓
自分でソースからビルド
↓
今までのglibcを置き換える
↓
何もかも動かなくなる
これだもんな
デストリブ〜タぁ〜からのリリースを待たないといけない
Fuckintoshみたいにマイナーだから攻撃を受けないだけで
この間に攻撃されたらどうするんだろ
てかなんでglibcは置き換え不可能なんだ
これがビルド時のやつでしか動きませんワガママなのか
0330login:Penguin
2016/11/16(水) 00:35:34.26ID:twbha2zw> デストリブ〜タぁ〜からのリリースを待たないといけない
大抵はセキュリティ情報(ニュース)が出る前か出ると同時に
リリースされているから待っていれば良いでしょ
0331login:Penguin
2016/11/16(水) 01:10:05.25ID:qjlAYN+xそれはない、linuxでのプログラミングのほうが圧倒的に簡単だから
■ このスレッドは過去ログ倉庫に格納されています