トップページunix
990コメント274KB

初心者もOK! FreeBSD質問スレッド その114

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名無しさん@お腹いっぱい。2012/05/31(木) 14:32:45.42
FreeBSD 関連の質問はここでどうぞ。望んでいる回答が来なくても怒らないでね。
事前にハンドブック閲覧や過去ログ検索等の自助努力をすることが望ましいです。
分からなければ仕方がないので、初心者でもとりあえず質問してみて下さい。

トラブルの場合、再現性情報(ハードウェア・ソフトウェア・エラーメッセージ)の記載は必須。
sysutils/sysinfo あたりがおすすめ。

The FreeBSD Project
http://www.freebsd.org/ja/

FreeBSD ハンドブック
http://www.freebsd.org/doc/ja/books/handbook/

過去ログ
http://www9.atwiki.jp/freebsd/

前スレ
初心者もOK! FreeBSD質問スレッド その113
http://toro.2ch.net/test/read.cgi/unix/1330257553/l50
/l50
0892名無しさん@お腹いっぱい。2012/10/19(金) 22:41:33.04
>>891
改変コピペ
http://toro.2ch.net/test/read.cgi/unix/1013185055/213
0893名無しさん@お腹いっぱい。2012/10/19(金) 23:56:30.28
>>891
学校の課題か?
0894名無しさん@お腹いっぱい。2012/10/19(金) 23:57:09.82
ネタのつもりだろ。
0895名無しさん@お腹いっぱい。2012/10/20(土) 08:50:13.64
半端なビット数で、例えば12bitを符号拡張して32bitにしろ、
ただしif文、?演算子、一時変数使うな、
だったらいいパズル問題になるな。
0896名無しさん@お腹いっぱい。2012/10/20(土) 11:10:52.77
シフトするだけでは?
0897名無しさん@お腹いっぱい。2012/10/20(土) 11:19:27.07
もちろんシフト演算子も禁止で
0898名無しさん@お腹いっぱい。2012/10/20(土) 11:22:33.25
>>896
多ビットシフトはCPUによってはクロック数がかかる。
もっと速い最適解があるよ。
0899名無しさん@お腹いっぱい。2012/10/20(土) 11:28:13.23
ビットフィールド使うだけ。つまらん。
int main()
{
struct {int a : 12;} a;
a.a=0xfff;
printf("%x\n", a.a);
a.a=0x7ff;
printf("%x\n", a.a);
}
0900名無しさん@お腹いっぱい。2012/10/20(土) 11:39:10.48
>>899
ビットフィールドのビット位置は実装依存だから不可。不正解。
0901名無しさん@お腹いっぱい。2012/10/20(土) 11:42:42.51
>>899
「一時変数使うな」に反してるから不正解では?
0902名無しさん@お腹いっぱい。2012/10/20(土) 11:57:40.35
シフト禁止は後出しすぎじゃね?
ま、1048576倍して、1048576分の1でいいかな。
0903名無しさん@お腹いっぱい。2012/10/20(土) 12:00:29.18
32bit処理系のint型って、最初から32bitじゃなかったっけ?
0904名無しさん@お腹いっぱい。2012/10/20(土) 12:01:36.28
>>884
>>top(1)
> SIZE is the total size of the process (text, data, and stack),
> RES is the current amount of resident memory
> (both SIZE and RES are given in kilobytes)
0905名無しさん@お腹いっぱい。2012/10/20(土) 12:28:49.14
>>902
乗除算は余計遅いからNG
0906名無しさん@お腹いっぱい。2012/10/20(土) 12:39:02.45
>>900
ビットフィールドを別の参照方法で参照しているわけじゃないから全然問題ない。お前がCを理解していないのはわかった。
「一時変数使うな」には反しているが。
0907名無しさん@お腹いっぱい。2012/10/20(土) 12:58:08.11
>>902
同じ数で掛けて割ると、gccだと最適化で消えちゃって駄目だわ。
カッコで括っても不可避。
0908名無しさん@お腹いっぱい。2012/10/20(土) 13:31:09.94
ここ何のスレだっけ
0909名無しさん@お腹いっぱい。2012/10/20(土) 14:03:35.85
>>907
それはない

