【初心者】Ubuntu Linux 126【本スレ】 (473レス)
上下前次1-新
323(1): 05/24(日)10:18 ID:cP8JXzPy(1) AAS
>>322
要点まとめたお↓↓↓
AV1・VP9・x264/x265・CUDAまで自前ビルドして /usr/local で統合運用
昔は依存関係や競合で詰みやすかったが
今はAI支援でほぼ解決出来かなり強いLinux動画エンコード環境が完成
ただメモリー高騰で新PC移行は保留中最新Ubuntu環境が将来の夢よ
324(1): 05/24(日)10:39 ID:GVeh1jRE(1) AAS
ビルドもままならないアタオカ?
バカでもビルドできるヤツ晒されてもなーwara
325: 05/24(日)10:52 ID:5YuZBoT1(1/2) AAS
諸事情で古いOSからアップデート出来ない場合に必要な新しいライブラリだけ持ってきて、該当のソフトは新ライブラリを読み込ませて走らせるとかもAIがあると楽だね
ラッパースクリプトを簡単に作ってくれる
該当のソフトのソースがなくプロプライエタリなので詰んだかと思ってたけど動かせた
326: 05/24(日)11:04 ID:5K6JpDfS(1) AAS
>>324
ビルドなんて知識の無い人はAIに聞けば完璧にやってくれるんだよ
試しにやってご覧(笑)
ビルドでマウントは昔の話なんだよお爺ちゃん
327(2): 05/24(日)11:23 ID:9lrEFfQ9(1) AAS
ビルドしただけでドヤは大先生すぎる
328: 05/24(日)11:28 ID:VbvNuyGg(1) AAS
>>327
超大先生になるには?
329(1): 05/24(日)11:54 ID:5YuZBoT1(2/2) AAS
>>327
異なるライブラリのバージョンが必要になるとビルドも運用も結構トラブルが多くて面倒くさいのよ
人間に聞いてもアップデートやクリーンインストールしか言わないけどAIは色々と考えてくれる
使う人の側も出力や場合によってはログを適切に入力していっしょに考える必要があるけど確実に便利になった
330(2): 05/24(日)12:11 ID:/HMxfP7H(1/2) AAS
mpvのsudo ./installは動かないだろ
その辺のtipsを教えてくれると有益
331: 05/24(日)12:20 ID:SooJXv0m(1/8) AAS
変なライブラリを /usr/local/hoge に投入して
gcc -L/usr/local/hoge -R/usr/local/hoge
とかwwww
332: 05/24(日)12:25 ID:SooJXv0m(2/8) AAS
↑だめなんだってwwwww
GNUリンカ(ld)の -R との混同
かつて(あるいは一部の商用UNIX系リンカなどでは)、GNUリンカ(ld)の -R オプション(大文字)にディレクトリを渡すと、
互換性のために -rpath とみなす挙動が存在しました。
しかし、これに関しても rpath-link ではなく rpath(実行時パスの埋め込み)の挙動です。
2. 現在の正しい書き方
rpath-link は「リンク時のみ、間接依存している共有ライブラリ(.so)を検索するパス」を指定するオプションです。
GCC経由でこれをリンカ(ld)に正しく伝えるには、
-Wl, オプションを使用して以下のように記述する必要があります。
bash
省1
333: 05/24(日)12:31 ID:SooJXv0m(3/8) AAS
だいぶいい加減に覚えていたようだwwww
gcc のコンパイルオプション rpath と rpath-link は別のものですか?
結論から申し上げますと、rpath と rpath-link は全く別のオプションです。
どちらも共有ライブラリ(.so ファイル)を探すためのパスを指定するものですが、
「いつ(どのタイミングで)使われるか」が根本的に異なります。
明確な違いと、それぞれの役割について解説します。
有効になるタイミング
rpath プログラムの「実行時」, パスの埋め込みあり(バイナリに記録される), 実行時に自作ライブラリなどを自動ロードさせたい時
省1
334: 05/24(日)12:33 ID:SooJXv0m(4/8) AAS
すると rpath-link というのは
単純に -L/usr/local/somewhere
のことではないか?
ごめんね
逃走しますwwwww
335: 05/24(日)12:58 ID:SooJXv0m(5/8) AAS
gccでプログラムをコンパイルするときに、昔は、追加の動的ライブラリをコンパイル時に検索する場合
-L/usr/local/somewhere のように書きましたが、今では違う書式なのですか?
結論から申し上げますと、今でも変わらず -L/usr/local/somewhere という書式が正しく、現在もそのまま使われています。
GCCのこの基本オプションの仕様は、昔から変更されていません。
ただし、「現代の開発環境における実務上の書き方」という意味では、いくつか変化や注意点があります。
1. 実行時エラーを防ぐための現代的な書き方
現代のLinux等では、セキュリティや依存関係管理の観点から、
コンパイルが通っても「実行時」に動的ライブラリを見つけられずエラーになるケースが増えています。
そのため、現在は -L だけでなく、実行時の検索パス(rpath)をバイナリに埋め込む -Wl,-rpath をセットで書くのが一般的です。
省2
336: 05/24(日)13:57 ID:SooJXv0m(6/8) AAS
rpath の正しい書式はわかりました。 昔に -R と書いたのは、どういう環境に由来していますか?
昔 -R と書かれていた書式は、主に System V(システム・ファイブ)系 UNIX、その中でも特に Solaris(SunOS) というオペレーティングシステム(OS)の環境に強く由来しています。
Linuxが普及する以前のUNIX全盛期において、この仕様がどのように生まれ、なぜ現代のGNU環境(Linuxなど)に引き継がれたのか、その歴史的背景を紐解くと以下のような流れになります。
1. 由来となった主な環境
① SunOS 5.x / Solaris(サン・マイクロシステムズ社)
-R の最も代表的なルーツは Solaris です。
Solarisの標準リンカ(ld)は、実行時ライブラリ検索パスを指定するオプションとして -R パス を採用していました。
当時、商用UNIX市場で圧倒的なシェアを誇っていたSolarisのこの仕様は、多くの開発者にとっての「標準」となりました。
省7
337: 05/24(日)14:13 ID:SooJXv0m(7/8) AAS
AI大先生に感謝しよう
ありがたや
さようならwwww
338: 05/24(日)14:50 ID:cRq6Qi93(3/3) AAS
>>323
それです!まさに。まとめ乙です
>>329
本当にそれです、結構大変だった
そして今はAIに相談しながら進められる
過去トラブって必死に情報収集、時に英語の掲示板や開発者のメーリングリストなんかにたどり着き翻訳してとか...
時代が変わったと思った
>>330
前はsudo ./installで直インストやってたけど今は./update終わったらdpkg-buildpackage -uc -us -b -d -j8(8は自分のCPUコアやスレッド数)
でやってDEBパッケージ作ってるよ
省1
339: 05/24(日)15:21 ID:t9m6yEyL(1) AAS
IDでNGしたいが頭がおかしいだけで悪い人じゃ無さそうだから悩ましい
長文連投は5ちゃんでは荒らしと見做される
コレだけ覚えて帰ってな
340: 05/24(日)16:23 ID:Ftwpz3KM(1) AAS
Ubuntu 26.10(stonking)の開発 / “Redhound”の導入とCIX P1への対応、Ubuntu Core 26のリリース | gihyo.jp
外部リンク:gihyo.jp
341: 05/24(日)16:42 ID:SooJXv0m(8/8) AAS
gcc でプログラムをコンパイルする場合、ソースやヘッダで関数が複数回定義されることがあります。
昔は -z muldefs というオプションをつけると、一応はコンパイルが通りました。これは現在でも有効な手法でしょうか?
結論から申し上げますと、-z muldefs (または --allow-multiple-definition)は、現在でも GCC(正確にはGNUリンカ ld)のオプションとして有効であり、機能します。
しかし、現代のソフトウェア開発においては、これを常用することは「非常に非推奨な、避けるべき禁じ手(最終手段)」とされています。
その理由と、現在推奨されている正しい対処法を解説します。
1. 現在でも有効だが「非推奨」とされる理由
このオプションは、重複した定義のうち「最初に見つかったもの」を優先し、残りを無視して無理やりリンクを通すものです。
これが危険とされるのには、現代のコンパイラ最適化の進化が絡んでいます。
未定義動作(Undefined Behavior)の誘発
C/C++の標準規格(One Definition Rule / 単一定義規則)では、外部結合を持つ関数や変数の重複定義は認められていません。
省8
342: 05/24(日)17:00 ID:1gte/+w4(1) AAS
26.04にアップグレードしたらWinhqやら特定のdotnetのバージョンやらpythonのvenvのpipやらが無効にされてて草ww
上下前次1-新書関写板覧索設栞歴
あと 131 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.015s