【初心者】Ubuntu Linux 126【本スレ】 (514レス)
【初心者】Ubuntu Linux 126【本スレ】 http://mao.5ch.io/test/read.cgi/linux/1777274263/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
328: login:Penguin [sage] 2026/05/24(日) 11:28:20.84 ID:VbvNuyGg >>327 超大先生になるには? http://mao.5ch.io/test/read.cgi/linux/1777274263/328
329: login:Penguin [] 2026/05/24(日) 11:54:48.47 ID:5YuZBoT1 >>327 異なるライブラリのバージョンが必要になるとビルドも運用も結構トラブルが多くて面倒くさいのよ 人間に聞いてもアップデートやクリーンインストールしか言わないけどAIは色々と考えてくれる 使う人の側も出力や場合によってはログを適切に入力していっしょに考える必要があるけど確実に便利になった http://mao.5ch.io/test/read.cgi/linux/1777274263/329
330: login:Penguin [sage] 2026/05/24(日) 12:11:47.41 ID:/HMxfP7H mpvのsudo ./installは動かないだろ その辺のtipsを教えてくれると有益 http://mao.5ch.io/test/read.cgi/linux/1777274263/330
331: login:Penguin [] 2026/05/24(日) 12:20:27.08 ID:SooJXv0m 変なライブラリを /usr/local/hoge に投入して gcc -L/usr/local/hoge -R/usr/local/hoge とかwwww http://mao.5ch.io/test/read.cgi/linux/1777274263/331
332: login:Penguin [] 2026/05/24(日) 12:25:46.71 ID:SooJXv0m ↑だめなんだってwwwww GNUリンカ(ld)の -R との混同 かつて(あるいは一部の商用UNIX系リンカなどでは)、GNUリンカ(ld)の -R オプション(大文字)にディレクトリを渡すと、 互換性のために -rpath とみなす挙動が存在しました。 しかし、これに関しても rpath-link ではなく rpath(実行時パスの埋め込み)の挙動です。 2. 現在の正しい書き方 rpath-link は「リンク時のみ、間接依存している共有ライブラリ(.so)を検索するパス」を指定するオプションです。 GCC経由でこれをリンカ(ld)に正しく伝えるには、 -Wl, オプションを使用して以下のように記述する必要があります。 bash gcc main.c -Wl,-rpath-link,/usr/local/somewhere http://mao.5ch.io/test/read.cgi/linux/1777274263/332
333: login:Penguin [] 2026/05/24(日) 12:31:43.33 ID:SooJXv0m だいぶいい加減に覚えていたようだwwww gcc のコンパイルオプション rpath と rpath-link は別のものですか? 結論から申し上げますと、rpath と rpath-link は全く別のオプションです。 どちらも共有ライブラリ(.so ファイル)を探すためのパスを指定するものですが、 「いつ(どのタイミングで)使われるか」が根本的に異なります。 明確な違いと、それぞれの役割について解説します。 有効になるタイミング rpath プログラムの「実行時」, パスの埋め込みあり(バイナリに記録される), 実行時に自作ライブラリなどを自動ロードさせたい時 rpath-link プログラムの「リンク時」(ビルド時) , パスの埋め込みなし(実行ファイルには残らない), http://mao.5ch.io/test/read.cgi/linux/1777274263/333
334: login:Penguin [] 2026/05/24(日) 12:33:53.53 ID:SooJXv0m すると rpath-link というのは 単純に -L/usr/local/somewhere のことではないか? ごめんね 逃走しますwwwww http://mao.5ch.io/test/read.cgi/linux/1777274263/334
335: login:Penguin [] 2026/05/24(日) 12:58:03.07 ID:SooJXv0m gccでプログラムをコンパイルするときに、昔は、追加の動的ライブラリをコンパイル時に検索する場合 -L/usr/local/somewhere のように書きましたが、今では違う書式なのですか? 結論から申し上げますと、今でも変わらず -L/usr/local/somewhere という書式が正しく、現在もそのまま使われています。 GCCのこの基本オプションの仕様は、昔から変更されていません。 ただし、「現代の開発環境における実務上の書き方」という意味では、いくつか変化や注意点があります。 1. 実行時エラーを防ぐための現代的な書き方 現代のLinux等では、セキュリティや依存関係管理の観点から、 コンパイルが通っても「実行時」に動的ライブラリを見つけられずエラーになるケースが増えています。 そのため、現在は -L だけでなく、実行時の検索パス(rpath)をバイナリに埋め込む -Wl,-rpath をセットで書くのが一般的です。 bash# 現代の推奨される書き方(実行時パスも同時に指定) gcc main.c -L/usr/local/somewhere -lfoo -Wl,-rpath,/usr/local/somewhere http://mao.5ch.io/test/read.cgi/linux/1777274263/335
336: login:Penguin [] 2026/05/24(日) 13:57:32.70 ID:SooJXv0m 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のこの仕様は、多くの開発者にとっての「標準」となりました。 ② System V Release 4 (SVR4) 系のUNIX Solarisのベースとなった AT&Tの System V というOSの規格(特にSVR4)を採用している 他の商用UNIX(OSF/1、IRIX、HP-UXなど)でも、同様に -R が使われていました。 これらは現代のLinuxでも使われている ELF(Executable and Linkable Format) というバイナリ形式の先駆者であり、 ELFの構造として rpath(当時は DT_RPATH)を埋め込むために -R オプションが定義されました。 2. なぜアルファベットの「R」だったのか? 非常にシンプルで、Run-time library search path(実行時ライブラリ検索パス) の頭文字である R から取られました。 http://mao.5ch.io/test/read.cgi/linux/1777274263/336
337: login:Penguin [] 2026/05/24(日) 14:13:03.86 ID:SooJXv0m AI大先生に感謝しよう ありがたや さようならwwww http://mao.5ch.io/test/read.cgi/linux/1777274263/337
338: login:Penguin [sage] 2026/05/24(日) 14:50:35.41 ID:cRq6Qi93 >>323 それです!まさに。まとめ乙です >>329 本当にそれです、結構大変だった そして今はAIに相談しながら進められる 過去トラブって必死に情報収集、時に英語の掲示板や開発者のメーリングリストなんかにたどり着き翻訳してとか... 時代が変わったと思った >>330 前はsudo ./installで直インストやってたけど今は./update終わったらdpkg-buildpackage -uc -us -b -d -j8(8は自分のCPUコアやスレッド数) でやってDEBパッケージ作ってるよ mpv_2026.05.22.9e06c3248a_amd64.deb こんなパッケージが出来上がるよ http://mao.5ch.io/test/read.cgi/linux/1777274263/338
339: login:Penguin [] 2026/05/24(日) 15:21:40.68 ID:t9m6yEyL IDでNGしたいが頭がおかしいだけで悪い人じゃ無さそうだから悩ましい 長文連投は5ちゃんでは荒らしと見做される コレだけ覚えて帰ってな http://mao.5ch.io/test/read.cgi/linux/1777274263/339
340: login:Penguin [sage] 2026/05/24(日) 16:23:18.60 ID:Ftwpz3KM Ubuntu 26.10(stonking)の開発 / “Redhound”の導入とCIX P1への対応、Ubuntu Core 26のリリース | gihyo.jp https://gihyo.jp/admin/clip/01/ubuntu-topics/202605/22 http://mao.5ch.io/test/read.cgi/linux/1777274263/340
341: login:Penguin [] 2026/05/24(日) 16:42:06.44 ID:SooJXv0m gcc でプログラムをコンパイルする場合、ソースやヘッダで関数が複数回定義されることがあります。 昔は -z muldefs というオプションをつけると、一応はコンパイルが通りました。これは現在でも有効な手法でしょうか? 結論から申し上げますと、-z muldefs (または --allow-multiple-definition)は、現在でも GCC(正確にはGNUリンカ ld)のオプションとして有効であり、機能します。 しかし、現代のソフトウェア開発においては、これを常用することは「非常に非推奨な、避けるべき禁じ手(最終手段)」とされています。 その理由と、現在推奨されている正しい対処法を解説します。 1. 現在でも有効だが「非推奨」とされる理由 このオプションは、重複した定義のうち「最初に見つかったもの」を優先し、残りを無視して無理やりリンクを通すものです。 これが危険とされるのには、現代のコンパイラ最適化の進化が絡んでいます。 未定義動作(Undefined Behavior)の誘発 C/C++の標準規格(One Definition Rule / 単一定義規則)では、外部結合を持つ関数や変数の重複定義は認められていません。 これに違反すると「未定義動作」となり、プログラムがクラッシュしたり、予期せぬ計算結果を出力したりする原因になります。 コンパイラ最適化(LTOなど)との相性が最悪 現代の GCC で -Flto(リンク時最適化)などを有効にしている場合、リンカが「どの関数をインライン展開すべきか」を判断できなくなり、 コンパイルエラーになるか、あるいはバイナリが完全に破壊されるリスクがあります。 グローバル変数に対する挙動の変化(GCC 10以降) C言語でヘッダに変数の実体を書いてしまう「暫定定義(Tentative Definition)」の重複は、昔の GCC ではデフォルトで許容されていました(-fcommon)。 しかし、GCC 10以降は安全性のためにデフォルトが -fno-common となり、厳格にエラーを出すようになっています。 これに引きずられて関数の重複もより厳しくチェックされるようになっています http://mao.5ch.io/test/read.cgi/linux/1777274263/341
342: login:Penguin [] 2026/05/24(日) 17:00:51.00 ID:1gte/+w4 26.04にアップグレードしたらWinhqやら特定のdotnetのバージョンやらpythonのvenvのpipやらが無効にされてて草ww http://mao.5ch.io/test/read.cgi/linux/1777274263/342
343: login:Penguin [sage] 2026/05/24(日) 17:07:29.90 ID:/HMxfP7H resoluteからpython3.14じゃなかった http://mao.5ch.io/test/read.cgi/linux/1777274263/343
344: login:Penguin [] 2026/05/24(日) 23:29:55.80 ID:xVgLkJZg OSアップグレードは昔から鬼門だからね。下手にあれこれ手を加えるくらいなら新規インストールした方がよい http://mao.5ch.io/test/read.cgi/linux/1777274263/344
345: login:Penguin [sage] 2026/05/25(月) 00:54:59.90 ID:Aw4h7Iui 実験的にアップグレードかましたこともあるけど 使うのはずっと新規インストールだな GWあたりからじっくり整える作業するのがむしろ毎回楽しい http://mao.5ch.io/test/read.cgi/linux/1777274263/345
346: login:Penguin [] 2026/05/25(月) 07:32:42.66 ID:1Rmkr/oD >>343 phyだけに3.14 http://mao.5ch.io/test/read.cgi/linux/1777274263/346
347: login:Penguin [] 2026/05/25(月) 13:31:22.33 ID:xlzpoX3a >>330 すごく古いOSに入れるという話じゃなければ ./rebuild -j4 sudo ./install で普通に入るでしょ? エラーが出たらAIに放りこめばパッケージを追加とかaptコマンド付きで丁寧に教えてくれる 数十行でキレる人間と違って何百行でも入れて聞けばいい ダウンロードとか日本語名のフォルダでbuildするとエラーが出るけどAIは馬鹿にせず指摘してくれる 画像、音声出力先がないのにbuildが通ってしまうことがあるけど、それも訊けば追加パッケージを教えてくれる http://mao.5ch.io/test/read.cgi/linux/1777274263/347
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 167 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.007s