#include <stdio.h>
int main(void){
printf("%d\n", 2000*1048576/1048576);
printf("%d\n", 4000*1048576/1048576);
}

gcc -O2

2000
-96
0910名無しさん@お腹いっぱい。2012/10/20(土) 14:18:38.31
>>909
gcc -v は?
0911名無しさん@お腹いっぱい。2012/10/20(土) 14:20:57.83
gcc -v
Using built-in specs.
Target: amd64-undermydesk-freebsd
Configured with: FreeBSD/amd64 system compiler
Thread model: posix
gcc version 4.2.1 20070831 patched [FreeBSD]
0912名無しさん@お腹いっぱい。2012/10/20(土) 14:26:21.89
>>909
定数でやっちゃ駄目。変数で実験すること。

#include <stdio.h>

int func(int i){
printf("%d?n", i*1048576/1048576);
}

int main() {func(4000);}

gcc -O2
4000 ← (笑)
0913名無しさん@お腹いっぱい。2012/10/20(土) 14:36:49.35
しょうがないからこれで

#include <stdio.h>
int func1(int i) {
return i*1048576;
}
int func2(int i) {
return i/1048576;
}
int main(void) {
printf("%d\n", func2(func1(4000)));
}
0914名無しさん@お腹いっぱい。2012/10/20(土) 15:50:44.09
いくら話題が無いからって、おまいらつられすぎww
キャスト使えば一発だろJK

#include <stdint.h>

int func1(int i) { return ( uint8_t)i; }
int func2(int i) { return ( int8_t)i; }
int func3(int i) { return (uint16_t)i; }
int func4(int i) { return ( int16_t)i; }
int func5(int i, int *j) { *j = i / 4294967296ULL; return i; }

main() {
int j = 0xcafebabe;
printf("%08x\n", func1(0xdeadbeef));
printf("%08x\n", func2(0xdeadbeef));
printf("%08x\n", func3(0xdeadbeef));
printf("%08x\n", func4(0xdeadbeef));
printf("%08x, ", func5(0xdeadbeef, &j));
printf("%08x\n", j);
}
0915名無しさん@お腹いっぱい。2012/10/20(土) 16:15:50.31
>>914
12bit符号拡張は?
0916名無しさん@お腹いっぱい。2012/10/20(土) 16:19:15.24
初心者が逃げ出すぞ…
0917名無しさん@お腹いっぱい。2012/10/20(土) 17:48:11.34
よくわからないね

プログラムの見かた・考えかた | 1.6 符号拡張/ゼロ拡張
http://nonkisoft.blog134.fc2.com/blog-entry-9.html
0918名無しさん@お腹いっぱい。2012/10/20(土) 18:04:42.32
符号拡張?

a = 10010100 10110101 00110110 11101011

b = a & 00000000 00000000 00000000 10000000

c = b * 00000001 11111111 11111111 11111111

d = a | c


ゼロ拡張?

a = 10010100 10110101 00110110 11101011

b = a & 00000000 00000000 00000000 11111111
0919名無しさん@お腹いっぱい。2012/10/20(土) 19:40:35.84
>>887
チェックアウト済みの場合は
svn update --set-depth empty いらないディレクトリ
すれば良いみたい。

portsもsvnsyncする事にしてsync中。昨日の朝開始して、やっと2/3弱まで到達。
初期syncは2日かかりそう。
0920名無しさん@お腹いっぱい。2012/10/20(土) 22:07:28.01
svnsyncはレポジトリから全部ひっぱるのでなく、
ときどきtarballが作られてftpサイトに置かれるからそれを元にするのがいい。
svnmirror-*-rXXXXXX.tar.xz てやつ(*はbase/doc/ports、XXXXXXはリビジョン)。
0921名無しさん@お腹いっぱい。2012/10/21(日) 15:43:29.15
すでにFreeBSDが入っているHDDに、改めてインストールする時は
一度HDDの中身を全消去しないと駄目ですか?
ユーザー用データの入っているパーティション等は、消さずに済めば楽なのですが
0922名無しさん@お腹いっぱい。2012/10/21(日) 16:00:09.29
できるけど、どうせミスって消すはめになるから、バックアップしとけ
0923名無しさん@お腹いっぱい。2012/10/21(日) 17:13:59.69
sysinstallなら・・
0924名無しさん@お腹いっぱい。2012/10/21(日) 18:10:16.55
メモリが4GB以下のPCにamd64の方をインスコする意味ってあんま無い?
0925名無しさん@お腹いっぱい。2012/10/21(日) 18:20:41.98
いやべつにそれほどでも
0926名無しさん@お腹いっぱい。2012/10/21(日) 19:38:15.22
関数引数がレジスタ渡しになるから速くなるんだっけ?
0927名無しさん@お腹いっぱい。2012/10/21(日) 19:45:21.11
x86-64が使えないCPUのマシンにメモリを8GB積んでFreeBSDを走らせる意味って
あんまりない?
0928名無しさん@お腹いっぱい。2012/10/21(日) 20:06:55.60
PAEでいいじゃん
0929名無しさん@お腹いっぱい。2012/10/21(日) 20:08:12.31
IA32なら
0930名無しさん@お腹いっぱい。2012/10/21(日) 20:14:52.03
マックのスペックちら見したらじーおんにメモリ64「GB」だったでござる
0931名無しさん@お腹いっぱい。2012/10/21(日) 20:21:38.77
Linuxは64bitにするとスピードアップする

BSDもそうだと信じたい
0932名無しさん@お腹いっぱい。2012/10/21(日) 20:35:53.86
http://www.systemworks.co.jp/pms_s974x.php

これなんて1TB入るけど?
0933名無しさん@お腹いっぱい。2012/10/21(日) 20:44:59.60
90万以上するとか…
家に一台サーバー欲しいと思ってたけど
個人の手には届かん
0934名無しさん@お腹いっぱい。2012/10/21(日) 21:11:01.07
メモリ1GBしか積んでないからi386の方インスコする事にする
0935名無しさん@お腹いっぱい。2012/10/21(日) 21:14:18.27
後から拡張する予定を見越してamd64のほうを入れておくても
0936名無しさん@お腹いっぱい。2012/10/21(日) 21:37:42.56
7年前の構成のPCでこれ以上拡張しように無くて
PC更新したらどのみちOS入れ直しだから・・・
0937名無しさん@お腹いっぱい。2012/10/21(日) 21:39:29.43
port は portsnap で更新する様にしたけど、
src の更新って、みなさんどうしています?
0938名無しさん@お腹いっぱい。2012/10/21(日) 22:23:23.75
svn
0939名無しさん@お腹いっぱい。2012/10/21(日) 22:31:57.40
>>938
どうもです。(8.3-stable環境です)
src の Makefile って、
make update で csup 呼ぶのですよね。
subversion を呼んでくれる様にすれば、
シームレスに移行できるとおもうのですが、
難しいのでしょうかね?
0940名無しさん@お腹いっぱい。2012/10/21(日) 23:26:44.34
>>939

echo "SVN_UPDATE=YES" >> /etc/make.conf
cd /usr/src
make update
0941937&9392012/10/22(月) 00:18:32.21
>>940
ご教示ありがとうございます。
未だやっていないんだけど、
これって、cvs で更新してきたこれまでの src/
そのままでいけますか?
(新たに src/ を作成する必要なし?)
0942937&939 etc.2012/10/22(月) 00:20:36.43
>>941
ローカルの更新自体は cvs じゃなくて、csup ッス
0943937&939 etc.2012/10/22(月) 00:26:44.01
940 の /etc/make.conf 追記しても、
ports/ での
cd /usr/ports
make update
は csup のままですよね?
0944名無しさん@お腹いっぱい。2012/10/22(月) 00:59:54.31
>>943

いやそこまでこだわるなら、Makefile* と /usr/share/mk/ 以下読んで理解したほうがいいんじゃねーのと思うが
csupを一切使いたくないなら
echo "SUP_UPDATE=no" >>make.conf
じゃないかね
0945名無しさん@お腹いっぱい。2012/10/22(月) 17:19:56.20
portsからxintedをインストールしたんですが
sample.confってどこにあるんでしょうか
0946名無しさん@お腹いっぱい。2012/10/22(月) 17:22:31.88
LAN内に2つのマシンがあります。
1つはFreeBSDで中にjailが1つあり、そのjailはWEBサーバが走ってます
inet 192.168.nnn.xxx netmask 0xffffff00 broadcast 192.168.nnn.255
inet 192.168.nnn.yyy netmask 0xffffffff broadcast 192.168.nnn.yyy(こっちがjail、ドメインexample.com)

もう1つはwindowsで192.168.nnn.zzz

windowsからhttp://example.com/foo.phpにアクセスすると30秒くらいで処理が完了します。
しかし、http://192.168.nnn.yyy/foo.phpでは1秒で処理か完了します。
これはfoo.phpのみの症状でbar.phpは、外からでも中からでも1秒で処理が完了します。

ルーターが原因かなと思い、別のに変えても同じ症状でした。
あとなにかいじってみる箇所ってありますでしょうか?
0947名無しさん@お腹いっぱい。2012/10/22(月) 17:28:20.00
名前の解決の問題だろ
09489462012/10/22(月) 18:18:50.71
>>947
resolv.confを192.168.nnn.1から8.8.8.8にしたら
5秒くらいで処理が完了するようになりました。
ありがとうございます。
0949名無しさん@お腹いっぱい。2012/10/22(月) 18:24:13.87
逆引きが必要になるようなアクセス制限してるとか、
ログにIPアドレスじゃなくてホスト名を出力してるとか。
0950名無しさん@お腹いっぱい。2012/10/23(火) 01:09:34.90
9.1を新規でインストールするときportsとpkgどっちがおすすめ?
09519462012/10/23(火) 06:54:44.69
>>949
そのあたり調べてみます。
ありがとうございました。
0952名無しさん@お腹いっぱい。2012/10/23(火) 09:07:45.85
基本的には pkg
必要に応じて ports を併用
0953名無しさん@お腹いっぱい。2012/10/23(火) 11:07:01.21
>>937
freebsd-update で /usr/src も更新してくれるよ
0954名無しさん@お腹いっぱい。2012/10/23(火) 19:13:23.68
結局、>>920の助言に従いftp://ftp.freebsd.org/pub/FreeBSD/development/subversionにある、
tarにまとめられたリポジトリをダウンロードしてきてローカルにミラー

$ cd /usr/ports
$ svn co --depth files REPOS_URL/head .
$ svn ls REPOS_URL/head |grep '/$' >dirs
dirsから不要なエントリを削除
$ svn update --set-depth infinity `cat dirs`

全部チェックアウトしてからupdate --set-depth emptyだとディレクトリだけは残ってしまう。
0955名無しさん@お腹いっぱい。2012/10/25(木) 21:31:03.21
9.1-RC2でqmail+vpopをインストールしたんですが
ローカルではメールが送受信出来る(root→作成アカウント)のに
サーバ→外部のメールアドレスにメールが送れません。
ログを見るとsuccessとは出ているのですがメールは届かず、その後ずっと
deferral: Sorry,_I_wasn't_able_to_estab
lish_an_SMTP_connection._(#4.4.1)
が並んでいます。
メールの受信は、ローカル・外部共に出来ているのですが、外部への送信だけが出来ません。
どこを修正すればいいのでしょうか?
0956名無しさん@お腹いっぱい。2012/10/25(木) 22:26:24.36
いまどき25番からの転送を許してるプロバイダなんてないけど
そのへんはおk?
0957名無しさん@お腹いっぱい。2012/10/25(木) 22:30:32.43
qmailなんてもう捨てろ。
0958名無しさん@お腹いっぱい。2012/10/25(木) 22:35:57.05
最初はpostfixを試していたんですが、いくらやっても
BASE64でエンコードした文字列がSMTP_AUTH認証を通らなくて諦めました。
解説サイトに書いてある事を一言一句違えずに進めてるのに・・・
どうもOB25で引っかかってるようでした。ありがとうございました
0959名無しさん@お腹いっぱい。2012/10/26(金) 01:07:16.08
相手先にtelnet 相手ホスト smtpで接続してHELOコマンドを送って応答してくれるか確認してみれば?
考えられる原因が多すぎて、今の段階での原因特定は不可能に近い
0960名無しさん@お腹いっぱい。2012/10/26(金) 09:04:30.74
> 考えられる原因が多すぎて、今の段階での原因特定は不可能に近い
無能は引っ込んでろ。すでにOBP25と特定済み。確実。
0961名無しさん@お腹いっぱい。2012/10/26(金) 11:28:58.13
デフォルトで入ってるopensslがバージョン0.9.8で
portsからWITH_OPENSSL_PORT=yesにしてインストールしても
portsのopenssl(1.0.1)と置き換わらないんですが
他に何をやればいいんでしょうか?
makeにオプションで付けても、make.confに書いても変わりません
0962名無しさん@お腹いっぱい。2012/10/26(金) 12:07:47.04
baseのopensslは置き換えずに、portsで使うopensslが/usr/localにインストールされたものを利用するようにする。

baseのopensslを置き換えたいなら手動で置き換えるしかないが、お勧めしない。
0963名無しさん@お腹いっぱい。2012/10/26(金) 19:27:42.07
>>960
OBP25じゃなくてOPB25ね笑
0964名無しさん@お腹いっぱい。2012/10/26(金) 19:30:44.47
OP25Bでしょ。
http://www.ocn.ne.jp/mail/info/op25b/
http://emobile.jp/support/op25b/
0965名無しさん@お腹いっぱい。2012/10/26(金) 21:23:51.24
罵倒レスでこれは恥ずかしいw
0966名無しさん@お腹いっぱい。2012/10/27(土) 05:11:14.40
postfixのmain.cfに「smtpd_recipient_restructions」の設定を加えるとエラーが出ます
Vimで色分けするとこれだけグレーアウトし、postfixの起動時にunused parameter: smtpd_recipient_restructions
と出ます。どうしてこの設定だけunusedになるのかよく分からないんですが、どういう事なんでしょうか?
0967名無しさん@お腹いっぱい。2012/10/27(土) 05:15:21.02
・・・あ、もしかして「restructions」じゃなくて「restrictions」ですか?
0968名無しさん@お腹いっぱい。2012/10/28(日) 01:46:52.59
昔はこんな調子でDNS・メル鯖いじってるヤツがいたら
怖いおじさんたちに瞬殺されたもんだったが
0969名無しさん@お腹いっぱい。2012/10/28(日) 19:34:38.45
smtpd_destruction
0970名無しさん@お腹いっぱい。2012/10/29(月) 04:12:46.91
間違って、/usr/sbin/mailwrapperをシンボリックリンクで上書きしてしまい
リンク削除したらmailwrapperが無くなってしまいました。
mailwrapperだけ入れ直す事は出来ませんか?
0971名無しさん@お腹いっぱい。2012/10/29(月) 04:41:30.96
OSと同じバージョンのISOに同じファイルがあったので
それを持ってきたら解決しました
0972名無しさん@お腹いっぱい。2012/10/29(月) 11:39:53.07
今度から質問する前に自分の頭使った方がいいぞ。
0973名無しさん@お腹いっぱい。2012/10/29(月) 19:06:43.49
トラブルに陥った直後は混乱してて
冷静さを欠いてるから思わず先に質問してしまいがち

もう少し冷静になろう!
0974名無しさん@お腹いっぱい。2012/10/29(月) 19:12:16.31
質問したとたん解決するのもよくあること。
0975名無しさん@お腹いっぱい。2012/10/29(月) 19:49:53.25
質問の文章を打ち込んでここへ投げたあと、
その時に使ったキーワードでググったら
解決方法があっさり見つかるとかw
0976名無しさん@お腹いっぱい。2012/10/29(月) 22:36:24.25
テディベアに質問させると自己解決することが多いらしいから
次スレからテンプレにクマー入れとこうぜ
0977名無しさん@お腹いっぱい。2012/10/30(火) 05:53:41.94
10月が終わろうとしているのに9.1はまだか
0978名無しさん@お腹いっぱい。2012/10/30(火) 16:27:52.78
次はRC-3がくるからまだまだ。
0979名無しさん@お腹いっぱい。2012/10/30(火) 17:05:49.81
最近FreeBSDを使い始めたのですが,portsのお作法?について質問があります.
portsからパッケージをインストールする方法には/usr/ports以下の欲しいパッケージのディレクトリでmakeを叩く方法と,portinstallのようなフロントエンド?を使う方法がありますよね.
これはportsのお作法としてはどちらが行儀が良いのでしょう?
また,portinstallを積極的に使うメリットとは何なのでしょうか?
0980名無しさん@お腹いっぱい。2012/10/30(火) 20:13:20.44
池沼のためのツールportinstallはすでにあぼーんしました。
0981名無しさん@お腹いっぱい。2012/10/30(火) 20:21:35.15
新しいコマンド覚えたくないから普通にmakeする
0982名無しさん@お腹いっぱい。2012/10/30(火) 20:48:37.27
portinstall(develの方)じゃないとpkgとの連携が取れないんじゃない?
0983名無しさん@お腹いっぱい。2012/10/30(火) 21:01:35.36
>>979
portinstall は portupgrade の付属ツールなので、依存関係にある ports の更新も行ってくれるらしい。
http://pkgtools.github.com/

ただ、今から使い始めるのであれば portmaster を導入する方がいいんじゃないかな?
http://gihyo.jp/admin/clip/01/fdt/201112/22

0984名無しさん@お腹いっぱい。2012/10/30(火) 22:32:22.92
portmasterをインストールするためのportmasterがインストールされてない。
0985名無しさん@お腹いっぱい。2012/10/30(火) 22:39:33.13
portmaster をインストールするためには portupgrade を使うw
0986名無しさん@お腹いっぱい。2012/10/30(火) 23:21:47.27
coreutils をインストールするのに、gmkdir を消しておいてからそれを使おうとする Makefile 書いたのは誰だーっ!
0987名無しさん@お腹いっぱい。2012/10/30(火) 23:29:56.40
そのportupgradeをインストールするためにもportmasterが必要。
0988名無しさん@お腹いっぱい。2012/10/31(水) 01:25:31.58
もうわけわからん!
最初から入れておけ!
0989名無しさん@お腹いっぱい.2012/10/31(水) 05:09:05.91
次スレ

初心者もOK! FreeBSD質問スレッド その115
http://toro.2ch.net/test/read.cgi/unix/1351627596/l50
09909792012/10/31(水) 07:54:39.44
皆様ありがとうございます.

>>980,983
なるほど,世代交代の最中?なのですね.portmasterを使ってみます.
レス数が950を超えています。1000を超えると書き込みができなくなります。